Cod sursa(job #3294184)

Utilizator mihai.25Calin Mihai mihai.25 Data 18 aprilie 2025 14:55:31
Problema Grozavesti Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>

using namespace std;

ifstream fin ("grozavesti.in");

ofstream fout ("grozavesti.out");

pair <int, int> v[1001];

int main () {

	int n;

	fin >> n;

	int mat[n + 1][n + 1];

	for (int i = 1; i <= n; ++i)
		for (int j = 1; j <= n; ++j)
			fin >> mat[i][j];

	int l = n, c = n, cnt = 0;

	do {

		int maxim = -1, l_maxim = 0, c_maxim = 0;

		for (int i = 1; i <= l; ++i) {

			if (mat[i][i] > maxim) {

				maxim = mat[i][i];

				l_maxim = i;

				c_maxim = i;
			}
		}

		if (l_maxim != l && c_maxim != c) {

			v[++cnt].first = l_maxim;

			v[cnt].second = l;

			v[++cnt].first = c_maxim;

			v[cnt].second = c;

			for (int j = 1; j <= n; ++j)
				swap (mat[l_maxim][j], mat[l][j]);

			for (int i = 1; i <= n; ++i)
				swap (mat[i][c_maxim], mat[i][c]);
		}

		l--;

		c--;

	} while (l > 1 && c > 1);

	fout << cnt << '\n';

	for (int i = 1; i < cnt; i += 2) {

		fout << 'L' << ' ' << v[i].first << ' ' << v[i].second << '\n';

		fout << 'C' << ' ' << v[i + 1].first << ' ' << v[i + 1].second << '\n';
	}

	return 0;
}