백준에서 처음으로 풀어본 애드혹 문제이다
문제 지문을 간단히 요약하자면
엄밀한 증명을 적고싶은데 아직 그럴 능력이 안돼서..ㅠ
그래프 하나 적당히 그려놓고
가능한 수도 S를 1부터 N까지 판별하다보면
Bi로 지정된 지점은 절대 수도가 될 수 없다고
발견할 수 있다
#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
// 도시개수,도로개수
int N,M;
vector<int> ans;bool checked[501];
int main(){
cin>>N>>M;
memset(checked,true,sizeof(checked));
for(int i=0;i<M;i++){
int a,b;cin>>a>>b;
checked[b]=false;
}
for(int i=1;i<=N;i++){
if(!checked[i]) continue;
ans.push_back(i);
}
cout<<ans.size()<<"\n";
for(int a : ans){
cout<<a<<"\n";
}
}