Cod sursa(job #1674241)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 4 aprilie 2016 15:24:09
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <cstdio>
#include <algorithm>

using namespace std;
int v[305];
pair <int,int> s[100000];
int main()
{
    FILE *fin=fopen ("grozavesti.in","r");
    FILE *fout=fopen ("grozavesti.out","w");
    int n,i,j,x,sol,maxi,poz,u;
    fscanf (fin,"%d",&n);
    for (i=1;i<=n;i++){
        for (j=1;j<=n;j++){
            fscanf (fin,"%d",&x);
            if (i==j)
                v[i]=x;
        }
    }
    sol=0;
    for (u=n;u>1;u--){
        maxi=v[1];
        poz=1;
        for (i=2;i<=u;i++){
            if (v[i]>=maxi){
                maxi=v[i];
                poz=i;
            }
        }
        // trb sa interschimbam pe v[i] cu mini
        if (poz!=u){
            sol++;
            s[sol].first=u;
            s[sol].second=poz;
            v[poz]=v[u];
            v[u]=maxi;
        }
    }
    //for (i=1;i<=n;i++)
        //printf ("%d ",v[i]);
    fprintf (fout,"%d\n",sol*2);
    for (i=1;i<=sol;i++){
        fprintf (fout,"L %d %d\n",s[i].first,s[i].second);
        fprintf (fout,"C %d %d\n",s[i].first,s[i].second);
    }
    return 0;
}