Pagini recente » Cod sursa (job #2505581) | Borderou de evaluare (job #565559) | Cod sursa (job #2587410) | Cod sursa (job #1985108) | Cod sursa (job #1235022)
#include <algorithm>
#include <fstream>
#include <queue>
using namespace std;
ifstream in("grozavesti.in");
ofstream out("grozavesti.out");
const int NMAX = 300;
struct LOL {
int p,v;
};
struct H_comp {
bool operator()(const LOL &A, const LOL &B) {
return ( A.v > B.v );
}
};
priority_queue <LOL, vector<LOL>, H_comp > H;
int v[NMAX+1][NMAX+1];
int N;
int main() {
in >> N;
for( int i= 1; i<=N; ++i ) {
for( int j= 1; j<=N; ++j ) {
in >> v[i][j];
if( i==j ) {
LOL A;
A.v= v[i][j];
A.p= i;
H.push( A );
}
}
}
out << 2*N << '\n';
if( N == 1 ) return 0;
for( int i= 1; i<=N; ++i ) {
if( H.top().v != v[i][i] ) {
out << "C " << i << ' ' << H.top().p << '\n';
out << "L " << i << ' ' << H.top().p << '\n';
swap( v[i][i], v[H.top().p][H.top().p] );
}
else {
out << "C 1 2" << '\n' << "C 1 2" << '\n';
}
H.pop();
}
return 0;
}