寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

Aizu Online Judge in C++ #Volume1 - 0119 : Taro's Obsession

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/