Cod sursa(job #116320)

Utilizator anaidaanaida anaida Data 18 decembrie 2007 14:08:46
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 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);
			}
	i=i+pi;
	j=j-pj;
	}
m=j; nr++;
  b[nr][1]=s;
  b[nr][2]=m;
}
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;
 }

 /*for(i=1;i<n;i++)
 for(j=i+1;j<=n;j++)
 if(a[i]>=a[j])
 {aux=a[i];
 a[i]=a[j];
 a[j]=aux;
  
  }  */
  quick(1,n,nr);
 g<<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;
 }