Cod sursa(job #138985)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 19 februarie 2008 16:28:47
Problema Grozavesti Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.43 kb
program grozavesti;
type xyz=record
     tip:char;
     nr1:longint;
     nr2:longint;
     end;
var f,g:text;
    a:array[0..700]of xyz;
    v:array[0..310,0..310]of longint;
    n,i,j,y,min,lmin,cmin,aux,p,k:longint;
begin
assign(f,'grozavesti.in');
assign(g,'grozavesti.out');
reset(f);
rewrite(g);
read(f,n);
for i:=1 to n do
  for j:=1 to n do
    read(f,v[i,j]);
p:=1;
k:=0;
for y:=1 to n do
  begin
    min:=v[y,y];
    lmin:=y;
    cmin:=y;
    for i:=y+1 to n do
      for j:=y+1 to n do
        if (v[i,j]<min)and(v[i,j]>=p)then
          begin
            min:=v[i,j];
            lmin:=i;
            cmin:=j;
            {if (v[i,j]=1)then break;   }
          end;
      if (lmin<>y)then
        begin
          for i:=1 to n do
            begin
              aux:=v[y,i];
              v[y,i]:=v[lmin,i];
              v[lmin,i]:=aux;
            end;
          k:=k+1;
          a[k].tip:='L';
          a[k].nr1:=y;
          a[k].nr2:=lmin;
        end;
      if (cmin<>y)then
        begin
          for i:=1 to n do
            begin
              aux:=v[i,y];
              v[i,y]:=v[i,cmin];
              v[i,cmin]:=aux;
            end;
          inc(k);
          a[k].tip:='C';
          a[k].nr1:=y;
          a[k].nr2:=cmin;
        end;
    p:=v[y,y];
  end;
writeln(g,k);
for i:=1 to k do
  writeln(g,a[i].tip,' ',a[i].nr1,' ',a[i].nr2);
close(f);
close(G);
end.