Pagini recente » Cod sursa (job #2820183) | Borderou de evaluare (job #366912) | Cod sursa (job #1274580) | Cod sursa (job #156079) | Cod sursa (job #1349514)
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<cstring>
#include<set>
#include<map>
#include<cmath>
using namespace std ;
#define maxn 305
#define maxx 1000005
int N ;
int a[maxn][maxn], v[maxn] ;
struct schimburi
{
int ce, unu, doi ;
};
int nrs ;
schimburi s[2 * maxn] ;
int main()
{
std::ios_base::sync_with_stdio(false) ;
freopen("grozavesti.in", "r", stdin);
freopen("grozavesti.out", "w", stdout);
cin >> N ;
for(int i = 1; i <= N; ++i)
{
for(int j = 1; j <= N; ++j)
{
cin >> a[i][j] ;
if( i == j )
v[i] = a[i][i] ;
}
}
for(int i = 1; i <= N; ++i)
{
int minim = maxx ;
int lin, col ;
for(int j = i; j <= N; ++j)
{
if( v[j] < minim )
{
minim = v[j] ;
lin = j ;
col = j ;
}
}
if( v[i] != minim )
{
swap( v[i], v[lin] ) ;
s[++nrs].ce = 0 ;
s[nrs].unu = i ;
s[nrs].doi = lin ;
s[++nrs].ce = 1 ;
s[nrs].unu = i ;
s[nrs].doi = col ;
}
}
cout << nrs << "\n" ;
for(int i = 1; i <= nrs; ++i)
{
if( s[i].ce == 0 )
cout << "L " ;
else
cout << "C " ;
cout << s[i].unu << " " << s[i].doi << "\n" ;
}
return 0 ;
}