Cod sursa(job #794621)

Utilizator cnt_tstcont teste cnt_tst Data 6 octombrie 2012 18:10:14
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
// un mod mai eficient de intersch ; fac intai max , ii retin pozitia si apoi il pun pe ultima poz; (i=nr de numere)
#include<fstream>
using namespace std;
ifstream fin("grozavesti.in");
ofstream fout("grozavesti.out");
int i, j, n, v[310], aux, k, p, Max, t, x, S[2*301], inter;
int main()
 {
	fin>>n;
	for(i=1; i<=n; i++)
		for (j=1;j<=n;j++) {
			fin>>x;
			if (i==j)
				v[i] = x;
		}
	
	for (i=n;i>=2;i--) 
	{
		//la pasul i fac maximul din primele i numere
		Max = v[1];
		p = 1;
		for (j=2;j<=i;j++) 
			if (v[j] > Max) 
			{
				Max = v[j];
				p = j;
			}
		if (p != i) {
			aux = v[p];
			v[p] = v[i];
			v[i] = aux;
			S[++k] = p;
			S[++k] = i;
			inter++;
		}
		
		//notez ca am interschimbat linia p cu linia i si coloana p cu coloana i
		
	}
	fout<<inter*2<<"\n";
	for(i=1; i<=k; i+=2) {
		fout<<"L "<<S[i]<<" "<<S[i+1]<<"\n";
		fout<<"C "<<S[i]<<" "<<S[i+1]<<"\n";
	}
			
	return 0;		
 }