Cod sursa(job #1635925)

Utilizator GeraltMirea Radu Geralt Data 6 martie 2016 20:57:05
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

vector <int> v[50001];
int q[50001],gre[50001],n,m;


ifstream f("sortaret.in");
ofstream g("sortaret.out");


void sol(){
int i,x,j,l=0;

for(i=1;i<=n;i++)
    if(gre[i]==0) q[++l]=i;;

for(i=1;i<=n;i++)
{ x=q[i];

for(j=0;j<v[x].size();j++)
{
    gre[v[x][j]]--;
    if(gre[v[x][j]]==0) q[++l]=v[x][j];
}
}
}



int main()
{ int x,y,i,j;

    f>>n>>m;

    for(i=1;i<=m;i++)
    f>>x>>y, v[x].push_back(y),gre[y]++;

sol();

for(i=1;i<=n;i++)
    g<<q[i]<<" ";

f.close();
g.close();

    return 0;
}