Pagini recente » Cod sursa (job #1397915) | Cod sursa (job #2896042) | Cod sursa (job #489947) | Cod sursa (job #122860) | Cod sursa (job #2035577)
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream f (".in");
ofstream g (".out");
vector < int > v[50005];
queue < int > q;
int i, j, n, grad[50005], m, rsp[50005], a, b, cur, loc;
int main ()
{
f>>n>>m;
for ( i = 1; i <= m ; i++ )
{
f>>a>>b;
v[a].push_back(b);
grad[b]++;
}
for ( i = 1; i <= n ; i++ )
{
if ( grad[i] == 0 )
{
q.push(i);
}
}
while ( !q.empty() )
{
cur = q.front();
rsp[++loc] = cur;
for ( i = 0 ; i < v[cur].size() ; i++ )
{
grad[ v[cur][i] ]--;
if ( grad[ v[cur][i] ] == 0 )
{
q.push( v[cur][i] );
}
}
q.pop();
}
for ( i = 1; i <= loc ; i++ )
{
g<<rsp[i]<<" ";
}
return 0;
}