728x90
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool dp[501][501];
int main() {
int n, m;
cin >> n;
cin >> m;
int a, b;
for (int i = 0; i < m; i++) {
cin >> a;
cin >> b;
dp[a][b] = true;
}
int count = 0;
for (int k = 1; k <= n; k++) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (dp[i][k] == true && dp[k][j] == true)
{
dp[i][j] = true;
// count++;
}
}
}
}
for (int i = 1; i <= n; i++) {
bool toggle = false;
for (int j = 1; j <= n; j++) {
if (i != j) {
if (dp[i][j] == false && dp[j][i]==false) { // true가 하나라도 있으면 관계성립 가능
toggle = true;
break;
}
}
}
if (toggle == false) { count++; }
}
cout << count << endl;
}
spacefordeveloper.tistory.com/197
이 문제와 비교해보기
'백준 > 그래프' 카테고리의 다른 글
최단경로 -1753번 (0) | 2021.08.25 |
---|---|
이진검색트리 - 5639번 (java) (0) | 2021.08.11 |
트리의 부모찾기 (0) | 2021.04.26 |