Pagini recente » Cod sursa (job #359223) | Cod sursa (job #519957) | Cod sursa (job #888549) | Cod sursa (job #359218) | Cod sursa (job #475058)
Cod sursa(job #475058)
#include<stdio.h>
int *x, *y, *b, *c, *viz, index;
int n, m;
void df(int a){
viz[a] = 1;
int l = m;
for(int i=0;i<l;i++)
if(a == x[i] && !viz[y[i]]){
int val = y[i];
if(m != 0){
x[i] = x[m-1];
y[i] = y[(m--)-1];
}
df(val);
}
c[index++] = a;
}
void sort(){
for(int i=1;i<=n;i++)
if(!b[i]) df(i);
}
int main()
{
FILE *ofile, *ifile;
ifile = fopen("sortaret.in", "r");
fscanf(ifile, "%i %i", &n, &m);
x = new int[m];
y = new int[m];
b = new int[n+1];
c = new int[n];
viz = new int[n+1];
for(int i=0;i<=n;i++)
b[i] = viz[i] = 0;
for(int i=0; i<m; i++){
fscanf(ifile, "%i %i", &x[i], &y[i]);
b[y[i]] = 1;
}
fclose(ifile);
sort();
ofile = fopen("sortaret.out", "w");
for(int i=index-1;i>=0;i--)
fprintf(ofile, "%i ", c[i]);
fclose(ofile);
return 0;
}