Cod sursa(job #1233651)

Utilizator codi22FMI Condrea Florin codi22 Data 25 septembrie 2014 20:24:45
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
using namespace std;
int M[50000][5000],x,y,m,i,n;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
void sortare(int nod)
{
    if (M[nod][1]==0) g<<nod<<" ";
    for (int j=2;j<=M[nod][0]+1;j++)
    {
        M[M[nod][j]][1]--;
        sortare(M[nod][j]);
    }
}
int main()
{
    f>>n>>m;
    for (i=0;i<m;i++)
    {
        f>>x>>y;
        M[x][0]++;
        M[x][M[x][0]+1]=y;
        M[y][1]++;
    }
    i=1;
    while (M[i][1]) i++;
    if (i>n) g<<-1;
    else sortare(i);
}