시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
5 초 | 256 MB | 27 | 20 | 20 | 76.923% |
IOI 国では交通網の一斉整備を行うことになった.IOI 国は xy 座標平面として表され,その上に N 個の 町がある.i 番目 (1 ≤ i ≤ N) の町は点 (Xi, Yi) として表される.交通網の整備は次の手順で行われる.
このとき,次の条件が満たされていなければならない.
この事業の発注先として建設会社 C 社が候補に挙がっている.k 番目 (1 ≤ k ≤ C) の建設会社は国際空港 を 1 つ建設するのにコスト Bk がかかり,最大で Hk 個までの国際空港を建設できる (道路の建設にかかる コストは建設会社によらず,また道路の本数や長さに制限はない).それぞれの建設会社に対して,その建 設会社が上の条件を満たすように交通網の整備を行うときにかかるコストの合計値の最小値を求めたい.
建設できる国際空港の個数が小さいために,条件を満たすような交通網の整備を行えない建設会社があ るかもしれない.その場合はコストの合計値ではなく,条件を満たせないということを報告してほしい.
IOI 国の町の数を表す整数 N と町の座標,道路を敷設できない領域の数を表す整数 M とそれぞれの領域 を表す座標,発注先候補の建設会社の数を表す整数 C とそれぞれの建設会社の情報が与えられたとき,そ れぞれの建設会社に対して問題文中で述べられた条件を満たすように交通網の整備を行うときにかかるコ ストの合計値の最小値を求めるプログラムを作成せよ.
標準入力から以下の入力を読み込め.
標準出力に C 行出力せよ.k 行目 (1 ≤ k ≤ C) には,k 番目の発注先候補の建設会社がこの事業を行うと したときにかかるコストの合計値の最小値を表す 1 つの整数を出力せよ.ただし,k 番目の発注先候補の 建設会社が条件を満たすように事業を行えない場合はかわりに整数 −1 を出力せよ.
追加の制限はない.
4 2 3 1 1 10 1 1 10 10 10 4 0 8 9 1 4 9 8 7 4 10 3 1 1
28 38 -1
この入力例を図示すると以下のようになる.太い線による長方形が道路を敷設できない領域を示している.
町 2 と町 4 および町 3 と 町 4 を結ぶ道路を敷設することはできるが,道路を敷設できない領域と交わっ てしまうために町 1 と 町 2 の間には道路を敷設することができない.同様に町 1 と 町 3 の間にも道路を 敷設することができない (道路は長方形の周とも共通部分を持ってはいけないことに注意せよ).
1 つめの建設会社は最大 4 つの国際空港を 1 つあたりコスト 7 で建設できる.この場合,道路をひとつ も敷設せずにすべての町に国際空港を建設するのが最善であり,そのときのコストの合計値は 7 × 4 = 28 となる.
2 つめの建設会社は最大 3 つの国際空港を 1 つあたりコスト 10 で建設できる.この場合,たとえば町 2 と町 4 および町 3 と 町 4 を結ぶ長さ 9 の道路を敷設し,町 1 と 町 2 に国際空港を建設するのが最善であ り,そのときのコストの合計値は 10 × 2 + 9 + 9 = 38 となる.
3 つめの建設会社は最大 1 つの国際空港を 1 つあたりコスト 1 で建設することができるが,町 1 が他の どの町との間にも道路を敷設できないため,問題文中の条件を満たすように事業を行うには少なくとも 2 つの国際空港を建設する必要があり,この会社は事業を行えないことがわかるので −1 を出力する.