Cod sursa(job #553385)

Utilizator tudorsTudor Siminic tudors Data 13 martie 2011 23:04:45
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#include <algorithm>
#define N 305
using namespace std;
typedef struct {int x,y; char c;} REZULTAT;
int n,A[N][N],z;
int nrc,mi,i,P;
REZULTAT REZ[10*N];

FILE *f,*g;

void citire()
{
	int i,j;
	fscanf(f,"%d",&n);
	for (i=1;i<=n;++i)
		for (j=1;j<=n;++j)
			fscanf(f,"%d",&A[i][j]);
}

int main()
{
	f=fopen("grozavesti.in","r");
	g=fopen("grozavesti.out","w");
	citire();
	nrc=0;
	for (z=1;z<=n;++z)
	{
		mi=1000001;
		for (i=z;i<=n;++i)
			if (A[i][i]<mi)
				{
					mi=A[i][i];
					P=i;
				}
		if (P!=z)
		{
			nrc++;
			REZ[nrc].c='L';
			REZ[nrc].x=z;
			REZ[nrc].y=P;
			nrc++;
			REZ[nrc].c='C';
			REZ[nrc].x=z;
			REZ[nrc].y=P;
			swap(A[z][z],A[P][P]);
		}
	}
	fprintf(g,"%d\n",nrc);
	for (z=1;z<=nrc;++z)
		fprintf(g,"%c %d %d\n",REZ[z].c,REZ[z].x,REZ[z].y);
	fclose(f);
	fclose(g);
	return 0;
}