시간 제한메모리 제한제출정답맞힌 사람정답 비율
3 초 1024 MB0000.000%

문제

“Vilket är världens högsta berg? Den högsta punkten på Mount Everests topp. OK, men vilket är världens näst högsta berg? Den näst högsta punkten på Mount Everests topp såklart.”

Med den här logiken blir listan på världens högsta berg väldigt dum. Men det finns en lösning, man introducerar begreppet primärfaktor. Primärfaktorn hos ett berg är det minsta avståndet i höjdled man måste gå ner från berget för att komma till ett strikt högre berg. Det funkar som ett slags mått på hur självständigt ett berg är, och om man rensar bort alla punkter med primärfaktor mindre än 200 m, så blir man av med alla fåniga små berg som egentligen sitter på högre berg. Det här problemet handlar om att hitta alla primärfaktorer i en graf.

Vi har en graf med $n$ noder och $m$ kanter, där varje nod $i$ har ett icke-negativt heltal $h(i)$, nodens höjd. En nods primärfaktor $P(i)$ är den minsta höjden man måste gå ner från noden för att komma till en nod med strikt högre höjd. Här kommer en lite mer matematisk definition: Låt $G(i)$ vara mängden av alla vägar från noden $i$ till någon annan nod $j$ sådan att $h(j) > h(i)$. Primärfaktorn hos $i$ definieras som 

$$P(i) =  \min_{\gamma \in G(i)}  \left\{   h(i) - \min_{k\in \gamma}(h(k))  \right\}$$

Om $G(i) = \emptyset$, dvs om det överhuvudtaget inte går att ta sig till en nod med högre höjd, så säger vi att primärfaktorn är $h(i)$.

Givet en graf, hitta alla noders primärfaktorer.

입력

En rad med två heltal, $n$ och $m$. En rad med $n$ heltal $0 \leq h(i) \leq 10^9$, nodernas höjder. $m$ rader med två heltal, $a$ och $b$ ($1 \leq a,b \leq n$), vilket betyder att en kant går mellan noderna $a$ och $b$.

출력

En rad med $n$ heltal, nodernas primärfaktorer.

제한

  • $n \le 100\,000$
  • $m \le 400\,000$

예제 입력 1

5 4
3 2 5 1 6
1 2
2 3
3 4
4 5

예제 출력 1

1 0 4 0 6 

예제 입력 2

6 7
1 2 3 4 5 6
1 2
1 3
1 6
2 3
2 4
2 5
3 4

예제 출력 2

0 0 0 2 4 6 

출처

Olympiad > Swedish Olympiad in Informatics > 2017 > KATT2 B번

  • 문제를 만든 사람: Nils Gustafsson