Cod sursa(job #338694)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 6 august 2009 17:09:16
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

FILE *f,*s;

int n,i,j,k,l,minim,m1,m2,m[305][305];

struct rotatie
{
	int x;
	int y;
	char c;
};

rotatie v[300];

int main()
{
	f=fopen("grozavesti.in","r");
	s=fopen("grozavesti.out","w");
	
	fscanf(f,"%d",&n);
	
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			fscanf(f,"%d",&m[i][j]);

	for(i=1;i<=n;i++)
	{
		minim=1000000;
		for(j=i;j<=n;j++)
		{
			for(k=i;k<=n;k++)
			{
				if(m[j][k]<minim&&m[j][k]>m[i-1][j-1])
				{
					minim=m[j][k];
					
					m1=j;
					m2=k;
				}	
			}	
		}
		
		if(m1!=i)
		{
			l++;
			
			v[l].x=i;
			v[l].y=m1;
			v[l].c='L';
			
			for(k=1;k<=n;k++)
				swap(m[i][k],m[m1][k]);
		}

		if(m2!=i)
		{
			l++;
			
			v[l].x=i;
			v[l].y=m2;
			v[l].c='C';
			
			for(k=1;k<=n;k++)
				swap(m[k][i],m[k][m2]);
		}		
	}
	
	fprintf(s,"%d\n",l);
	
	for(i=1;i<=l;i++)
		fprintf(s,"%c %d %d\n",v[i].c,v[i].x,v[i].y);

	
	fclose(s);
	
	return 0;
}