백준 11403 c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N;
vector <int> graph[101];
vector <bool> visited(101, false);
void input_graph()
{
int i, j, temp;
for (i = 1; i <= N; i++)
{
for (j = 1; j <= N; j++)
{
cin >> temp;
if (temp == 1)
{
graph[i].push_back(j);
}
else
{
;
}
}
}
return;
}
void reinit_visited()
{
int i;
for (i = 0; i < visited.size(); i++)
{
visited[i] = false;
}
return;
}
void DFS(int start)
{
int i, temp;
for (i = 0; i < graph[start].size(); i++)
{
temp = graph[start][i];
if (visited[temp] != true)
{
visited[temp] = true;
DFS(temp);
}
else
{
;
}
}
}
void find_DFS()
{
int i, j;
for (i = 1; i <= N; i++)
{
reinit_visited();
DFS(i);
for (j = 1; j <= N; j++)
{
cout << visited[j] << " ";
}
cout << "\n";
}
}
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> N;
input_graph();
//경로의 존재여부 파악 : DFS
find_DFS();
return 0;
}