[Quy hoạch động]Tây sang Đông
2 posters
Trang 1 trong tổng số 1 trang
[Quy hoạch động]Tây sang Đông
*Thuật toán chưa cải tiến!!!
Code by TNB
- Code:
program TD;
const fi = 'TD.inp';
fo = 'TD.out';
nmax = 100000;
type mang2d = array[0..nmax, 0..nmax] of longint;
var m, n, i, j, sum, nmin, q, p: longint;
a: array[0..1000, 0..1000] of integer;
watch, dem: integer;
trace: array[1..1000] of integer;
//==============================================
procedure input;
var f : text;
begin
assign(f, fi);
reset(f);
for i := 1 to n do a[0, i] := 0;
for i := 1 to m do a[i, 0] := 0;
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;
close(f);
end;
//==============================================
function min(x, y, z: longint): longint;
begin
if (x<>0) then
if (x<=y) and (x<=z) then
begin
trace[dem] := i-1;
i := i-1;
exit(x);
end;
if (y<>0) then
if (y<=x) and (y<=z) then
begin
trace[dem] := i;
i := i;
exit(y);
end;
if (z<=x) or (z<=y) then
begin
trace[dem] := i+1;
i := i+1;
exit(z);
end;
end;
//==============================================
procedure process;
begin
dem:=2;
i := q;
for j := 1 to m-1 do
begin
watch := min(a[i-1, j+1], a[i, j+1], a[i+1, j+1]);
sum := sum + watch;
inc(dem);
end;
end;
//==============================================
procedure output;
var f : text;
begin
assign(f, fo);
rewrite(f);
writeln(f, sum);
trace[1] := nmin;
for i:=1 to m do
write(f, trace[i], ', ');
close(f);
end;
//==============================================
Begin
input;
nmin:=maxint;
for i := 1 to n do
if a[i,1]<nmin then
begin
nmin:=a[i,1];
q := i;
end;
sum := nmin;
process;
output;
End.
Code by TNB
^_^
nguyenbacdlld đã viết:Èo. Không biết sang năm 11 thế nào
2 người lo vác cái giải QP về cho lớp chứ sao nữa Chai zoooooooooooooooo
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|