All pastes #924910 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-03-01 20:36 UTC
rendered paste body
program lacusta;
var
min,n,m,k,miny:integer;
a,b:array[1..5,1..5] of integer;
f,g:text;
procedure beolvas;
var
i,j:integer;
begin
     readln(f,n,m);
     for i:=1 to n do   begin
         for j:=1 to m do
         read(f,a[i,j]);
     readln(f);
     end;
end;

function masodikmin(i:integer):integer;
var
j,min2:integer;
begin
     min2:=maxint;
     for j:=1 to m do
     if (min2>b[i,j]) and (b[i,j]<>min) then   begin
     min2:=b[i,j];
     k:=j;
     end;
     masodikmin:=min2;
end;

function minimum(i:integer):integer;
var
min,j:integer;
begin
     min:=maxint;
     for j:=1 to m do
     if b[i,j]<min then begin
                        min:=b[i,j];
                        k:=j;
                        end;
     minimum:=min;
end;

procedure work;
var
i,j:integer;
begin
     miny:=1;
     min:=a[1,1];
     for i:=1 to n-2 do begin
         for j:=1 to m do
         b[i,j]:=a[i,j]+min+a[i+1,j];
     b[1,1]:=maxint;
     min:=minimum(i);
     if miny=k then begin
     min:=masodikmin(i);

     end;
     miny:=k;
     end;

     for j:=1 to m-1 do
     b[n-1,j]:=min+a[n-1,j]+a[n,j];
     b[n-1,m]:=maxint;
     min:=minimum(n-1);
     if k<>miny then writeln(g,min+a[n,m])
     else writeln(g,masodikmin(n-1)+a[n,m]);

end;


begin
     assign(f,'lacusta.in');
     assign(g,'lacusta.out');
     reset(f);
     rewrite(g);
     beolvas;
     work;

     close(g);
end.