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.