Cod sursa(job #1215331)

Utilizator ro96Bartlensky Robert ro96 Data 31 iulie 2014 22:09:14
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <vector>
#include<cstdio>
#define pb push_back
#define nr_nod 50001
using namespace std;
FILE*f=fopen("sortaret.in","r");
FILE*g=fopen("sortaret.out","w");
vector <int> timp,vec[nr_nod];
int m,n,i,j,viz[nr_nod];
void dfs(int node)
{
    viz[node]=1;
    for(int i=0;i<vec[node].size();++i)
        if(!viz[vec[node][i]])
            dfs(vec[node][i]);
    timp.pb(node);
}

void citire()
{
    fscanf(f,"%d %d",&n,&m);
    for(int k=1;k<=m;++k)
        {
            fscanf(f,"%d %d",&i,&j);
            vec[i].pb(j);
        }

}
void afisare()
{
        for(int i=timp.size()-1;i>=0;--i)
            fprintf(g,"%d ",timp[i]);
}
int main()
{
    citire();
    for(int i=1;i<=n;i++)
        if( !viz[i])
            dfs(i);
    afisare();
    return 0;
}