Cod sursa(job #237609)

Utilizator nusmaibunkeleviprofesor cicalescu nusmaibunkelevi Data 30 decembrie 2008 10:56:20
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#define NMAX 300
int main(){
struct ch{int t,e1,e2;};
ch v[NMAX*NMAX+1];
freopen("grozavesti.in","r",stdin);
freopen("grozavesti.out","w",stdout);
int a[NMAX+1][NMAX+1],n,m=0,i,j,k,min,l,c,t;
scanf("%d",&n);
for(i=1;i<=n;++i)
	for(j=1;j<=n;++j)scanf("%d",&a[i][j]);
for(k=1;k<n;++k){
	min=a[k][k];l=c=k;
	for(i=k;i<=n;++i)
		for(j=k;j<=n;++j)
			if(min>a[i][j]) min=a[i][j],l=i,c=j;
	if(l!=k){
		v[m].t=0;v[m].e1=k;v[m].e2=l;m++;
		for(j=k;j<=n;++j) t=a[k][j],a[k][j]=a[l][j],a[l][j]=t;
		}
	if(c!=k){
		v[m].t=1;v[m].e1=k;v[m].e2=c;m++;
		for(i=k;i<=n;++i) t=a[i][k],a[i][k]=a[i][c],a[i][c]=t;
		}
	}
printf("%d\n",m);
for(i=0;i<m;++i){
	if(v[i].t) printf("C ");
	else printf("L ");
	printf("%d %d\n",v[i].e1,v[i].e2);
	}
return 0;
}