All pastes #919084 Raw Edit

Unnamed

public text v1 · immutable
#919084 ·published 2008-02-26 16:13 UTC
rendered paste body
program sud;
type
matrix=array[1..200,1..2] of integer;

var
f,g:text;
lepes:array[1..200] of integer;
a1,a2:array[1..100,1..100] of integer;
a3,a4:matrix;

k,n:integer;
procedure beolvas;
var
i,j:integer;
begin
     readln(f,n);
     i:=0;
     for i:=1 to n do begin
         for j:=1 to n do begin
         read(f,a1[i,j]);
         a2[i,j]:=a1[i,j];
         end;
     readln(f);
     end;
     readln(f,k);
     for i:=1 to k do
     read(f,lepes[i]);

end;

procedure varial(i,j,db:integer);
var
ii,jj:integer;
begin
     inc(db);
     if db<=k then begin
     ii:=i+lepes[db];
     jj:=j+lepes[db];
        if ii<=n then   begin
           if a1[ii,j]<>a2[ii,j] then begin   {ha nem egyenlo
           akkor mar volt ott tehat azzal folytatjuk ami nagyobb megoldast ad}
              if a2[i,j]+a1[ii,j]>a2[ii,j] then begin
              a2[ii,j]:=a1[ii,j]+a2[i,j];
              a3[db,1]:=ii;
              a3[db,2]:=j;
              if (ii=n) and (j=n) then a4:=a3;
              varial(ii,j,db)
              end;
           end
           else begin a2[ii,j]:=a1[ii,j]+a2[i,j];
              a3[db,1]:=ii;
              a3[db,2]:=j;
              if (ii=n) and (j=n) then a4:=a3;
              varial(ii,j,db)
           end;


        end;


        if jj<=n then begin
           if a1[i,jj]<>a2[i,jj] then begin   {ha nem egyenlo akkor mar volt ott tehat azzal folytatjuk ami nagyobb megoldast}
              if a2[i,j]+a1[i,jj]>a2[i,jj] then begin
              a2[i,jj]:=a1[i,jj]+a2[i,j];
              a3[db,1]:=i;
              a3[db,2]:=jj;
              if (i=n) and (jj=n) then a4:=a3;
              varial(i,jj,db)
              end;
           end
           else begin a2[i,jj]:=a1[i,jj]+a2[i,j];
              a3[db,1]:=i;
              a3[db,2]:=jj;
              if (i=n) and (jj=n) then a4:=a3;
              varial(i,jj,db)
           end;

        end;


     end;

end;

procedure kiir;
var
i:integer;
begin

     writeln(g,'1 1');
     for i:=1 to k do
     writeln(g,a4[i,1],' ',a4[i,2]);

end;

begin
     assign(f,'sudest.in');
     assign(g,'sudest.out');
     reset(f);
     rewrite(g);

     beolvas; {beolvasom a matrixot es beolvasom a lepesek szamat!}
     varial(1,1,0);
     writeln(g,a2[n,n]);
     kiir;
     close(g);
end.