Pagini recente » Cod sursa (job #2954320) | Cod sursa (job #1059165) | Cod sursa (job #991293) | Cod sursa (job #302162) | Cod sursa (job #485670)
Cod sursa(job #485670)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
const char InFile[]="grozavesti.in";
const char OutFile[]="grozavesti.out";
struct cmd
{
cmd(char ch2, int a2, int b2):a(a2),b(b2),ch(ch2){}
int a,b;
char ch;
};
struct el
{
el(int poz2, int key2):poz(poz2),key(key2){}
int poz,key;
};
bool el_cmp(el a, el b)
{
return a.key<b.key;
}
ifstream fin(InFile);
ofstream fout(OutFile);
vector<cmd> instr;
vector<el> v;
int n,x;
void schimba(int a, int b)
{
el e=v[a];
v[a]=v[b];
v[b]=e;
instr.push_back(cmd('C',a,b));
instr.push_back(cmd('L',a,b));
}
int main()
{
v.push_back(el(0,0));
fin>>n;
for(register int i=1;i<=n;++i)
{
for(register int j=1;j<=n;++j)
{
fin>>x;
if(i==j)
{
v.push_back(el(i,x));
}
}
}
fin.close();
for(register int i=1;i<=n;++i)
{
int poz=i;
for(register int j=i+1;j<=n;++j)
{
if(v[poz].key>v[j].key)
{
poz=j;
}
}
schimba(poz,i);
}
/*
for(register int i=0;i<(int)v.size();++i)
{
//fout<<"( "<<v[i].poz<<" , "<<v[i].key<<") ";
fout<<v[i].key<<" ";
}
fout<<"\n";*/
fout<<instr.size()<<"\n";
for(register int i=0;i<(int)instr.size();++i)
{
fout<<instr[i].ch<<" "<<instr[i].a<<" "<<instr[i].b<<"\n";
}
fout.close();
return 0;
}