Cod sursa(job #386698)

Utilizator vladcatrinaVlad Catrina vladcatrina Data 25 ianuarie 2010 18:44:46
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <stdio.h>

FILE*f = fopen("grozavesti.in","r");
FILE*g = fopen("grozavesti.out","w");

int a[301][301], j, i, p, n,min,aux,nr;
int sol[100][3];

int main() {
	
	fscanf(f,"%d",&n);
	
	for (i=1;i<=n;i++) {
		for (j=1;j<=n;j++){
			fscanf(f,"%d",&a[i][j]);
		}
	}
	
	for (i=1;i<n;i++) {
		
		min=a[i][i];
		
		for(j=i+1;j<=n;j++){
			if (a[j][j]<min) {
				min=a[j][j];
				p=j;
			}
		}
		
		if (min!=a[i][i]) {//interschimb liniile si coloanele
			//liniile
			for(j=1;j<=n;j++) {
				aux=a[i][j];
				a[i][j]=a[p][j];
				a[p][j]=aux;
				sol[nr][0]=0;
				sol[nr][1]=i;
				sol[nr][2]=p;
				nr++;
			}
			
			//coloanele
			for(j=1;j<=n;j++) {
				aux=a[j][i];
				a[j][i]=a[j][p];
				a[j][p]=aux;
				sol[nr][0]=1;
				sol[nr][1]=i;
				sol[nr][2]=p;
				nr++;
			}
			
		}
	}
	
	fprintf(g,"%d",nr);
	for(i=0;i<nr;i++){
		if(sol[i][0]==0)
			fprintf(g,"L ");
		else
			fprintf(g,"C ");
		fprintf(g,"%d %d\n",sol[i][1],sol[i][2]);
	}
	
	fclose(f);
	fclose(g);
	return 0;
}