atcoder#ABC305H. [ABC305Ex] Shojin
[ABC305Ex] Shojin
配点 : 点
問題文
あなたは 精進 をすることにしました。精進とは、AtCoder の問題を大量に解くことをいいます。 精進は何日か掛けて行われます。1 日における精進は次の手順で行われます。
- その日に 問の問題を解くとする。各問題には非負整数対 が 難易度 と呼ばれる値としてついている。
- まず、 問を自由な順番に並べ替える。そして、並び替えた後の順に問題を 1 問ずつ解いていく。
- あなたは 疲労度 という値を持っている。1 日のはじめの疲労度は であり、難易度が である問題を解くごとに疲労度が から に変化する。
- 問すべて解いた時点での疲労度を、その日の 消費した体力 と呼ぶ。
問の AtCoder の問題が並んでいて、順に問題 , 問題 , , 問題 と呼びます。問題 の難易度は です。 あなたは精進を行うことで 問の問題を全て解くことにしました。 精進は次の手順で行います。以下では問題 , 問題 , , 問題 からなる問題の列を と呼びます。
- 以上 以下の整数 を自由に選ぶ。精進する日数を 日とする。
- 問の問題の列を、 個の非空な連続部分列に分割して、前から 番目の列を とする。
形式的に説明すると、狭義単調増加な非負整数列 のうち かつ を満たすものを 1 つ選び、 について とする。 - そして、 について、 日目の精進では に含まれる問題全てを解く。
あなたは、精進全体での消費した体力の総和が 以下になるように精進をすることにしました。 このような精進の日数 として取り得る最小の値を とします。(ここで について、 が保証されています。この制約下において条件を満たす は必ず存在します。) また、 である精進において、精進全体での消費した体力の総和として取り得る最小の値を とします。
および を求めてください。
制約
- 入力される値は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
および を空白区切りで出力せよ。
3 100
2 2
3 4
5 7
1 52
このテストケースでは に関する条件を満たしながら 日で全ての問題を解くことが可能です。 以下の手順で精進を行うことで、精進全体での消費した体力は になり、これが最小です。
- として、 日目に を解くとする。
- 日目の精進は以下の手順で行う。- 問題を (問題 , 問題 , 問題 ) の順に並べる。
- はじめ、疲労度は である。
- 問題 を解く。疲労度は に変化する。
- 問題 を解く。疲労度は に変化する。
- 問題 を解く。疲労度は に変化する。
- 全ての問題を解いた時点での疲労度は である。よってこの日の消費した体力は となる。
- 問題を (問題 , 問題 , 問題 ) の順に並べる。
- はじめ、疲労度は である。
- 問題 を解く。疲労度は に変化する。
- 問題 を解く。疲労度は に変化する。
- 問題 を解く。疲労度は に変化する。
- 全ての問題を解いた時点での疲労度は である。よってこの日の消費した体力は となる。
- 精進全体での消費した体力の総和もまた である。
3 30
2 2
3 4
5 7
2 17
このテストケースは、1 番目のテストケースの を から に変えたものです。よって、 に関する条件を満たしながら 日で全ての問題を解くことは不可能です。
以下の手順に従って精進を 日間行うことで を達成できます。
- として、 日目に , 日目に を解くとする。
- 日目の精進は以下の手順で行う。- 問題を (問題 , 問題 ) の順に並べる。
- はじめ、疲労度は である。
- 問題 を解く。疲労度は に変化する。
- 問題 を解く。疲労度は に変化する。
- 全ての問題を解いた時点での疲労度は である。よって 日目の消費した体力は となる。
- 問題を (問題 , 問題 ) の順に並べる。
- はじめ、疲労度は である。
- 問題 を解く。疲労度は に変化する。
- 問題 を解く。疲労度は に変化する。
- 全ての問題を解いた時点での疲労度は である。よって 日目の消費した体力は となる。
- 日目の精進は以下の手順で行う。- 問題を (問題 ) の順に並べる。
- はじめ、疲労度は である。
- 問題 を解く。疲労度は に変化する。
- 全ての問題を解いた時点での疲労度は である。よって 日目の消費した体力は となる。
- 問題を (問題 ) の順に並べる。
- はじめ、疲労度は である。
- 問題 を解く。疲労度は に変化する。
- 全ての問題を解いた時点での疲労度は である。よって 日目の消費した体力は となる。
- 精進全体での消費した体力の総和は である。
5 50000000
100000 10000000
100000 10000000
100000 10000000
100000 10000000
100000 10000000
5 50000000
日 問ずつ解いていく精進が答えとなります。
10 100000000
5 88
66 4
52 1
3 1
12 1
53 25
11 12
12 2
1 20
47 10
2 73647
15 100000000
2387 3178
2369 5772
1 29
36 3
52 2981
196 1
36 704
3 3
1501 5185
23 628
3623 810
80 101
6579 15
681 7
183 125
4 54468135