Pagini recente » Cod sursa (job #2409219) | Cod sursa (job #1753519) | Cod sursa (job #386199) | Cod sursa (job #657772) | Cod sursa (job #246080)
Cod sursa(job #246080)
#include<fstream>
#include<vector>
#define NMAX 50005
using namespace std;
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
vector <int> A[NMAX];
int viz[NMAX], prim[NMAX], coada[NMAX];
void parc(int i)
{
viz[i]=1;
g<<i<<" ";
for(int j=0;j<A[i].size();j++)
{
if(!viz[A[i][j]]) parc(A[i][j]);
}
}
int main()
{
int N, M, i, j, x, y, k=0,p=1;
f>>N>>M;
for(i=1;i<=M;i++) f>>x>>y, A[x].push_back(y), prim[y]=1;
for(i=1;i<=N;i++) if(!prim[i]) /*coada[++k]=i,*/ parc(i);
//echivalentul parcurgerii pe niveluri :D
/*while(p<=k)
{
x=coada[p];
p++;
for(j=0;j<A[x].size();j++) if(!viz[A[x][j]]) viz[A[x][j]]=1, coada[++k]=A[x][j], g<<A[x][j]<<" ";
}*/
f.close();
g.close();
return 0;
}