Cod sursa(job #120704)

Utilizator Adriana_SAdriana Sperlea Adriana_S Data 6 ianuarie 2008 13:12:28
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>
#include <vector>

using namespace std;

const int N_MAX = 310;

int a[N_MAX][N_MAX];

pair <int, int> sol[N_MAX * 2];

int main()
{
	freopen("grozavesti.in", "r", stdin);
#ifndef _SCREEN_
	freopen("grozavesti.out", "w", stdout);
#endif

	int N, i, j;
	scanf("%d\n", &N);
	for (i = 1; i <= N; i ++) {
		for (j = 1; j <= N; j ++) {
			scanf("%d ", &a[i][j]);
		}
	}

	int MIN, lin, aux, nrsol = 0;

	for (i = 1; i <= N; i ++) {

		MIN = a[i][i], lin = i;
		for (j = i + 1; j <= N; j ++) {
			if (a[j][j] < MIN) {
				MIN = a[j][j];
				lin = j;
			}
		}

		if (lin != i) {
			nrsol ++;
			sol[nrsol] = make_pair(i, lin);
			aux = a[i][i];
			a[i][i] = a[lin][lin];
			a[lin][lin] = aux;
		}
	}

	printf("%d\n", nrsol);
	for (i = 1; i <= nrsol; i ++) {
		printf("C %d %d\n", sol[i].first, sol[i].second);
		printf("L %d %d\n", sol[i].first, sol[i].second);
	}

	return 0;
}