#abc303f. [abc303_f]Damage over Time

[abc303_f]Damage over Time

题目描述

一个生命值为 HH 的怪物出现在你面前,进入了一场回合制战斗。

在每个回合 1,2,ldots1,2,\\ldots 中,你可以施放 NN 个法术中的一个,记为第 1,2,ldots,N1,2,\\ldots,N 个法术。

如果你在第 jj 个回合施放第 ii 个法术,那么怪物的生命值会在第 j,j+1,ldots,j+ti1j,j+1,\\ldots,j+t_i-1 个回合中减少 did_i

请找出使得怪物的生命值最早变为 00 或更低的回合。

约束条件

  • 1leqNleq3times1051 \\leq N \\leq 3 \\times 10^5
  • 1leqHleq10181 \\leq H \\leq 10^{18}
  • 1leqti,dileq1091 \\leq t_i,d_i \\leq 10^9
  • 输入中的所有值均为整数。

输入

输入以以下格式从标准输入给出:

NN HH t1t_1 d1d_1 vdots\\vdots tNt_N dNd_N

输出

输出答案。


示例输入 1

2 20
2 2
5 1

示例输出 1

6

以下过程使得怪物的生命值在回合 66 变为 00 或更低,这是最早的情况。

  • 在回合 11 施放法术 11,怪物的生命值减少 22 变为 1818
  • 在回合 22 施放法术 22,怪物的生命值减少 2+1=32+1=3 变为 1515
  • 在回合 33 施放法术 11,怪物的生命值减少 1+2=31+2=3 变为 1212
  • 在回合 44 施放法术 22,怪物的生命值减少 1+2+1=41+2+1=4 变为 88
  • 在回合 55 施放法术 11,怪物的生命值减少 1+1+2=41+1+2=4 变为 44
  • 在回合 66 施放法术 22,怪物的生命值减少 1+1+2+1=51+1+2+1=5 变为 00

示例输入 2

10 200
1 21
1 1
1 1
8 4
30 1
3 1
10 2
8 1
9 1
4 4

示例输出 2

9