Cod sursa(job #1194135)

Utilizator BlueStrutAndrei Prahoveanu BlueStrut Data 2 iunie 2014 21:55:23
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<cstdio>
#include<vector>
using namespace std;
vector<int> a[50001];

int i, n, m, x, y;
bool viz[50001];
void dfs(int x){
    vector<int>::iterator it;
    printf("%d ", x);
    for (it=a[x].begin();it!=a[x].end();it++)
        if (!viz[*it]) {viz[*it]=true; dfs(*it);}
}
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);}
    for (i=1;i<=n;i++) {
        if (viz[i]) continue;
        dfs(i);
    }
    printf("\n"); return 0;
}