Cod sursa(job #1841512)

Utilizator ionanghelinaIonut Anghelina ionanghelina Data 5 ianuarie 2017 17:59:09
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<bits/stdc++.h>
#define maxN 50005
using namespace std;
vector<int> v[maxN];
bool ap[maxN],seen[maxN];
int s[maxN],top,n,m,x,y;
void dfs(int nod)
{
    seen[nod]=1;
    for(vector<int>::iterator it=v[nod].begin();it!=v[nod].end();it++)
    {
        if(!seen[*it]) dfs(*it);
    }
    s[++top]=nod;
}
int main()
{
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d",&x,&y);
        v[y].push_back(x);
        ap[x]=1;
    }
    for(int i=1;i<=n;i++)
    {
        if(!ap[i]) dfs(i);
    }
    for(int i=1;i<=top;i++) printf("%d ",s[i]);
    return 0;

}