#会津大学オンラインジャッジ問1196 Bridge Removalに合格したコード一番速度の遅い部類
#堀江伸一
def commitCost(old1,now1)
d=$cons[old1][now1]
if 1<$cons[old1].size && 1<$cons[now1].size then
d*=3
end
$cost[old1][now1]=d
$cost[now1][old1]=d
$cons[now1].each{|next1,d|
next if next1==old1
commitCost(now1,next1)
}
end
def calcAns(old1,now1,cost1)
res=cost1
$cost[now1].each{|next1,cost2|
next if old1==next1
if now1==next1 then
res=[res,cost1].min
else
cost3=$cons[now1][next1]*2
cost4=cost1-cost2+cost3
res=[res,cost4].min
t=calcAns(now1,next1,cost4)
res=[res,t].min
end
}
return res
end
def f(n)
$cons={}
$root={}
$cost={}
xs=gets.split(" ").map{|e| e.to_i}
ys=gets.split(" ").map{|e| e.to_i}
1.upto(n){|i|
$cons[i]={}
$cost[i]={}
}
from=2
xs.zip(ys).each{|to,d|
$cons[from][to]=d
$cons[to][from]=d
$cost[from][to]=0
$cost[to][from]=0
from+=1
}
$cons[1].each{|k,v|
commitCost(1,k)
}
$allCost=0
$cost.each{|k1,ks|
$allCost+=ks.values.sum
}
1.upto(n){|i|
$cons[i][i]=0
$cost[i][i]=0
}
$allCost/=2
ans=10**24
all=[]
1.upto(n){|i|
cost1=$allCost
t=calcAns(i,i,cost1)
ans=[t,ans].min
}
puts ans
end
$cons={}
$root={}
$cost={}
$allCost=0
while true
n=gets.to_i
break if n==0
f(n)
end
I+S8mua0peWkp+WtpuOCquODs+ODqeOCpOODs+OCuOODo+ODg+OCuOWVjzExOTYgQnJpZGdlIFJlbW92YWzjgavlkIjmoLzjgZfjgZ/jgrPjg7zjg4nkuIDnlarpgJ/luqbjga7pgYXjgYTpg6jpoZ4KI+WggOaxn+S8uOS4gApkZWYgY29tbWl0Q29zdChvbGQxLG5vdzEpCglkPSRjb25zW29sZDFdW25vdzFdCglpZiAxPCRjb25zW29sZDFdLnNpemUgJiYgMTwkY29uc1tub3cxXS5zaXplIHRoZW4KCQlkKj0zCgllbmQKCSRjb3N0W29sZDFdW25vdzFdPWQKCSRjb3N0W25vdzFdW29sZDFdPWQKCSRjb25zW25vdzFdLmVhY2h7fG5leHQxLGR8CgkJbmV4dCBpZiBuZXh0MT09b2xkMQoJCWNvbW1pdENvc3Qobm93MSxuZXh0MSkKCX0KZW5kCgpkZWYgY2FsY0FucyhvbGQxLG5vdzEsY29zdDEpCglyZXM9Y29zdDEKCSRjb3N0W25vdzFdLmVhY2h7fG5leHQxLGNvc3QyfAoJCW5leHQgaWYgb2xkMT09bmV4dDEKCQlpZiBub3cxPT1uZXh0MSB0aGVuCgkJCXJlcz1bcmVzLGNvc3QxXS5taW4KCQllbHNlCgkJCWNvc3QzPSRjb25zW25vdzFdW25leHQxXSoyCgkJCWNvc3Q0PWNvc3QxLWNvc3QyK2Nvc3QzCgkJCXJlcz1bcmVzLGNvc3Q0XS5taW4KCQkJdD1jYWxjQW5zKG5vdzEsbmV4dDEsY29zdDQpCgkJCXJlcz1bcmVzLHRdLm1pbgoJCWVuZAoJfQoJcmV0dXJuIHJlcwplbmQKCmRlZiBmKG4pCgkkY29ucz17fQoJJHJvb3Q9e30KCSRjb3N0PXt9Cgl4cz1nZXRzLnNwbGl0KCIgIikubWFwe3xlfCBlLnRvX2l9Cgl5cz1nZXRzLnNwbGl0KCIgIikubWFwe3xlfCBlLnRvX2l9CgkxLnVwdG8obil7fGl8CgkJJGNvbnNbaV09e30KCQkkY29zdFtpXT17fQoJfQoJZnJvbT0yCgl4cy56aXAoeXMpLmVhY2h7fHRvLGR8CgkJJGNvbnNbZnJvbV1bdG9dPWQKCQkkY29uc1t0b11bZnJvbV09ZAoJCSRjb3N0W2Zyb21dW3RvXT0wCgkJJGNvc3RbdG9dW2Zyb21dPTAKCQlmcm9tKz0xCgl9CgkkY29uc1sxXS5lYWNoe3xrLHZ8CgkJY29tbWl0Q29zdCgxLGspCgl9CgkKCQoJJGFsbENvc3Q9MAoJJGNvc3QuZWFjaHt8azEsa3N8CgkJJGFsbENvc3QrPWtzLnZhbHVlcy5zdW0KCX0KCTEudXB0byhuKXt8aXwKCQkkY29uc1tpXVtpXT0wCgkJJGNvc3RbaV1baV09MAoJfQoKCSRhbGxDb3N0Lz0yCglhbnM9MTAqKjI0CglhbGw9W10KCTEudXB0byhuKXt8aXwKCQljb3N0MT0kYWxsQ29zdAoJCXQ9Y2FsY0FucyhpLGksY29zdDEpCgkJYW5zPVt0LGFuc10ubWluCgl9CglwdXRzIGFucwplbmQKCiRjb25zPXt9CiRyb290PXt9CiRjb3N0PXt9CiRhbGxDb3N0PTAKd2hpbGUgdHJ1ZQoJbj1nZXRzLnRvX2kKCWJyZWFrIGlmIG49PTAKCWYobikKZW5k