백준 11403 경로 찾기

치즈·2023년 2월 2일

BOJ

목록 보기
36/45

플로이드-워셜 문제

#include <iostream>
using namespace std;

int G[101][101];
int N;
void input(){
  cin >> N;
  for(int i = 1; i <= N; i++){
    for(int j = 1; j <= N; j++){
      int k;
      cin >> k;
      G[i][j] = k;
    }
  }
}

void floyd(){
  for(int k = 1; k <= N; k++){
    for(int i = 1; i <= N; i++){
      for(int j = 1; j <= N; j++){
        if(G[i][k] == 1 && G[k][j] == 1){
          G[i][j] = 1;
        }
      }
    }
  }
}

void print_(){
  for(int i = 1; i <= N; i++){
    for(int j = 1; j <= N; j++){
      cout << G[i][j] << " ";
    }
    cout << "\n";
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  input();
  floyd();
  print_();
  return 0;
}

profile
차근차근 배워나가요

0개의 댓글