Pagini recente » Cod sursa (job #735652) | Cod sursa (job #1360531) | Cod sursa (job #2808883) | Cod sursa (job #1835217) | Cod sursa (job #116667)
Cod sursa(job #116667)
#include<fstream.h>
ifstream f("grozavesti.in");
ofstream g("grozavesti.out");
long a[300];
int b[300][2],nr;
void schimba(long &x,long &y)
{long aux=x;x=y;y=aux;}
void cauta(int s,int d,int &m)
{long i=s,j=d,pi=0,pj=1;
while(i<j)
{if(a[i]>=a[j]){schimba(a[i],a[j]);
schimba(pi,pj);
nr++;
b[nr][1]=i;
b[nr][2]=j;
}
i=i+pi;
j=j-pj;
}
m=j;
}
void quick(int s,int d,int &nr)
{int m;
if(s<d){cauta(s,d,m);
quick(s,m-1,nr);
quick(m+1,d,nr);
}
}
int main()
{long x,aux;
int i,j,n;
f>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{f>>x;
if(i==j)a[i]=x;
}
quick(1,n,nr);
g<<2*nr<<"\n";
for(i=1;i<=nr;i++)
{g<<"L"<<" "<<b[i][1]<<" "<<b[i][2]<<"\n";
g<<"C"<<" "<<b[i][1]<<" "<<b[i][2]<<"\n";
}
f.close();
g.close();
return 0;
}