Cod sursa(job #128828)

Utilizator Omega91Nicodei Eduard Omega91 Data 27 ianuarie 2008 22:07:29
Problema Grozavesti Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 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;
	i = 1;
	while ( k < n ) {
		if (cont[i]) {
			vecsort[k++] = i;
			--cont[i];
		}
		else ++i;
	}
	for (i = 0; i< n; ++i)
		cout << vec[i] << " ";
	cout << endl;
	for (i = 0; i <n ;++i)
		cout << vecsort[i] << " ";
	cout << endl;
	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 + 1;
					c[rasp - 1][1] = j + 1;
					l[rasp][0] = i + 1;
					l[rasp][1] = j + 1;

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

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