Pagini recente » Cod sursa (job #1676052) | Cod sursa (job #2743142) | Cod sursa (job #1284252) | Cod sursa (job #2196366) | Cod sursa (job #1011424)
#include<fstream>
#include<vector>
#define Nmax 309
using namespace std;
ifstream f("grozavesti.in");
ofstream g("grozavesti.out");
int N,a[Nmax][Nmax],minim,poz;
struct Solutie{char c;int x,y;}s;
vector <Solutie> sol;
inline void ReadInput()
{
f>>N;
for(int i=1;i<=N;++i)
for(int j=1;j<=N;++j)f>>a[i][j];
}
inline void InterschimbaLinie(int x,int y)
{
for(int j=1;j<=N;++j)swap(a[x][j],a[y][j]);
}
inline void InterschimbaColoana(int x,int y)
{
for(int i=1;i<=N;++i)swap(a[i][x],a[i][y]);
}
void Solve()
{
for(int k=1;k<=N;++k)
{
minim=a[k][k];
poz=k;
for(int i=k;i<=N;++i)
{
if(a[i][i]<minim)
{
minim=a[i][i];
poz=i;
}
}
if(poz!=k)
{
s.c='C'; s.x=k; s.y=poz; sol.push_back(s);
s.c='L'; sol.push_back(s);
InterschimbaColoana(k,poz);
InterschimbaLinie(k,poz);
}
}
}
void PrintOutput()
{
g<<sol.size()<<'\n';
for(int i=0;i<sol.size();++i)
g<<sol[i].c<<' '<<sol[i].x<<' '<<sol[i].y<<'\n';
}
int main()
{
ReadInput();
Solve();
PrintOutput();
f.close();g.close();
return 0;
}