Pagini recente » Cod sursa (job #2741008) | Cod sursa (job #1431040) | Cod sursa (job #112087) | Monitorul de evaluare | Cod sursa (job #2414840)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
int main()
{
int n,m,i,x,y;
f>>n>>m;
vector<vector<int>>mp(n+1);
vector<int>nrv(n+1,0);
queue<int> qu;
for(i=1; i<=m; i++)
{
f>>x>>y;
mp[x].push_back(y);
nrv[y]++;
}
for(i=1; i<=n; i++)
if(nrv[i]==0)
qu.push(i);
while(!qu.empty())
{
x=qu.front();
qu.pop();
for(auto vecin:mp[x])
{
nrv[vecin]--;
if(nrv[vecin]==0)
qu.push(vecin);
}
g<<x<<" ";
}
return 0;
}