Cod sursa(job #1015362)

Utilizator vladvaldezVlad Dimulescu vladvaldez Data 24 octombrie 2013 14:47:34
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>
#include <vector>

using namespace std;
FILE *f=fopen("sortaret.in","r");
FILE *g=fopen("sortaret.out","w");

vector<int>l[50005],c;
int n,m,x,y,i,use[50005],v[50005],nr;


void df(vector<int>c)
{

for (vector<int>::iterator it=c.begin();it!=c.end();++it,use[*it]==0)
   {
     if (use[*it]==0){
    use[*it]=1;
    df(l[*it]);
    v[++nr]=c.back();use[c.back()]=1;}
   }
}

int main()
{

fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{
 fscanf(f,"%d%d",&x,&y);
 l[x].push_back(y);
}

for(i=1;i<=n;i++)
if (use[i]==0){df(l[i]);v[++nr]=i;}





fclose(g);
return 0;
}