Cod sursa(job #1516704)

Utilizator raulmuresanRaul Muresan raulmuresan Data 3 noiembrie 2015 14:20:49
Problema Grozavesti Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include<fstream>
#include<iostream>
#include<vector>
#include <cstring>
using namespace std;
ifstream fin("grozavesti.in");
ofstream fout("grozavesti.out");



int n,m,k,i,j,p,x,y,a[305][305],t,cont;

struct coada
{
    char ch;
    int x, y;
};
coada sol[305];

int minim(int k)
{
    int i, p;
    p = k;
    for (i = k + 1; i <= n; i++)
        if (a[p][p] > a[i][i])
            p = i;
    return p;
}
void linie(int k, int p)
{
    int i;
    for (i = 1; i <= n; i++)
        swap(a[k][i], a[p][i]);
}

void coloana(int k, int p)
{
    int i;
    for (i = 1; i <= n; i++)
        swap(a[i][k], a[i][p]);
}

int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            fin>>a[i][j];
        }

    }
    cont=0;
    for(i=1;i<=n;i++)
    {
        k=minim(i);
        if(k!=i)
        {
            cont++;
            sol[cont].ch='L'; sol[cont].x=i; sol[cont].y=k;
            cont++;
            sol[cont].ch='C'; sol[cont].x=i; sol[cont].y=k;
            linie(i,k);
            coloana(i,k);

        }
    }
    fout<<cont<<"\n";
    for(i=1;i<=cont;i++)
    {
        fout<<sol[i].ch<<" "<<sol[i].x<<" "<<sol[i].y<<"\n";
    }
    fout<<"\n";
}