Cod sursa(job #1194120)

Utilizator BlueStrutAndrei Prahoveanu BlueStrut Data 2 iunie 2014 21:23:37
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<cstdio>
#include<vector>
#include<deque>
using namespace std;
vector<int> a[50001];
vector<int>::iterator it2;
deque<int> cd;
deque<int>::iterator it;
int i, n, m, x, y;
bool viz[50001];
int main(){
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    scanf("%d%d", &n, &m);
    for (i=1;i<=m;i++) {scanf("%d%d", &x, &y); a[x].push_back(y);}
    cd.push_back(1);
    for (it=cd.begin();it!=cd.end();it++) {
        x=*it; printf("%d ", x); viz[x]=true;
        for (it2=a[x].begin();it2!=a[x].end();it2++) if (!viz[x]) {
            viz[x]=true; cd.push_back(*it2);
        }
    }
    for (i=1;i<=n;i++) if (!viz[i]) printf("%d ", i);
    printf("\n"); return 0;
}