Cod sursa(job #240268)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 7 ianuarie 2009 08:07:44
Problema Grozavesti Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.96 kb
type sol=record
     c:char;
     x,y:longint;
     end;

var a:array[1..300,1..300] of longint;
    f,g:text;
    mutari:array[1..1000] of sol;
    n,j,i,min,poz,nr:longint;

procedure comut(x,y,z,t:longint);
 var q:longint;
 begin
  if x<>y then begin
   inc(nr);
   mutari[nr].c:='L';
   mutari[nr].x:=x;
   mutari[nr].y:=y;
  end;
  if z<>t then begin
   inc(nr);
   mutari[nr].c:='C';
   mutari[nr].x:=z;
   mutari[nr].y:=t;
  end;
  q:=a[x,z];
  a[x,z]:=a[y,t];
  a[y,t]:=q;
 end;

begin
 assign(f,'grozavesti.in'); reset(f);
 assign(g,'grozavesti.out'); rewrite(g);
 read(f,n);
 nr:=0;
 for i:=1 to n do
  for j:=1 to n do
   read(f,a[i,j]);
 for i:=1 to n-1 do begin
  min:=maxlongint; poz:=0;
  for j:=i to n do
   if a[j,j]<min then begin
    min:=a[j,j];
    poz:=j;
   end;
  comut(i,poz,i,poz);
 end;
 writeln(g,nr);
 for i:=1 to nr do
  writeln(g,mutari[i].c,' ',mutari[i].x,' ',mutari[i].y);
 close(g); close(f);
end.