Pagini recente » Cod sursa (job #3247379) | Cod sursa (job #2978929) | Cod sursa (job #1041743) | Cod sursa (job #3036362) | Cod sursa (job #1355559)
#include <iostream>
#include <cstdio>
#include <queue>
#include <vector>
using namespace std;
vector<vector<int> > v;
vector<int> count;
int main ()
{
int n, m, a, b;
scanf("%d %d", &n, &m);
v.resize(n+1);
count.resize(n+1);
for(int i=0;i<m;i++)
{
scanf("%d %d", &a, &b);
v[a].push_back(b);
count[b]++;
}
vector<int> q;
for(int i=1;i<=n;i++)
{
if(count[i]==0)
{
q.push_back(i);
}
}
vector<int> result;
while(q.size()>0)
{
int nod = q.back(); q.pop_back();
result.push_back(nod);
for(auto& e: v[nod])
{
count[e]--;
if(count[e]==0)
{
q.push_back(e);
}
}
}
cout<<endl;
for(int i=0;i<n;i++)
{
printf("%d ", result[i]);
}
return 0;
}