Pagini recente » Cod sursa (job #2967142) | Cod sursa (job #3248339) | Cod sursa (job #1887601) | Cod sursa (job #652754) | Cod sursa (job #929906)
Cod sursa(job #929906)
#include <iostream>
#include <fstream>
using namespace std;
int i,b[100],j,x,y,OK,n,k,z,m;
void prel(int b[],int &n,int i)
{
int j,OK=0,c[100],l,h;
n=n+1;
for(j=n;j>=i+1;j--) b[j]=b[j-1];
b[i]=x;
for(j=i+1;j<=n;j++)if(b[j]==x){n--;OK=1;l=j;break;}
if(OK=1)
{
for(j=1;j<=l-i+1;j++)c[j]=b[i+j+2];
h=1;
for(j=l-i-2;j<=n;j++){c[j]=b[h];h++;}
for(j=1;j<=n;j++)
{
b[j]=c[j];
}
}
}
int main()
{
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
n=2;
fin>>z>>m>>x>>y;
b[1]=x;b[2]=y;
for(k=2;k<=m;k++)
{
fin>>x>>y;
OK=0;
for(i=1;i<=n;i++)
{
if(b[i]==x){OK=2;break;}
if(b[i]==y)
{
prel(b,n,i);OK=1;break;
}
}
if(OK==0){n+=2;b[n-1]=x;b[n]=y;}
if(OK==2)
{
for(i=1;i<=n;i++)if(b[i]==y){OK=1;break;}
if(OK==2){n++;b[n]=y;}
}
}
for(i=1;i<=n;i++)fout<<b[i]<<" ";
fin.close();
fout.close();
}