Pagini recente » Cod sursa (job #674630) | Cod sursa (job #975907) | Cod sursa (job #674602) | Cod sursa (job #2391404) | Cod sursa (job #3304309)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <cstring>
using namespace std;
string filename = "sortaret";
ifstream fin(filename + ".in");
ofstream fout(filename + ".out");
const int NMAX = 50000;
vector<int> adj[NMAX + 5];
int gradin[NMAX + 5];
int main()
{
int n,m;
fin>>n>>m;
for(int i=1;i<=m;i++)
{
int u,v;
fin>>u>>v;
adj[u].push_back(v);
gradin[v]++;
}
vector<int> rez;
queue<int> q;
for(int i=1; i<=n; i++)
{
if(gradin[i]==0)
{
q.push(i);
}
}
while(!q.empty())
{
int nod = q.front();
q.pop();
rez.push_back(nod);
for(auto it : adj[nod])
{
gradin[it]--;
if(gradin[it]==0)
{
q.push(it);
}
}
}
for(auto it : rez)
fout<<it<<' ';
}