Pagini recente » Monitorul de evaluare | Cod sursa (job #728321) | Cod sursa (job #1567227) | Cod sursa (job #1321460) | Cod sursa (job #2343081)
#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;
vector <int> v[50001];
int seen[50001];
int q[50001];
int poz = 0;
void sort(int node){
seen[node] = 1;
int i;
printf("%d -> %d\n",node,v[node].size());
for(i = 0; i < v[node].size(); i++){
if(!seen[v[node][i]])
sort(v[node][i]);
}
q[poz]=node;
poz++;
}
int main()
{
FILE *fin, *fout;
fin = fopen("sortaret.in","r");
fout = fopen("sortaret.out","w");
int n, m, i, j, k;
fscanf(fin,"%d%d",&n,&m);
for(m; m > 0; m--){
fscanf(fin,"%d%d",&i,&j);
v[i].push_back(j);
}
for(i = 1; i <= n; i++){
if(!seen[i])
sort(i);
}
poz--;
for(poz; poz >= 0; poz--){
fprintf(fout,"%d ",q[poz]);
}
fclose(fin);
fclose(fout);
return 0;
}