Cod sursa(job #122039)

Utilizator andumMorie Daniel Alexandru andum Data 10 ianuarie 2008 18:21:01
Problema Grozavesti Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.74 kb
var a,c,l:array[1..100,1..100] of 0..9;
    n,i,j,k,min,x,y,m:integer;
    f,g:text;
    ok:boolean;
begin
assign(f,'grozav.in');
assign(g,'grozav.out');
reset(f);
rewrite(g);
readln(f,n);
min:=maxint;
for i:=1 to n do
for j:=1 to n do begin
                 read(f,a[i,j]);
                 if a[i,j]<min then begin
                                    min:=a[i,j];
                                    x:=i;
                                    y:=j;
                                    end;
                 end;
ok:=true;
for i:=2 to n do if a[i,i]<a[i-1,i-1] then begin
                                           ok:=false;
                                           break;
                                           end;
if ok then writeln(g,'0')
      else begin
if a[1,1]<>min then begin
c[1,1]:=1;
c[1,2]:=y;
l[1,1]:=1;
l[1,2]:=x;
inc(m);
end;
for k:=2 to n do begin
                 min:=maxint;
for i:=k to n do
for j:=k to n do begin
                 if a[i,j]<min then begin
                                    min:=a[i,j];
                                    x:=i;
                                    y:=j;
                                    end;
                 if a[k,k]<>min then begin
                    c[k,1]:=k;
                    c[k,2]:=y;
                    l[k,1]:=k;
                    l[k,2]:=x;
                    inc(m);
                    end;
                 end;
                 end;
writeln(g,m);
for i:=1 to k do begin
                 if (c[i,1]<>0) and (c[i,2]<>0) then
                 writeln(g,'C ',c[i,1],' ',c[i,2]);
                 if (l[i,1]<>0) and (l[i,2]<>0) then
                 writeln(g,'L ',l[i,1],' ',l[i,2]);
                 end;
end;
close(f);
close(g);
end.