Pagini recente » Istoria paginii runda/simusimu__1/clasament | Monitorul de evaluare | Monitorul de evaluare | Diferente pentru utilizator/iacobtudor intre reviziile 69 si 59 | Cod sursa (job #1995764)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int N,M;
int p,u,C[50003];
bool viz[50003];
vector <int> v[50003];
void BF()
{
u = p;
while( p <= u )
{
for(int k = 0 ; k < v[C[p]].size() ; k++)
{
if( viz[ v[C[p]][k] ] == false )
{
viz[ v[C[p]][k] ] = true;
C[++u] = v[C[p]][k];
}
}
p++;
}
for(int i = 1 ; i <= N ; i++)
g<<C[i]<<' ';
}
int main()
{
int x,y;
f>>N>>M;
for(int i = 1 ; i <= M ; i++)
{
f>>x>>y;
v[x].push_back(y);
viz[y] = true;
}
for(int i = 1 ; i <= N ; i++)
{
if( viz[i] == false )
{
viz[i] = true;
C[++p] = i;
}
else
viz[i] = false;
}
BF();
return 0 ;
}