atcoder#ABC305H. [ABC305Ex] Shojin
[ABC305Ex] Shojin
题目描述
あなたは 精進 をすることにしました。精進とは、AtCoder の問題を大量に解くことをいいます。
精進は何日か掛けて行われます。1 日における精進は次の手順で行われます。
- その日に 問の問題を解くとする。各問題には非負整数対 が 難易度 と呼ばれる値としてついている。
- まず、 問を自由な順番に並べ替える。そして、並び替えた後の順に問題を 1 問ずつ解いていく。
- あなたは 疲労度 という値を持っている。1 日のはじめの疲労度は であり、難易度が である問題を解くごとに疲労度が から に変化する。
- 問すべて解いた時点での疲労度を、その日の 消費した体力 と呼ぶ。
問の AtCoder の問題が並んでいて、順に問題 , 問題 , , 問題 と呼びます。問題 の難易度は です。
あなたは精進を行うことで 問の問題を全て解くことにしました。
精進は次の手順で行います。以下では問題 , 問題 , , 問題 からなる問題の列を と呼びます。
- 以上 以下の整数 を自由に選ぶ。精進する日数を 日とする。
- 問の問題の列を、 個の非空な連続部分列に分割して、前から 番目の列を とする。
形式的に説明すると、狭義単調増加な非負整数列 のうち かつ を満たすものを 1 つ選び、 について とする。 - そして、 について、 日目の精進では に含まれる問題全てを解く。
あなたは、精進全体での消費した体力の総和が 以下になるように精進をすることにしました。
このような精進の日数 として取り得る最小の値を とします。(ここで について、 が保証されています。この制約下において条件を満たす は必ず存在します。)
また、 である精進において、精進全体での消費した体力の総和として取り得る最小の値を とします。
および を求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
および を空白区切りで出力せよ。
题目大意
题目描述
你决定练习,练习意味着在 AtCoder 中解决大量问题。
练习需要几天时间。每天的练习分为以下步骤。
设 是当天要解决的问题数。每个问题都有一个称为难度的值,它是一对非负整数(,)。
首先,以任何顺序重新排列 个问题。然后,按该顺序逐个解决问题。
您有一个称为疲劳的值。疲劳在开始一天时为 0,当解决难度为(,)的问题时,它从 变为 。
解决所有 个问题的疲劳在解决当天的能量消耗中。
在 AtCoder 中有一个 个问题的序列,按顺序称为问题 1、问题 2,…,问题 。问题i的难度为(,)。
您决定通过练习解决所有 个问题。
练习分为以下步骤。下面,让 表示以下问题序列:问题 ,问题 ,,问题 。
自由选择 1 到 (含)之间的整数 。练习将持续 天。
将 个问题的顺序连续子序列分成 个非空连续子序列,并让 为第 个序列。
形式上,选择一个严格递增的非负整数序列 ,使得 且 ,并让 对于 中的所有问题。
然后,对于 ,解决第 天练习中的所有问题 。
你决定练习,使得整个练习中消耗的总能量最多为 。
让 是 的最小可能值,即天数,以进行这样的练习。(在此约束下, 始终存在)
还让 是在 的情况下消耗的最小总能量。
找到 和 。
输入
输入格式为:
⋮
输出
输出 和 ,用空格分隔。
3 100
2 2
3 4
5 7
1 52
3 30
2 2
3 4
5 7
2 17
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
提示
制約
- 入力される値は全て整数
Sample Explanation 1
このテストケースでは に関する条件を満たしながら 日で全ての問題を解くことが可能です。 以下の手順で精進を行うことで、精進全体での消費した体力は になり、これが最小です。 - として、 日目に を解くとする。 - 日目の精進は以下の手順で行う。 - 問題を (問題 , 問題 , 問題 ) の順に並べる。 - はじめ、疲労度は である。 - 問題 を解く。疲労度は に変化する。 - 問題 を解く。疲労度は に変化する。 - 問題 を解く。疲労度は に変化する。 - 全ての問題を解いた時点での疲労度は である。よってこの日の消費した体力は となる。 - 精進全体での消費した体力の総和もまた である。
Sample Explanation 2
このテストケースは、1 番目のテストケースの を から に変えたものです。よって、 に関する条件を満たしながら 日で全ての問題を解くことは不可能です。 以下の手順に従って精進を 日間行うことで を達成できます。 - として、 日目に , 日目に を解くとする。 - 日目の精進は以下の手順で行う。 - 問題を (問題 , 問題 ) の順に並べる。 - はじめ、疲労度は である。 - 問題 を解く。疲労度は に変化する。 - 問題 を解く。疲労度は に変化する。 - 全ての問題を解いた時点での疲労度は である。よって 日目の消費した体力は となる。 - 日目の精進は以下の手順で行う。 - 問題を (問題 ) の順に並べる。 - はじめ、疲労度は である。 - 問題 を解く。疲労度は に変化する。 - 全ての問題を解いた時点での疲労度は である。よって 日目の消費した体力は となる。 - 精進全体での消費した体力の総和は である。
Sample Explanation 3
日 問ずつ解いていく精進が答えとなります。