?? 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 + -