백준/실버
[백준] 실버1-효율적인 해킹 C++ 1325번
taene_
2025. 2. 24. 15:53
https://www.acmicpc.net/problem/1325
// 범위가 [1~10,000] 이므로 배열의 설정과 초기화는 모두 10001로 해줘야 한다.
#include <iostream>
#include <vector>
using namespace std;
int N, M;
int ret[10001];
int visited[10001];
vector<int> v[10001];
int dfs(int com)
{
int cnt = 1;
visited[com] = 1;
for (auto it : v[com])
{
if (visited[it]) continue;
cnt += dfs(it);
}
return cnt;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> N >> M;
for (int i = 0; i < M; i++)
{
int a, b;
cin >> a >> b;
v[b].push_back(a);
}
int mx = 0;
for (int i = 1; i <= N; i++)
{
//fill(&visited[0], &visited[0] + 10001, 0);
memset(visited, 0, sizeof(visited));
ret[i] = dfs(i);
if (mx <= ret[i])
mx = ret[i];
}
for (int i = 1; i <= N; i++)
{
if (mx == ret[i])
cout << i << ' ';
}
return 0;
}