atcoder#ABC245G. [ABC245G] Foreign Friends
[ABC245G] Foreign Friends
配点 : 点
問題文
人の人と 個の国があり、それぞれ 人 , 人 , , 人 および国 , 国 , , 国 と番号が付いています。 それぞれの人はちょうど つの国に属しており、人 は国 に属しています。 また、 人の人気者がおり、具体的には人 , 人 , , 人 が人気者です。 最初、 人のうちどの 人も友達ではありません。
神様である高橋君は、 個の 人組のペアについて、コストを支払うことで互いに友達にすることができます。 具体的には について、コスト を支払うことで人 と人 を互いに友達にすることができます。
ここで、各 について、次の問題を解いてください。
高橋君は、人 を、人 の属する国とは異なる国に属する人気者と間接的に友達にすることは可能か? 可能ならば、それを達成するのに必要なコストの総和の最小値を求めよ。 ただし、人 と人 が間接的に友達であるとは、ある非負整数 と人の列 が存在し, , かつ について、人 と 人 が互いに友達であることをさす。
制約
- $1 \leq B_1
- $1\leq U_i
- ならば
- 入力は全て整数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
を、人 を異なる国に属する人気者と間接的に友達にすることが不可能ならば 、 そうでないならば、達成するのに必要な最小コストの値として定義する。 を空白区切りで一行に出力せよ。
4 4 2 2
1 1 2 2
2 3
1 2 15
2 3 30
3 4 40
1 4 10
45 30 30 25
人 , 人 , 人 , 人 はそれぞれ国 , 国 , 国 , 国 に属しており、人気者は人 , 人 の 名です。このとき、
- 人 と異なる国に属する人気者は人 のみです。人 と 人 を間接的に友達にするには、それぞれコスト を払って人 と人 , 人 と人 を友達にした時がかかるコストが最小で、このとき となります。
- 人 と異なる国に属する人気者は人 のみです。コスト を払って人 と人 を友達にした時が最小となります。
- 人 と異なる国に属する人気者は人 のみです。コスト を払って人 と人 を友達にした時が最小となります。
- 人 と異なる国に属する人気者は人 のみです。人 と 人 を間接的に友達にするには、それぞれコスト を払って人 と人 , 人 と人 を友達にした時がかかるコストが最小で、このとき となります。
3 1 3 1
1 2 3
1
1 2 1000000000
-1 1000000000 -1
人 にとって自身は間接的な友達といえますが、異なる国に属していないため、 「異なる国に属する人気者」の条件をみたす相手はいないことに注意してください。