#B4201. [常州市程序设计小能手 2020] 勇士斗恶龙

    ID: 8406 远端评测题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>模拟贪心2020江苏排序小学科创活动

[常州市程序设计小能手 2020] 勇士斗恶龙

题目背景

搬运自 http://czoj.com.cn/p/449。数据为民间数据。

题目描述

X\text X 穿越到了异世界,国王命令他招揽勇士,杀死恶龙,救回公主。
异世界是高度数据化的。恶龙有一个攻击力 ATK\text{ATK} ,一个生命值 HP\text{HP} 。类似的,每个勇士也有一个攻击力 AiA_i ,一个生命值 HiH_i
战斗是回合制的,并且每次只能由一个勇士和恶龙单挑。战斗中,每个回合恶龙的生命值会减去这个勇士的攻击力,这个勇士的生命值会减去恶龙的攻击力。如果回合结束的时候恶龙的生命值小于等于 00,那么恶龙就被杀死了;如果这个勇士的生命值小于等于 00,那么这个勇士就被击败了,需要换上另一个勇士继续战斗。当然,如果恶龙还没有被杀死,勇士却全部被击败了,那么这场战役就彻底失败了。
不过聪明的小 X\text X 安排了一个特殊的战术:在一名勇士被击败后立刻让另一名勇士发起攻击,这样恶龙在勇士们的车轮战术下疲于招架,受到第二个勇士的伤害变为两倍,受到第三个勇士的伤害变为三倍……以此类推。
现在一共有 nn 名勇士报名,小 X\text X 想问问你,如果合理安排勇士出战的顺序,最少要招揽多少名勇士才能杀死恶龙?

输入格式

第一行为一个正整数 nn,表示一共有 nn 名勇士报名。
第二行两个正整数 ATK\text{ATK}HP\text{HP} 表示恶龙的攻击力和生命值。
接下来共有 nn 行,每行两个正整数 AiA_iHiH_i 表示这名勇士的攻击力和生命值。

输出格式

输出一个整数,表示最少要招揽多少名勇士才能杀死恶龙。 如果不可能杀死恶龙,输出 Fail

2
1 9
2 2
1 1
2

提示

样例说明

  • 两名勇士都招揽。先派出 22 号勇士;
  • 第一回合,恶龙生命值变为 88,勇士生命值变为 00。勇士被击败;
  • 紧接着派出 11 号勇士;
  • 第二回合,恶龙生命值变为 44 (两倍伤害),勇士生命值变为 11
  • 第三回合,恶龙生命值变为 00 ,勇士生命值变为 00 。恶龙被杀死;
  • 勇士虽然也被击败了,但恶龙已经死了,所以还是胜利了!

数据范围

本题共有 1010 个测试点。
对于所有数据,$1\le n\le 10^5,1\le\text{ATK}, A_i,H_i\le10^6,1\le \text{HP}\le 10^{18}$。
|测试点编号|nn|ATK,Ai,Hi\text{ATK}, A_i,H_i|HP\text{HP}| |:-:|:-:|:-:|:-:| |141\sim 4|5\le 5|10\le 10|100\le 100| |575\sim 7|103\le 10^3|103\le 10^3|109\le 10^9| |8108\sim 10|106\le 10^6|106\le 10^6|1018\le 10^{18}|