Primärfaktor
문제
“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 noder och kanter, där varje nod har ett icke-negativt heltal , nodens höjd. En nods primärfaktor ä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 vara mängden av alla vägar från noden till någon annan nod sådan att . Primärfaktorn hos definieras som
Om , 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 .
Givet en graf, hitta alla noders primärfaktorer.
입력
En rad med två heltal, och . En rad med heltal , nodernas höjder. rader med två heltal, och (), vilket betyder att en kant går mellan noderna och .
출력
En rad med heltal, nodernas primärfaktorer.
예제
예제 1
5 4 3 2 5 1 6 1 2 2 3 3 4 4 5
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
0 0 0 2 4 6