Cod sursa(job #524677)

Utilizator cat_red20Vasile Ioana cat_red20 Data 22 ianuarie 2011 16:19:39
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>
#include<string.h>
FILE *fin,*fout;
int n,i,j,a[301][301],l,c,lin[301],col[301],p;

void minim(){
int min=1000000,minl,minc,i,j;
	for(i=l;i<=n;i++){
		for(j=c;j<=n;j++){
			if(a[i][j]<min){
				min=a[i][j];
				minl=i;
				minc=j;
			}
		}
	}
	l=minl;
	c=minc;
}

int main(){
fin=fopen("grozavesti.in","r");
fout=fopen("grozavesti.out","w");
fscanf(fin,"%d\n",&n);
for(i=1;i<=n;i++){
	for(j=1;j<=n;j++){
		fscanf(fin,"%d",&a[i][j]);
	}
}
int t=0;
for(i=1;i<n;i++){
	l=i;
	c=i;
	minim();
	if(l!=i){
		p++;
	}
	if(c!=i){
		p++;
	}
	lin[i]=l;
	col[i]=c;
	memcpy(a[i],a[l],sizeof(a[i]));
	for(j=i;j<=n;j++){
		t=a[j][i];
		a[j][i]=a[j][c];
		a[j][c]=t;
	}
}
fprintf(fout,"%d",p);
for(i=1;i<n;i++){
	if(lin[i]!=i){
		fprintf(fout,"\nL %d %d",i,lin[i]);
		
	}
	if(col[i]!=i){
		fprintf(fout,"\nC %d %d",i,col[i]);
		
	}
	
}
return 0;}