Pagini recente » Cod sursa (job #681205) | Borderou de evaluare (job #2553192) | Cod sursa (job #868422) | Cod sursa (job #2314751) | Cod sursa (job #3273905)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
#define cin f
#define cout g
const int NMAX = 1000001;
int n, m, gr[NMAX];
vector<int> v[NMAX];
queue<int> q;
int main()
{
f >> n >> m;
for(int i=1; i<=m; i++)
{
int x,y;
f >> x >> y;
v[x].push_back(y);
gr[y]++;
}
for(int i=1; i<=n; i++)
if(gr[i]==0)
q.push(i);
while(!q.empty())
{
cout << q.front() << " ";
int curent = q.front();
q.pop();
for(int i=0; i<v[curent].size(); i++)
{
int vecin = v[curent][i];
gr[vecin]--;
if(gr[vecin]==0)
q.push(vecin);
}
}
}