Pagini recente » Cod sursa (job #1063042) | Cod sursa (job #3231056) | Cod sursa (job #1815209) | Cod sursa (job #2704810) | Cod sursa (job #2539063)
#include <bits/stdc++.h>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
const int MAX = 50001;
vector <int> a[MAX];
int q[MAX];
int nrp[MAX];
int n, m, x, y;
void bfs()
{
vector<int>::iterator j;
for(int i = 1; i <= n; i++)
{
if(nrp[i] == 0)
{
q[++q[0]] = i;
}
}
for(int i = 1; i <= n; i++)
{
int x = q[i];
for(j = a[x].begin(); j != a[x].end(); j++)
{
nrp[*j]--;
if(nrp[*j] == 0)
q[++q[0]] = *j;
}
}
}
int main()
{
in >> n >> m;
for(int i = 1; i <= m; i++)
{
in >> x >> y;
a[x].push_back(y);
nrp[y]++;
}
bfs();
for(int i = 1; i <= n; i++)
{
out << q[i] << " ";
}
return 0;
}