atcoder#ARC066D. [ARC066F] Contest with Drinks Hard
[ARC066F] Contest with Drinks Hard
配点 : 点
問題文
joisinoお姉ちゃんは、あるプログラミングコンテストの決勝を控えています。 このコンテストでは、 問の問題が用意されており、それらには の番号がついています。 joisinoお姉ちゃんは、問題 を解くのにかかる時間が 秒であることを知っています。
このコンテストでは、コンテスタントはまず最初に、これから解く問題をいくつか選びます。 次にそれらの問題を解き、すべて解き終わると、スコアの計算が行われます。 このコンテストでのスコアの計算方法は特殊であり、具体的には、以下の式で計算されます。
- スコア 「整数の組 であって、 を満たす全ての について、問題 が解かれているようなもの」の個数 問題を解くのに要した時間の合計
なお、問題を つも解かないことも許され、その際のスコアは になります。
また、このコンテストでは、 種類のドリンクが提供されており、 の番号がついています。 そして、ドリンク を飲むと、脳が刺激され、問題 を解くのにかかる時間が 秒になります。 なお、 が、もともと問題 を解くのに要する時間より長いこともありえます。 他の問題を解くのにかかる時間に変化はありません。
コンテスタントは、コンテスト開始前にいずれかのドリンクを 本だけ飲むことができます。 そこでjoisinoお姉ちゃんは、それぞれのドリンクについて、それを飲んだ際に、コンテストで取ることのできる最大スコアを知りたいと思いました。 あなたの仕事は、joisinoお姉ちゃんの代わりにこれを求めるプログラムを作成することです。
制約
- 入力は全て整数である
- の総和
入力
入力は以下の形式で標準入力から与えられる。
出力
それぞれのドリンクについて、それを飲んだ際の最大スコアを求め、順番に 行ずつ出力せよ。
5
1 1 4 1 1
2
3 2
3 10
9
2
番目のドリンクを飲んだ場合、全ての問題を解くことで最大スコアが得られます。
番目のドリンクを飲んだ場合、 番目の問題を解くことで最大スコアが得られます。
12
1 2 1 3 4 1 2 1 12 3 12 12
10
9 3
11 1
5 35
6 15
12 1
1 9
4 3
10 2
5 1
7 6
34
35
5
11
35
17
25
26
28
21