Cod sursa(job #132242)

Utilizator swift90Ionut Bogdanescu swift90 Data 5 februarie 2008 14:32:42
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
#define m 305
struct mutare{
	char ax;
	int b,c;
};
mutare a[2*m];
int nr[m][m],aux;
int main(){
	freopen("grozavesti.in","r",stdin);
	freopen("grozavesti.out","w",stdout);
	int n,i,j,k,j1,k1,min,x=0;
	scanf("%d",&n);
	for(i=0;i<n;++i){
		for(j=0;j<n;++j)
			scanf("%d",&nr[i][j]);
	}
	
	for(i=0;i<n;++i){
		min=10000000;
		j1=i;
		k1=i;
		for(j=i;j<n;++j){
			for(k=i;k<n;++k){
				if(min>nr[j][k]){
					min=nr[j][k];
					j1=j;
					k1=k;
				}
			}
		}
		if(min<nr[i][i]){
			if(i!=k1){
				a[x].ax='C';
				a[x].b=i+1;
				a[x++].c=k1+1;
				for(j=i;j<n;++j){
					aux=nr[j][k1];
					nr[j][k1]=nr[j][i];
					nr[j][i]=aux;
				}
			}
			if(i!=j1){
				a[x].ax='L';
				a[x].b=i+1;
				a[x++].c=j1+1;
				for(j=i;j<n;++j){
					aux=nr[j1][j];
					nr[j1][j]=nr[i][j];
					nr[i][j]=aux;
				}
			}
		}
	}
	printf("%d\n",x);
	for(i=0;i<x;++i)
		printf("%c %d %d\n",a[i].ax,a[i].b,a[i].c);
	
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}