Cod sursa(job #116386)

Utilizator a7893Nae Mihai a7893 Data 18 decembrie 2007 15:38:46
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<stdio.h>
#define N 301
int n,a[N][N],nr,k1;
struct vec{
	char c;
	int x,y;
}poz[N];
void read()
{
	int i,j;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			scanf("%d",&a[i][j]);
}
void solve()
{
	int i,j,k,min,p1,p2;
	for(i=1;i<=n;i++)
	{
		min=a[i][i];
		p1=p2=i;
		for(j=i;j<=n;j++)
			for(k=i;k<=n;k++)
				if(a[j][k]<min)
				{
					min=a[j][k];
					p1=j;
					p2=k;
				}
		//a[p1][p2]<->a[1][1];
		if(p1==i&&p2!=i)
		{
			poz[++k1].c='L';
			poz[k1].x=p1;
			poz[k1].y=p2;
			nr++;
		}
		if(p1!=i&&p2==i)
		{
			poz[++k1].c='C';
			poz[k1].x=p1;
			poz[k1].y=p2;
			nr++;
		}
		if(p1!=i&&p2!=i)
		{
			poz[++k1].c='L';
			poz[k1].x=p1;
			poz[k1].y=p2;
			poz[++k1].c='C';
			poz[k1].x=p1;
			poz[k1].y=p2;
			nr+=2;
		}
	}
	printf("%d\n",nr);
	for(i=1;i<=k1;i++)
		printf("%c %d %d",poz[i].c,poz[i].x,poz[i].y);
}
int main()
{
	freopen("grozavesti.in","r",stdin);
	freopen("grozavesti.out","w",stdout);
	read();
	solve();
	return 0;
}