Pagini recente » Cod sursa (job #241681) | Cod sursa (job #2001210) | Cod sursa (job #515482) | Cod sursa (job #2680998) | Cod sursa (job #214293)
Cod sursa(job #214293)
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
using namespace std;
int grad[100002];
queue<long> q;
vector<long> v[100002];
vector<long>::iterator it;
long n,m;
void topo()
{
ofstream g("sortaret.out");
for(int i=1;i<=n;i++)
if(!grad[i]) q.push(i);
while(!q.empty())
{
long z=q.front();
g<<z<<" ";
q.pop();
for(it=v[z].begin();it!=v[z].end();it++)
{
grad[*it]--;
if(grad[*it]==0) q.push(*it);
}
}
}
void citire()
{
ifstream f("sortaret.in");
f>>n>>m;
for(int i=0;i<m;i++)
{
long a,b;
f>>a>>b;
grad[b]++;
v[a].push_back(b);
}
}
int main()
{
citire();
topo();
return 0;
}