Pagini recente » Cod sursa (job #1329293) | Cod sursa (job #2060347) | Cod sursa (job #996166) | Cod sursa (job #167488) | Cod sursa (job #1788300)
#include <cstdio>
#include <vector>
using namespace std;
vector<pair <int, int> > v;
int n, a[302][302];
inline Swap_line(int i){
for(int j = 1 ; j <= n ; ++j){
int aux = a[i][j];
a[i][j] = a[i - 1][j];
a[i - 1][j] = aux;
}
}
inline Swap_column(int i){
for(int j = 1 ; j <= n ; ++j){
int aux = a[j][i];
a[j][i] = a[j][i - 1];
a[j][i - 1] = aux;
}
}
int main()
{
freopen("grozavesti.in", "r", stdin);
freopen("grozavesti.out", "w", stdout);
scanf("%d", &n);
for(int i = 1 ; i <= n ; ++i)
for(int j = 1 ; j <= n ; ++j)
scanf("%d", &a[i][j]);
int i = 2, NR = 0;
while(i <= n){
if(a[i][i] < a[i - 1][i - 1]){
if(a[i][i - 1] <= a[i - 1][i]){
v.push_back(make_pair(i - 1, 0));
Swap_line(i); ++NR;
}
else{
v.push_back(make_pair(i - 1, 1));
Swap_line(i); Swap_column(i);
NR += 2;
}
if(i > 2) --i;
else ++i;
}
else ++i;
}
printf("%d\n", NR);
for(int i = 0 ; i < v.size() ; ++i){
printf("L %d %d\n", v[i].first, v[i].first + 1);
if(v[i].second == 1)
printf("C %d %d\n", v[i].first, v[i].first + 1);
}
return 0;
}