Cod sursa(job #551497)

Utilizator klamathixMihai Calancea klamathix Data 10 martie 2011 20:25:45
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
const int maxn = 305;
using namespace std;

ifstream fin("grozavesti.in");
ofstream fout("grozavesti.out");

int i , j , n , a[maxn][maxn] , cnt , ind1 , mins;

struct move {
	int x , y;
	char tip;
} sol[maxn * 10];

int main()
{
	fin >> n;
	
	for( i = 1 ; i <= n ; ++i )
		for( j = 1 ; j <= n ; ++j ) 
			fin >> a[i][j];
		
	for( i = 1 ; i <= n ; ++i ) { 
		mins = 1000 * 1000 + 1;
		for( j = i ; j <= n ; ++j ) 
			if (a[j][j] < mins ) {
				ind1 = j;
				mins = a[j][j];
			}
			if ( ind1 != i ) {
				sol[++cnt].tip = 'L', sol[cnt].x = i , sol[cnt].y = ind1;
				sol[++cnt].tip = 'R' , sol[cnt].x = i , sol[cnt].y = ind1;
				swap(a[i][i] , a[ind1][ind1]);
			}
	}
			
	fout << cnt << "\n";
	
	for( i = 1 ; i <= cnt ; ++i ) 
		fout <<sol[i].tip <<" " << sol[i].x << " " <<  sol[i].y << "\n";
	
return 0;
}