Ամենամոտ հիվանդանոցը

Տրված է n քաղաք, որոնք միացված են m երկկողմանի ճանապարհներով։ Յուրաքանչյուր քաղաք կամ սովորական քաղաք է, կամ քաղաք է, որտեղ կա հիվանդանոց։ Ձեր խնդիրն է պարզել, թե յուրաքանչյուր քաղաքի համար որն է ամենամոտ հիվանդանոցի հեռավորությունը՝ հաշվի առնելով ճանապարհների ցանցը։

Մուտք

Մուտքի առաջին տողում տրված են երկու ամբողջ թվեր n և m ($1 ≤ n ≤ 10^5, 1 ≤ m ≤ 10^5$), որոնք ցույց են տալիս քաղաքների քանակը և ճանապարհների քանակը, համապատասխանաբար։

Մուտքի երկրորդ տողում տրված են n տարածքով բաժանված թվեր h_1, h_2, ..., h_n (0 կամ 1), որտեղ h_i-ն ցույց է տալիս, թե արդյոք քաղաք i-ում հիվանդանոց կա (եթե h_i = 1, ուրեմն քաղաք i-ում բուժհաստատություն կա)։

Հաջորդ m տողերից յուրաքանչյուրում տրված են երեք ամբողջ թվեր u_i, v_i և w_i ($1 ≤ ui, vi ≤ n$, $1 ≤ wi ≤ 10^9$), որոնք ներկայացնում են երկկողմանի ճանապարհ քաղաքների ui և vi միջև, որի երկարությունը wi է։

Ենթադրվում է, որ բոլոր քաղաքները վերջնականորեն կապակցված են, և առնվազն մեկ քաղաք հաստատ ունի հիվանդանոց։

Ելք

Պետք է տպել մեկ տող, содержащ n տարածքով բաժանված ամբողջ թվեր. i-րդ թիվը պետք է ցույց տա, թե ինչքան է հեռավորությունը ամենամոտ հիվանդանոցից մինչև քաղաք i:

Օրինակներ

Մուտք

Ելք

5 4 0 1 0 1 0 1 2 5 1 3 2 4 5 10 4 3 6

5 0 6 0 10

Constraints

Time limit: 4 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue