https://www.acmicpc.net/problem/13023
그래프, dfs
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> adj[2000];
bool visited[2000] = {false};
void dfs(int start, int level)
{
if (visited[start])
{
return;
}
if (level == 5)
{
cout << 1;
exit(0);
}
visited[start] = true;
for (const auto &e : adj[start])
{
if (!visited[e])
{
dfs(e, level + 1);
}
}
/*이거 추가해야함!!!!!!!*/
visited[start] = false;
}
int main()
{
int N; //사람 수
int M; //친구관계 수
cin >> N >> M;
// adj 채우기
for (int i = 0; i < M; i++)
{
int a, b;
cin >> a >> b;
adj[a].emplace_back(b);
adj[b].emplace_back(a);
}
// dfs
for (int i = 0; i < N; i++)
{
fill(visited, visited + N, false);
dfs(i, 1);
}
cout << 0;
}
int level[2000] = {0};
보다는 dfs(int start, int level)
visited[start] = false;
추가