Cod sursa(job #608516)

Utilizator mihai995mihai995 mihai995 Data 17 august 2011 00:31:15
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#include <algorithm>
using namespace std;

const int N=301;
int v[N][N],ord[N],a[N],n,nr,D=-1;
char PRINT[N*N];

ifstream in("grozavesti.in");
ofstream out("grozavesti.out");

inline void sch(int &a,int &b)
{
    int c=a;a=b;b=c;
}

inline bool cmp(int a,int b)
{
    return v[a][a]<v[b][b];
}

void add(int x)
{
    if (x<10)
    {
        PRINT[++D]=x+'0';
        return;
    }
    add(x/10);
    PRINT[++D]=x%10+'0';
}

int main()
{
    in>>n;
    for (int i=1;i<=n;i++)
    {
        for (int j=1;j<=n;j++)
            in>>v[i][j];
        ord[i]=i;
    }
    sort(ord+1,ord+n+1,cmp);
    for (int i=1;i<=n;i++)
        a[ord[i]]=i;
    for (int i=1;i<=n;i++)
        if (ord[i]!=i)
        {
            nr+=2;
            sch(ord[i],ord[a[i]]);
            PRINT[++D]='L';
            PRINT[++D]=' ';
            add(ord[i]);
            PRINT[++D]=' ';
            add(a[i]);
            PRINT[++D]='\n';
            PRINT[++D]='C';
            PRINT[++D]=' ';
            add(ord[i]);
            PRINT[++D]=' ';
            add(a[i]);
            PRINT[++D]='\n';
        }
    out<<nr<<"\n";
    out<<PRINT;
    return 0;
}