Pagini recente » Cod sursa (job #2824625) | Cod sursa (job #1751627) | Cod sursa (job #1758186) | Cod sursa (job #1710953) | Cod sursa (job #1026895)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int n,m, g[50010], k, a[50010];
vector<int> V[50010];
int main()
{
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
fin >> n >> m;
//CITIRE
int x, y;
for(;m;m--)
{
fin >> x >> y;
V[x].push_back(y);
g[y]++;
}
//PARCURGERE
for(int i = 1;i <= n;i++)
{
if(g[i] == 0)
a[++k] = i;
}
for(int j = 1; j <= n; j++)
{
for(vector<int>::iterator it = V[a[j]].begin(); it != V[a[j]].end(); it++)
{
g[*it]--;
if(g[*it]==0)
a[++k] = *it;
}
}
for(int i = 1; i<=n; i++)
{
fout << a[i] << " ";
}
return 0;
}