Pagini recente » Cod sursa (job #1149282) | Cod sursa (job #2157664) | Cod sursa (job #2058370) | Cod sursa (job #1797893) | Cod sursa (job #1662081)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("grozavesti.in");
ofstream out("grozavesti.out");
const int N_max = 302;
const int INF = 1000005;
int A[N_max][N_max];
struct ELEMENT
{
int lin, col;
};
ELEMENT v[N_max];
int ans;
int N;
void read()
{
int i, j;
in >> N;
for(i = 1; i <= N; i++)
for(j = 1; j <= N; j++) in >> A[i][j];
}
void solve()
{
int i, j, k, Min, x;
for(i = 1; i <= N; i++)
{
Min = INF;
for(j = i; j <= N; j++)
if(Min > A[j][j])
{
Min = A[j][j];
x = j;
}
if(x != i)
{
ans += 1;
// INTERSCHIMB LINIA i cu x
for(k = 1; k <= N; k++) swap(A[i][k], A[x][k]);
// INTERSCHIMB COLOANA i cu x
for(k = 1; k <= N; k++) swap(A[k][x], A[k][i]);
v[ans].lin = i;
v[ans].col = x;
}
}
}
void write()
{
out << 2 * ans << '\n';
for(int i = 1; i <= ans; i++)
{
out << "L" << " " << v[i].lin << " " << v[i].col << '\n';
out << "C" << " " << v[i].lin << " " << v[i].col << '\n';
}
}
int main()
{
read();
solve();
write();
return 0;
}