Cod sursa(job #128816)

Utilizator Omega91Nicodei Eduard Omega91 Data 27 ianuarie 2008 21:28:33
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
	int k, n, i, j, aux, cont[1000001] = {}, vec[301], vecsort[301], rasp = 0, c[301][2], l[301][2];
	ifstream f1("grozavesti.in");
	ofstream f2("grozavesti.out");
	f1 >> n;
	k = 0;
	for (i = 0; i < n; ++i)
		for (j = 0; j < n; ++j) {
			f1 >> aux;
			if (i == j) { ++cont[aux]; vec[k++] = aux;}
		}
	k = 0;
	for (i = 0; i < n; ++i)
		while ( cont[vec[i]] ) {
			vecsort[k++] = vec[i];
			--cont[vec[i]];
		}
	for (i = 0; i < n; ++i) {
		if ( vecsort[i] != vec[i] )
			for (j = i + 1; j < n; ++j)
				if ( vec[j] == vecsort[i] ) {
					rasp += 2;
					c[rasp - 1][0] = i;
					c[rasp - 1][1] = j;
					l[rasp][0] = i;
					l[rasp][1] = j;

					aux = vec[i];
					vec[i] = vec[j];
					vec[j] = aux;
				}
	}
	f2 << rasp << endl;
	for (i = 1; i <= rasp; ++i)
		if (rasp % 2) f2 << "C " << c[i][0] << " " << c[i][1] << " \n";
		else f2 << "L " << c[i][0] << " " << c[i][1] << " \n";

	f1.close();
	f2.close();
	return 0;
}