Örnattack | 프로그래밍의 벗 PivotOJ
PivotOJ

Örnattack

시간 제한: 7000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2022 — onlinekvalBOJ 24194
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

Ekorrarna och örnarna har krigat sedan urminnes tider. Gammelekorren är en mästare på astrologi och har förutspått att örnarna snart kommer försöka sig på en sista attack mot storträdet. Enligt gammelekorren kommer ett antal örnar flyga in i trädet i hög fart för att få hela trädet att skaka så att ekorrarna riskerar att ramla ned.

Trädet består av N1N - 1 grenar, som går samman i NN olika punkter som vi kallar för noder (varav trädets stam är nod 11). Varje gren i trädet går alltså mellan två av dessa noder. Gammelekorren har förutspått i vilken av trädets NN noder var och en av örnarna kommer krascha och med vilken fart. Han vill veta hur mycket varje nod kommer skaka under attacken för att kunna varna alla ekorrar om de farligaste noderna. Tyvärr är gammelekorren inte lika bra på programmering som på astrologi, så han har anställt dig för att räkna ut hur mycket varje nod kommer skaka under attacken.

När en örn kraschar med fart vv i nod uu börjar nod uu skaka med styrkan vv. Skakningen sprider sig sedan genom de grenar som utgår från nod uu. När skakningen når en viss nod kommer den spridas genom alla grenar som möts i den nya node, förutom den som skakningen kom från. Skakstyrkan sprids i lika delar längs dessa nya grenar, så om skakningen hade styrka vv och sprids längs kk grenar kommer skakningen som färdas längs grenarna ha styrkan vk\frac{v}{k}. Detta pågår ända tills skakningen till slut når noder som inte har några andra grenar än den från vilken skaningen kom från, där skakningen slutas spridas vidare.

Du kan anta att skakningen från en krasch hinner sprida sig genom hela trädet och försvinna innan nästa örn kraschar. För var och en av noderna i trädet vill gammelekorren veta summan av alla skakningars styrkor som noden kommer utsättas för.

입력

På den första raden finns heltalet NN (1N1000001 \le N \le 100\,000), antalet noder i trädet. De följande N1N-1 raderna innehåller två heltal aa och bb (1a,bN1 \le a,b \le N), vilket betyder att det går en gren mellan nod aa och nod bb.

Därefter följer en rad med heltalet KK (1K1000001 \le K \le 100\,000), antalet örnar som kommer attackera. Slutligen följer KK rader som beskriver örnarna i den ordning de kraschar in i trädet. På varje rad finns två heltal, noden uu (1uN1 \le u \le N) där örnen kommer krascha och örnens fart vv (1v1091 \le v \le 10^9).

출력

Skriv ut en rad för varje nod i ordningen 11, 22, \dots med summan av alla skakningars styrkor noden kommer utsättas för. Ditt svar anses korrekt om det har ett absolut eller relativt fel om högst 10510^{-5}.

힌트

[이미지 1]

Figure 1: Första örnen.

[이미지 2]

Figure 2: Andra örnen.

Den första örnen kraschar i nod 44 med fart 55. Från nod 44 sprids skakningen endast till nod 33 och från nod 33 till både nod 11 och 55. Från nod 55 har skakningen ingenstans att ta vägen men från nod 11 sprids den till nod 22.

Den andra örnen kraschar i nod 33 med fart 66. Från nod 33 sprids skakningen till nod 11, 44 och 55. Skakningarna i nod 44 och 55 har ingenstans att ta vägen men skakningen i nod 11 sprids till nod 22.

För att få svaren ska varje nods skakningar adderas, exempelvis blir svaret 2.5+2=4.52.5+2=4.5 i nod 11 och 5+6=115+6=11 i nod 33.

예제

예제 1

입력
4
1 2
2 3
3 4
3
2 7
3 4
2 3
출력
7
12
9
7

예제 2

입력
5
1 2
1 3
3 4
3 5
2
4 5
3 6
출력
4.5
4.5
11
7
4.5
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.