Cod sursa(job #138974)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 19 februarie 2008 16:08:06
Problema Grozavesti Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.5 kb
program grozavesti;
var f,g:text;
    v:array[0..310,0..310]of longint;
    n,i,j,y,min,lmin,cmin,aux,p: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;
for y:=1 to n do
  begin
    min:=v[y,y];
    lmin:=y;
    cmin:=y;
    for i:=y+1 to n do
      for j:=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;
      for j:=y+1 to n do
        for i:=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;
          if (y=n)and(cmin=y)then
          write(g,'L ',y,' ',lmin) else
          writeln(g,'L ',y,' ',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;
          if (y=n)then
          write(g,'C ',y,' ',cmin) else
          writeln(g,'C ',y,' ',cmin);
        end;
    p:=v[y,y];
  end;
close(f);
close(G);
end.