Pagini recente » Cod sursa (job #3225714) | Arhiva de probleme | Cod sursa (job #554049) | Cod sursa (job #2581544) | Cod sursa (job #2499769)
#include<fstream>
#include<algorithm>
#define nmax 50004
#define mmax 100003
using namespace std;
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
bool fr[nmax];
int n,i,j,m,star[nmax],t[3][mmax],k,coloana,rezultat,stiva[nmax],element,varf,vecin,ordine[nmax],cnt;
int main()
{
f>>n>>m;
while(m)
{
m--;
f>>i>>j;
k++;
t[0][k]=j;
t[1][k]=star[i];
star[i]=k;
}
for(i=1;i<=n;i++)
{
if(fr[i]==0)
{
stiva[++varf]=i;
fr[i]=1;
while(varf)
{
element=stiva[varf];
coloana=star[element];
int ok=0;
while(coloana && ok==0)
{
vecin=t[0][coloana];
if(fr[vecin]==0)
{
stiva[++varf]=vecin,ok=1,fr[vecin]=1;
}
coloana=t[1][coloana];
}
if(ok==0)
ordine[++cnt]=element,varf--;
}
}
}
for(i=n;i>=1;i--)
g<<ordine[i]<<" ";
}