Cod sursa(job #1211447)

Utilizator BLz0rDospra Cristian BLz0r Data 22 iulie 2014 16:48:38
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<cstdio>
using namespace std;

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

struct date{
	int x,y;
}sol[305];

int v[305][305],diag[305];
bool ap[305];

int main(){
	int aux,k,nr=0,n,min;
	
    fscanf(f,"%d",&n);
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			fscanf(f,"%d",&v[i][j]);
		}
		diag[i]=v[i][i];
	}
	
	for(int i=1;i<=n;++i){
		min=99999999;
		for(int j=1;j<=n;++j){
			if (diag[j]<min && ap[j]==0){
				k=j;
				min=diag[j];
			}
		}
		ap[i]=1;
		if(i!=k){
			nr++;
			sol[nr].x=i; sol[nr].y=k;
			aux=diag[i]; diag[i]=diag[k]; diag[k]=aux;
		}
	}
	
	fprintf(g,"%d\n",nr*2);
	for (int i=1;i<=nr;++i) fprintf (g,"C %d %d\nL %d %d\n",sol[i].x,sol[i].y,sol[i].x,sol[i].y);

	return 0;
}