📄 two.pas
字号:
{ DMIH 2002 - Drugi dan natjecanja }
{ Srednjoskolska skupina - II. podskupina }
{ Zadatak DVIJE }
{ Autor rjesenja Ivan Sikiric }
program two;
const maxn = 10000;
maxe = (maxn-1)*2;
var n, i, a, b, c : integer;
rj, najduziput : longint;
f : text;
vrhovi : array[1..maxe] of record b, c, p : integer; end;
lista : array[1..maxn] of integer;
posjetio : array[1..maxn] of boolean;
function posjeti(x : integer) : longint;
var duljina, najveca : longint;
y : integer;
begin
posjetio[x]:=true;
y:=lista[x];
najveca:=0;
while y<>0 do
begin
if not(posjetio[vrhovi[y].b]) then
duljina:=vrhovi[y].c+posjeti(vrhovi[y].b) else
duljina:=0;
if duljina+najveca>najduziput then najduziput:=duljina+najveca;
if duljina>najveca then najveca:=duljina;
y:=vrhovi[y].p;
end;
posjeti:=najveca;
end;
begin
assign(f, 'two.in');
reset(f);
readln(f, n); { :) }
rj := 0;
for i:=1 to n do lista[i]:=0;
for i:=1 to n-1 do
begin
readln(f, a, b, c);
rj:=rj+c;
vrhovi[i*2-1].b:=b;
vrhovi[i*2-1].c:=c;
vrhovi[i*2-1].p:=lista[a];
lista[a]:=i*2-1;
vrhovi[i*2].b:=a;
vrhovi[i*2].c:=c;
vrhovi[i*2].p:=lista[b];
lista[b]:=i*2;
end;
close(f);
najduziput:=0;
for i:=1 to n do posjetio[i]:=false;
posjeti(1);
rj:=rj*2-najduziput;
assign(f, 'two.out');
rewrite(f);
writeln(f, rj);
close(f);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -