Cod sursa(job #1846996)

Utilizator ceciliamariciucCecilia Mariciuc ceciliamariciuc Data 14 ianuarie 2017 11:05:54
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <vector>
#define nmax 50001

using namespace std;

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

int n,m;
int viz[nmax],timp[nmax],k;
vector<int>V[nmax];

void Citire()
{int i,x,y;
fin>>n>>m;
for(i=1;i<=m;i++)
   {fin>>x>>y;
    V[x].push_back(y);
   }
}

void DFS(int x)
{int i;
vector <int>::iterator it;
viz[x]=1;
for(it=V[x].begin();it!=V[x].end();it++)
    if(viz[*it]==0) DFS(*it);
timp[++k]=x;
}
int main()
{int i;
Citire();
for(i=1;i<=n;i++)
    if(viz[i]==0) DFS(i);
for(i=n;i>=1;i--) fout<<timp[i]<<" ";
    return 0;
}