Cod sursa(job #1050215)

Utilizator SilviussMezei Silviu Silviuss Data 8 decembrie 2013 13:18:03
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortare.out");

bool u[50001];
unsigned short *a,s;
vector<unsigned short> *v;

void dfs(unsigned short x)
{
    u[x]=1;
    for(unsigned short i=0;i<v[x].size();++i)
        if(u[v[x][i]]==0)
            dfs(v[x][i]);
    a[s]=x;
    s++;
}

int main()
{
    unsigned short n,i,j;
    int m;
    fin>>n>>m;
    v=new vector<unsigned short>[n+1];
    a=new unsigned short[n+1];
    while(m)
    {
        fin>>i>>j;
        v[i].push_back(j);
        m--;
    }
    for(i=1;i<=n;++i)
        if(u[i]==0)
            dfs(i);
    while(s)
        fout<<a[--s]<<" ";
}