#aBC305EX. [ABC305Ex] Shojin

[ABC305Ex] Shojin

AT_abc305_h [ABC305Ex] Shojin

题目描述

你决定进行“精进”。“精进”指的是大量解答 AtCoder 的题目。
精进需要花费若干天。一天的精进按照以下步骤进行:

  • 假设这一天你要解 MM 道题。每道题都带有一个非负整数对 (A,B)(A, B),称为难度
  • 首先,可以任意排列这 MM 道题的顺序。然后,按照排列后的顺序依次解题。
  • 你有一个疲劳度的数值。一天开始时疲劳度为 00,每当解答一题难度为 (A,B)(A, B) 的题目时,疲劳度从 xx 变为 Ax+BAx + B
  • 解完这 MM 道题时的疲劳度,称为这一天消耗的体力

NN 道 AtCoder 的题目,依次编号为第 11 题、第 22 题、\dots、第 NN 题。第 ii 题的难度为 (Ai,Bi)(A_i, B_i)
你打算通过精进将这 NN 道题全部解完。
精进的具体流程如下。以下将第 LL 题到第 RR 题的题目序列记作 [L,R][L, R]

  • 可以自由选择一个 1KN1 \leq K \leq N 的整数,表示精进的天数为 KK 天。
  • NN 道题的序列划分为 KK 个非空连续子序列,记第 ii 个子序列为 SiS_i
    形式化地说,选择一个严格单调递增的非负整数序列 x0,x1,,xKx_0, x_1, \dots, x_K,满足 x0=1x_0 = 1xK=N+1x_K = N+1,对于 1iK1 \leq i \leq K,有 Si=[xi1,xi1]S_i = [x_{i-1}, x_i - 1]
  • 然后,对于 i=1,2,,Ki=1,2,\dots,K,第 ii 天精进时解答 SiS_i 中的所有题目。

你希望通过精进,使得精进过程中消耗的体力总和不超过 XX
在满足上述条件的情况下,精进天数 KK 能取到的最小值记为 DD。(这里保证 i=1NBiX\sum_{i=1}^N B_i \leq X,在此约束下,必然存在满足条件的 DD。) 此外,在 K=DK = D 的精进方案中,精进过程中消耗的体力总和能取得的最小值记为 MM

请你求出 DDMM

输入格式

输入按以下格式从标准输入给出。

NN XX A1A_1 B1B_1 A2A_2 B2B_2 \vdots ANA_N BNB_N

输出格式

请输出 DDMM,以空格分隔。

输入输出样例 #1

输入 #1

3 100
2 2
3 4
5 7

输出 #1

1 52

输入输出样例 #2

输入 #2

3 30
2 2
3 4
5 7

输出 #2

2 17

输入输出样例 #3

输入 #3

5 50000000
100000 10000000
100000 10000000
100000 10000000
100000 10000000
100000 10000000

输出 #3

5 50000000

输入输出样例 #4

输入 #4

10 100000000
5 88
66 4
52 1
3 1
12 1
53 25
11 12
12 2
1 20
47 10

输出 #4

2 73647

输入输出样例 #5

输入 #5

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

输出 #5

4 54468135

说明/提示

限制条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1X1081 \leq X \leq 10^8
  • 1Ai1051 \leq A_i \leq 10^5
  • 1Bi1 \leq B_i
  • i=1NBiX\sum_{i=1}^N B_i \leq X
  • 输入的所有值均为整数

样例解释 1

在本测试用例中,可以在满足 XX 的条件下一天内解完所有题。按照以下步骤精进,精进过程中消耗的体力总和为 5252,且这是最小值。

  • K=1K=1,第 11 天解 [1,3][1, 3]
  • 11 天精进的具体过程如下:
    • 将题目按(第 33 题、第 22 题、第 11 题)的顺序排列。
    • 初始疲劳度为 00
    • 解第 33 题,疲劳度变为 5×0+7=75 \times 0 + 7 = 7
    • 解第 22 题,疲劳度变为 3×7+4=253 \times 7 + 4 = 25
    • 解第 11 题,疲劳度变为 2×25+2=522 \times 25 + 2 = 52
    • 解完所有题时的疲劳度为 5252,即这一天消耗的体力为 5252
  • 精进过程中消耗的体力总和也为 5252

样例解释 2

本测试用例是第一个样例中 XX100100 改为 3030 的情况。因此,无法在满足 XX 的条件下一天内解完所有题。按照以下步骤精进 22 天,可以达到 M=17M=17

  • K=2K=2,第 11 天解 [1,2][1, 2],第 22 天解 [3,3][3, 3]
  • 11 天精进的具体过程如下:
    • 将题目按(第 11 题、第 22 题)的顺序排列。
    • 初始疲劳度为 00
    • 解第 11 题,疲劳度变为 2×0+2=22 \times 0 + 2 = 2
    • 解第 22 题,疲劳度变为 3×2+4=103 \times 2 + 4 = 10
    • 解完所有题时的疲劳度为 1010,即第 11 天消耗的体力为 1010
  • 22 天精进的具体过程如下:
    • 将题目按(第 33 题)的顺序排列。
    • 初始疲劳度为 00
    • 解第 33 题,疲劳度变为 5×0+7=75 \times 0 + 7 = 7
    • 解完所有题时的疲劳度为 77,即第 22 天消耗的体力为 77
  • 精进过程中消耗的体力总和为 10+7=1710 + 7 = 17

样例解释 3

每天只解一道题的精进方式就是答案。

由 ChatGPT 4.1 翻译