[백준-1325] 효율적인 해킹
in Coding Test on 백준
DFS. 해커가 되어보자
Code
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
#define MAX 10001
using namespace std;
int n, m, ret;
int maxs = 0;
vector<int> v[MAX];
int check[MAX];
int counts[MAX];
void dfs(int n) {
check[n] = true;
ret++;
for (int i = 0; i < v[n].size(); i++) {
if (!check[v[n][i]]) dfs(v[n][i]);
}
}
int main() {
scanf("%d %d", &n, &m);
for (int i = 0; i < m; i++) {
int a, b;
scanf("%d %d", &a, &b);
v[b].push_back(a);
}
for (int i = 1; i <= n; i++) {
memset(check, 0, sizeof(check));
ret = 0;
dfs(i);
counts[i] = ret;
maxs = max(ret, maxs);
}
for (int i = 1; i <= n; i++) {
if (counts[i] == maxs) printf("%d ", i);
}
return 0;
}