CSES - Datatähti 2023 alku - Sadonkorjuu
  • Language:
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Annettuna on nn kaupunkia, jotka ovat kaikki yhteydessä toisiinsa n1n-1 tien välityksellä (eli kaupungit ja tiet muodostavat verkon, joka on puu). Jokaisessa kaupungissa on joko auringonkukkapelto tai satama.

Sato on valmiina korjattavaksi, ja tehtäväsi on löytää jokaiselta pellolta lyhin reitti satamaan. Mikä on näiden reittien kokonaispituus?

Syöte

Ensimmäisellä rivillä on kokonaisluku nn: kaupunkien määrä. Kaupungit on numeroitu 1,2,,n1,2,\dots,n.

Toisella rivillä on nn lukua t1,t2,,tnt_1, t_2, \dots, t_n. Jos luku tit_i on 00, kaupungissa ii on satama, ja jos luku on 11, kaupungissa ii on pelto. On varmaa, että vähintään yhdessä kaupungissa on satama.

Tämän jälkeen on n1n-1 riviä, joista jokaisella on kolme lukua aa, bb ja cc: kaupunkien aa ja bb välillä on tie, jonka pituus on cc.

Tuloste

Tulosta yksi kokonaisluku: lyhimpien reittien kokonaispituus.

Esimerkki

Syöte:

6
1 1 0 0 1 1
1 2 20
2 3 30
2 5 50
3 6 60
1 4 10

Tuloste:

180

Selitys: Seuraava kuva vastaa esimerkkisyötettä:

Osatehtävä 1 (33 pistettä)

  • 1n10001 \le n \le 1000
  • 1c10001 \le c \le 1000

Osatehtävä 2 (67 pistettä)

  • 1n21051 \le n \le 2\cdot10^5
  • 1c10001 \le c \le 1000