Cod sursa(job #116326)

Utilizator anaidaanaida anaida Data 18 decembrie 2007 14:14:43
Problema Grozavesti Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#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;
 }