チョンリンはゲームを開発したいと思っていたが、これまで何度もプロジェクトが中断した経験と先行きへの不安から、新しいプロジェクトを始められずにいた。考えた末、シオンを雇って作業を任せることにした。
現在、ゲームのプロジェクトには 個の作業がある。作業 の進捗は であり、シオンがその作業を 日行うと、進捗が 増加する。
シオンは毎日、相異なる作業をちょうど 個選んで行う。選んだ各作業 の進捗は 増加し、選ばなかった作業の進捗は変化しない。進捗に上限はない。
チョンリンは、すべての作業の進捗が等しくなるまで、シオンに毎日働いてもらうつもりである。
すべての作業の進捗を等しくするために必要な最小の日数を求めよ。最初からすべての進捗が等しい場合、答えは である。不可能な場合、答えは -1 である。
入力は以下の形式で与えられる。
すべての作業の進捗を等しくするために必要な最小の日数を出力せよ。不可能な場合は -1 を出力せよ。
日目に作業 と を選ぶと、進捗はそれぞれ と 増加し、すべての進捗が になる。
行目に作業の個数 と毎日選ぶ作業の個数 が与えられる。 行目に各作業の初期進捗 が、 行目に各作業の 日あたりの増加量 が与えられる。
__int128 などの ビット整数型が必要になることがある。| 22 |
, , (). |
| 3 | 65 | 追加の制約はない。 |
作業 の進捗は常に偶数であり、作業 の進捗は常に奇数である。したがって、両者を等しくすることはできない。