Pagini recente » Cod sursa (job #2416696) | Cod sursa (job #1753858) | Cod sursa (job #599705) | Cod sursa (job #2699235) | Cod sursa (job #2499763)
#include<fstream>
#include<algorithm>
#define nmax 50004
#define mmax 100003
using namespace std;
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
struct ele
{
int indice,valoare;
}v[nmax];
bool cmp (ele a,ele b)
{
return a.valoare>b.valoare;
}
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;
k++;
t[0][k]=i;
t[1][k]=star[j];
star[j]=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=cnt;i>=1;i--)
g<<ordine[i]<<" ";
}