Cod sursa(job #474825)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 5 august 2010 09:32:40
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<cstdio>
#include<algorithm>
#define N 301
using namespace std;
typedef struct dp
{
    int val,poz;
};
dp v[N];
int n,pf[N],a[N][N];
bool comp(const dp &A,const dp &B)
{
    return A.val<B.val;
}
void read()
{
    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]);
    for(int i=1;i<=n;i++)
        v[i].val=a[i][i], v[i].poz=i;
}
void init()
{
    sort(v+1,v+n+1,comp);
    for(int i=1;i<=n;i++)
        pf[v[i].poz]=i;
}
void solve()
{
    int nrc=0;
    for(int i=1;i<=n;i++)
        if(v[i].poz!=i)
        {
            nrc+=2;
            v[pf[i]].poz=v[i].poz;
        }
    printf("%d\n",nrc);
    init();
    for(int i=1;i<=n;i++)
        if(v[i].poz!=i)
        {
            printf("L %d %d\n",v[i].poz,i);
            printf("C %d %d\n",v[i].poz,i);
            v[pf[i]].poz=v[i].poz;
        }
}
int main()
{
    read();
    init();
    solve();
    return 0;
}