Cod sursa(job #115866)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 17 decembrie 2007 10:53:26
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include<stdio.h>
int a2[602],a3[602];
int main(){
	int v[301][301],n,i,j,z,min,a,b,k=0,y,val=0,ctr=1;
	char a1[602],x;
	freopen("grozavesti.in","r",stdin);
	freopen("grozavesti.out","w",stdout);
	scanf("%d",&n);
	for (i=1;i<=n;++i)
		for (j=1;j<=n;++j)
			scanf("%d",&v[i][j]);
	v[0][0]=0;
	for (i=1;i<=n;++i){
		if (val<=v[i][i])
			val=v[i][i];
		else ctr=2;	
	}
	if (ctr==1){
		printf("0\n");
		return 0;
	}
	for (z=1;z<=n;++z){
		min=v[z][z];x=' ';
		for (i=z;i<=n;++i)
			for (j=z;j<=n;++j){
				if (v[i][j]<min && v[i][j]>=v[z-1][z-1]){
					min=v[i][z];
					x='A';
					a=i;
					b=j;
				}
			}
			if (a==z)
				x='C';
			if (b==z)
				x='L';
			if (x=='C'){
				++k;
				a1[k]=x;
				a2[k]=z;
				a3[k]=b;
				for (i=z;i<=n;++i){
					y=v[i][b];
					v[i][b]=v[i][z];
					v[i][z]=y;
				}
			}
			else if (x=='L'){
				++k;
				a1[k]=x;
				a2[k]=z;
				a3[k]=a;
				for (i=z;i<=n;++i){
					y=v[a][i];
					v[a][i]=v[z][i];
					v[z][i]=y;
				}
			}
			else if (x=='A'){
				++k;
				a1[k]='C';
				a2[k]=z;
				a3[k]=b;
				++k;
				a1[k]='L';
				a2[k]=z;
				a3[k]=a;
				for (i=z;i<=n;++i){
					y=v[a][i];
					v[a][i]=v[z][i];
					v[z][i]=y;
				}
				for (i=z;i<=n;++i){
					y=v[i][b];
					v[i][b]=v[i][z];
					v[i][z]=y;
				}
			}
	}
	/*for (i=1;i<=n;++i){
		for (j=1;j<=n;++j)
			printf("%d ",v[i][j]);
		printf("\n");
	}*/
	printf("%d\n",k);
	for (i=1;i<=k;++i)
		printf("%c %d %d\n",a1[i],a2[i],a3[i]);
	return 0;
}