작성
·
191
0
define CRTSECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <tuple>
#include <string>
#include <map>
#include <stack>
using namespace std;
vector<int> adj[100001];
int visited[100001];
int n, m, cnt, ret = 1;
int a, b;
void dfs(int node)
{
visited[node] = 1;
for (int i = 0; i < adj[node].size(); i++)
{
if (!visited[adj[node][i]])
{
cnt++;
dfs(adj[node][i]);
}
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> n >> m;
for (int i = 0; i < m; i++)
{
cin >> a >> b;
adj[b].push_back(a);
}
for (int i = 1; i <= n; i++)
{
fill(&visited[0], &visited[0] + 100001, 0);
cnt = 0;
dfs(i);
ret = max(ret, cnt);
}
for (int i = 1; i <= n; i++)
{
fill(&visited[0], &visited[0] + 100001, 0);
cnt = 0;
dfs(i);
if (cnt == ret)
cout << i << " ";
}
return 0;
}
다음과 같이 코드를 작성하였는데 계속 시간초과가 뜨고 인접행렬로 풀면 메모리 초과가 나서 변경하였는데 추가로 어떻게 수정해야될지 모르겠습니다 ㅠㅠㅠ
visual studio에서는 cnt출력 및 i 를 출력했을 때 결과는 맞게 나옵니다