http://acm.pku.edu.cn/JudgeOnline/problem?id=1192
Код:
program PKU1192;
{$I-,S-,Q-,R-}
{$M 20000, 0, 20000}
const maxn = 1000;
none = 10000000;
type integer = longint;
var x, y, c: array[1..maxn] of integer;
n, ans: integer;
procedure prepare;
var i: integer;
begin
read(n);
for i := 1 to n do read(x[i], y[i], c[i]);
end;
procedure search(u, fa: integer);
var v: integer;
begin
for v := 1 to n do if (abs(x[u] - x[v]) + abs(y[u] - y[v]) = 1) and (v <> fa) then begin
search(v, u);
if c[v] > 0 then c[u] := c[u] + c[v];
end;
if c[u] > ans then ans := c[u];
end;
procedure main;
begin
ans := -none;
search(1, 0);
writeln(ans);
end;
begin
prepare;
main;
end.