Cod sursa(job #115512)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 16 decembrie 2007 12:53:07
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 2, Clasele 5-8 Marime 1.08 kb
#include<stdio.h>
int a2[301],a3[301];
int main(){
	int v[301][301],n,i,j,z,min,a,k=0,y,val=0,ctr=1;
	char a1[301],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+1;i<=n;++i){
			if (v[i][z]<min && v[i][z]>=v[z-1][z-1]){
				min=v[i][z];
				x='L';
				a=i;
			}
			if (v[z][i]<min && v[z][i]>=v[z-1][z-1]){
				min=v[z][i];
				x='C';
				a=i;
			}
		}
		if (x=='C'){
			++k;
			a1[k]=x;
			a2[k]=z;
			a3[k]=a;
			for (i=z;i<=n;++i){
				y=v[i][a];
				v[i][a]=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;
			}
		}
	}
	printf("%d\n",k);
	for (i=1;i<=k;++i)
		printf("%c %d %d\n",a1[i],a2[i],a3[i]);
	return 0;
}