Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Taro's Obsession"
https://onlinejudge.u-aizu.ac.jp/problems/0119
・太郎君の執念
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume1 - 0119 : Taro's Obsession
/* Aizu Online Judge in C++ #Volume1 - 0119 : Taro's Obsession https://onlinejudge.u-aizu.ac.jp/problems/0119 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll m,n; cin>>m>>n; vector<vector<ll>> vv(m+1); vector<ll> v(m+1); queue<ll> q; ll x,y; for(;n--;){ cin>>x>>y; vv[x].push_back(y); v[y]++; } for(x=1;x<=m;x++){ if(!v[x]){ q.push(x); } } for(;!q.empty();){ for(cout<<(n=q.front())<<"\n",q.pop(),x=0;x<vv[n].size();x++){ if(--v[vv[n][x]]==0){ q.push(vv[n][x]); } } } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/