Pagini recente » Cod sursa (job #1837435) | Cod sursa (job #72204) | Cod sursa (job #1831238) | Cod sursa (job #1551417) | Cod sursa (job #2231126)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int MAXN = 50005;
vector<int> colect[MAXN];
int cost[MAXN], q[MAXN];
int main()
{
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, x, y;
fin >> n >> m;
for(int i = 1; i <= m; ++i){
fin >> x >> y;
cost[y]++;
colect[x].push_back(y);
}
int len = 0;
for(int i = 1; i <= n; ++i){
if(cost[i] == 0)
q[++len] = i;
}
for(int v = 1; v <= n; ++v){
for(int i = 0; i < colect[q[v]].size(); ++i){
cost[colect[q[v]][i]]--;
if(!cost[colect[q[v]][i]]){
q[++len] = colect[q[v]][i];
colect[q[v]].erase(colect[q[v]].begin() + i);
i--;
}
}
}
for(int i = 1; i <= n; ++i)
fout << q[i] << " ";
return 0;
}