Cod sursa(job #727879)

Utilizator costyv87Vlad Costin costyv87 Data 28 martie 2012 12:35:24
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>
#include <vector>
#define pb push_back
using namespace std;
FILE *f,*g;
vector <int> out[50100],sol;
int bf[50100],n,m,i,x,y;

void df(int x) {
int i;

bf[x]=1;
for (i=0;i<out[x].size();i++)
	if (!bf[out[x][i]])
		df(out[x][i]);
sol.pb(x);
}

int main() {
f=fopen("sortaret.in","r");
g=fopen("sortaret.out","w");

fscanf(f,"%d%d",&n,&m);

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

for (i=1;i<=n;i++)
	if (!bf[i])
		df(i);

for (i=sol.size()-1;i>=0;i--)
            fprintf(g,"%d ",sol[i]);

fclose(g);
return 0;
}