Cod sursa(job #2890136)

Utilizator nubnubMeh Neh nubnub Data 14 aprilie 2022 17:40:10
Problema Grozavesti Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<stdio.h>
#define NMAX 300
int main()
{
    struct ch
    {
        int t,e1,e2;
    };
    ch v[NMAX*NMAX+1];
    freopen("grozavesti.in","r",stdin);
    freopen("grozavesti.out","w",stdout);
    int a[NMAX+1][NMAX+1],n,m=0,i,j,k,min,l,c,t;
    scanf("%d",&n);
    for(i=1; i<=n; ++i)
        for(j=1; j<=n; ++j)scanf("%d",&a[i][j]);
    for(k=1; k<n; ++k)
    {
        min=a[k][k];
        l=c=k;
        for(i=k; i<=n; ++i)
            for(j=k; j<=n; ++j)
                if(min>a[i][j]) min=a[i][j],l=i,c=j;
        if(l!=k)
        {
            v[m].t=0;
            v[m].e1=k;
            v[m].e2=l;
            m++;
            for(j=k; j<=n; ++j) t=a[k][j],a[k][j]=a[l][j],a[l][j]=t;
        }
        if(c!=k)
        {
            v[m].t=1;
            v[m].e1=k;
            v[m].e2=c;
            m++;
            for(i=k; i<=n; ++i) t=a[i][k],a[i][k]=a[i][c],a[i][c]=t;
        }
    }
    printf("%d\n",m);
    for(i=0; i<m; ++i)
    {
        if(v[i].t) printf("C ");
        else printf("L ");
        printf("%d %d\n",v[i].e1,v[i].e2);
    }
    return 0;
}