Cod sursa(job #411964)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 5 martie 2010 11:44:06
Problema Sortare topologica Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<cstdio>
#define N 50001
#define M 100001
#include<vector>
using namespace std;
vector<int>v[N];
bool viz[N];
#define pb push_back
int n,m,rez[N];
void citire()
{
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    scanf("%d%d",&n,&m);
    int x,y;
    for (int i=1; i<=m; ++i)
    {
        scanf("%d%d",&x,&y);
        v[x].pb(y);
    }
}
void dfs(int x)
{
    viz[x]=true;
    size_t g=v[x].size();
    for (size_t i=0;i<g; ++i)
    {
		//if (!viz[v[x][i]])
		    dfs(v[x][i]);
	}
    rez[++rez[0]]=x;
}
void afis()
{
    for (size_t i=rez[0];i; --i)
        printf("%d ",rez[i]);
}
int main()
{
    citire();
    for (int i=1; i<=n; ++i)
        if (!viz[i])
            dfs(i);
    afis();
    return 0;
}