AT_abc305_h.[ABC305Ex] Shojin

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

你决定进行“精进”。“精进”指的是大量解答 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]。

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

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

请你求出 DD 和 MM。

输入格式

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

NN XX A1A_1 B1B_1 A2A_2 B2B_2 ⋮\vdots ANA_N BNB_N

输出格式

请输出 DD 和 MM,以空格分隔。

输入输出样例

  • 输入#1

    3 100
    2 2
    3 4
    5 7

    输出#1

    1 52
  • 输入#2

    3 30
    2 2
    3 4
    5 7

    输出#2

    2 17
  • 输入#3

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

    输出#3

    5 50000000
  • 输入#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

    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

说明/提示

限制条件

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • 1≤X≤1081 \leq X \leq 10^8
  • 1≤Ai≤1051 \leq A_i \leq 10^5
  • 1≤Bi1 \leq B_i
  • ∑i=1NBi≤X\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

本测试用例是第一个样例中 XX 从 100100 改为 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 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页