昔、英国T空前の繁栄。より良い国を管理するために、王国は、資本と王国の主要都市を結ぶための高速パスの多数を構築しました。
経済、T州立大臣反射の理由から、我々はすべての主要な都市は他の都市を介して直接または間接的に、首都から到達することができながら、優れた建設計画のセットを開発しました。あなたは、各プログラムの首都から到着し、大都市の後に繰り返さない場合は、同時に、それはユニークです。
J Tは、彼らのニーズに同情重要な国の大臣、彼は主要都市の間に検査、です。そのため、1つの都市から別の都市へのノンストップは、通常行うJ事になりました。彼は、都市間の通行料交換を格納するために、財布を持っています。
スマートJは、市内の移動の連続プロセスでドレッシングを停止しない場合、彼は千メートルのX X + 1千メートル最初の千メートルに最初に行く時にすでに走行距離に関係彼の旅費を、過ごしたことがわかりました(xは整数である)で、彼はそんなに費やし通行料は、x + 10です。それは23を過ごすために2キロを歩いた、離れて1キロ11を取ります。
J大臣が知りたい:彼は、特定の都市から開始し、途中で途切れることなく、別の都市に到達するために、すべての通行料は、それがどのくらいあるまで過ごすこと?
入力の最初の行は整数nが含まれ、Tは、王国の首都を含む、都市の数を表します。
都市は、その首都として、1から第1街の番号が付けられています。
次の行n-1、Tは、米国のハイウェイ(国道TはN-1でなければならない)説明しました
各行三つの整数パイ、チー、Diは、都市および都市Piのチー、ジ長キロ間高速道路を発現しました。
出力アン大臣Jが最も通行料のコストを表す整数。
1 2 2
1 3 1
2 4 5
2 5 4
街から街5〜4大臣Jは135の通行料を取ります。
#include <ビット/ STDC ++ H> に#define N 10005 の#define M 10005 使用して 名前空間STDを、 整数 nは、ヘッド[N]、版[M]、エッジ[M]、次に[M]、D [N]、TOT = 0 。 BOOL V [N] = { 0 }。 INT F [N]。 int型 ANS = 0 ; ボイド追加(int型のx、int型 Y、INT Z) { 版[ ++ TOT = Y、エッジ[TOT = Z。 次【TOT] =頭部[X]、ヘッド[X] = TOT。 } ボイド DP(INT X) { V [X]= 1 ; int型私は、 ため(I [x]はヘッド=; I;私は= 次に[I]) { int型、Y = 版[I]を、 もし(V [Y])を続けます。 DP(Y)。 ANS = MAX(ANS、D [X] + D [Y] + エッジ[I])。 D [X] = MAX(D [x]は、D [Y] + エッジ[I])。 } } int型のmain() { CIN >> N。 int型私は、 以下のために(iは= 1 ; I <= N- 1、I ++ ) { int型のX、Y、Z。 scanf関数(" %D%D%D "、およびX&Y、およびZ)。 (x、y、z)を加えます。 (Y、X、Z)を追加します。 } のためには、(iは= 1 ; I <= N; I ++ ) { DP(I)。 } INT ANS1 = 0 。 以下のための式(I = 1 ; I <= ANS; I ++ ) { ANS1 + = I + 10 。 } COUT << ANS1。 リターン 0 ; }