Pagini recente » Cod sursa (job #1095863) | Cod sursa (job #1246179) | Cod sursa (job #2569052) | Cod sursa (job #1133636) | Cod sursa (job #1642876)
#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int N, M, deg[50100], Q[50100];
vector <int> G[50100];
void solve()
{
int i, x;
vector <int>::iterator it;
for(x = 1; x <= N; x++)
if(deg[x] == 0)
Q[++Q[0]] = x;
for(i = 1; i <= N; i++)
{
x = Q[i];
for(it = G[x].begin(); it != G[x].end(); ++it)
{
deg[*it]--;
if(deg[*it] == 0) Q[++Q[0]] = *it;
}
}
}
void write()
{
for(short i = 1; i <= N; i++)
out << Q[i] << " ";
}
int main()
{
in >> N >> M;
short a,b;
for(short i = 1; i <= M; i++)
{
in >> a >> b;
G[a].push_back(b);
deg[b]++;
}
in.close();
solve();
write();
return 0;
}