Pagini recente » Cod sursa (job #2254865) | Cod sursa (job #83366) | Istoria paginii preoni-2008/clasament/runda-finala/9 | Cod sursa (job #1329718) | Cod sursa (job #2964482)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
FILE *fin=fopen("sortaret.in", "r");
FILE *fout=fopen("sortaret.out", "w");
int deg[100005];
vector <int> G[100005];
int Q[100005];
int main()
{
int n, m;
fscanf(fin, "%d%d", &n, &m);
for (int k=1; k<=m; k++) {
int i, j;
fscanf(fin, "%d%d", &i, &j);
deg[j]++;
G[i].push_back(j);
}
for (int k=1; k<=m; k++) {
if (deg[k]==0) Q[++Q[0]]=k;
}
for (int k=1; k<=m; k++) {
int x=Q[k];
for (auto it=G[x].begin(); it!=G[x].end(); it++) {
deg[*it]--;
if (deg[*it]==0) Q[++Q[0]]=*it;
}
}
for (int i=1; i<=Q[0]; i++) {
fprintf(fout, "%d ", Q[i]);
}
return 0;
}