Trädreklam | 프로그래밍의 벗 PivotOJ
PivotOJ

Trädreklam

시간 제한: 1000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2019 — lagerBOJ 20855

문제

I Azerbajdzjan finns det NN städer, numrerade mellan 11 och NN, anslutna med N1N - 1 vägar så att varje stad kan nås från varje annan stad längs en sekvens av vägar. Det är snart dags för årets IOI i huvudstaden Baku (stad 11) och alla i hela landet kommer då köra från sin hemstad till huvudstaden för att titta på tävlingen.

Du vill använda detta tillfälle för att marknadsföra din nya, jättesmarta tävlingsprogrammeringsdomare genom att sätta upp reklamplakat på massa träd längs olika vägar. Om du sätter upp plakat längs en viss väg kommer alla de personer som åker längs vägen någon gång under resan från sin hemstad till huvudstaden se plakatet.

Du har bedömt att det inte tillför någonting om en person ser dina plakat mer än en gång under sin färd -- din domare är så imponerande att alla vill använda den efter att ha sett plakatet en enda gång! Varje väg har en viss kostnad för att sätta upp plakat på alla träd längs vägen, varje stad har en viss befolkningsmängd, och du har en begränsad budget. Om du sätter upp plakat optimalt, vad är det största antalet personer som kommer se minst ett plakat under sin färd till huvudstaden?

입력

Den första raden innehåller två heltal -- antalet städer NN (1N20001 \le N \le 2\,000) och din budget i kronor BB (1B300001 \le B \le 30\,000).

Den andra raden innehåller de N1N-1 talen p2,p3,,pNp_2, p_3, \dots, p_N (0pi300000 \le p_i \le 30\,000). pip_i är antalet personer som bor i stad ii.

De följande N1N-1 raderna beskriver alla vägar i Azerbajdzjan. Den ii:te av dessa rader innehåller heltalen ai,bia_i, b_i (1ai,biN1 \le a_i, b_i \le N) och cic_i (1ciB+11 \le c_i \le B+1), vilket innebär att det den ii:te vägen går mellan städerna aia_i och bib_i och kostar cic_i kronor att sätta upp plakat längs.

Det är garanterat att det går att ta sig mellan alla städer med hjälp av dessa vägar.

출력

Skriv ut ett enda tal: det största antal personer som kan se dina plakat, om du sätter ut dem optimalt.

힌트

I det första exemplet är det optimalt att sätta upp ett plakat på vägen mellan stad 11 och 66, och en mellan stad 22 och 33. Detta kostar 350+100350 + 100 (vilket klarar sig inom budgeten på 500500), och gör att personerna i städerna 33, 44, 55 och 66 kommer att se reklamen -- totalt 1000+100+300+300=17001000 + 100 + 300 + 300 = 1700 personer.

예제

예제 1

입력
6 500
500 1000 100 300 300
1 2 200
3 2 100
1 6 350
5 6 501
6 4 250
출력
1700

예제 2

입력
6 4
10 20 30 40 50
1 2 1
1 3 1
1 4 1
2 5 1
3 6 1
출력
150
코드를 제출하려면 로그인하세요.