#P1048. 猜数能力判断

猜数能力判断

题目描述

某个猜数游戏的规则是:数字范围为 1∼N1\sim N,玩家每次猜一个数,裁判告诉"大了"或"小了"或"猜对了"。玩家使用二分算法来猜数。

现在给你 NN 和 KK,请你判断:使用二分算法,是否能在 KK 次以内(含 KK 次)保证找到范围内的任意数字?

也就是说,如果范围内所有数字中,最难找的那个数字需要 TT 次猜对,你需要判断 T≤KT \le K 是否成立。

输入格式

一行两个整数 NN 和 KK,1≤N≤1091 \le N \le 10^9,1≤K≤601 \le K \le 60。

输出格式

若能保证在 KK 次以内找到,输出 YES;否则输出 NO。

样例

100 7
YES
100 5
NO
1000000000 30
YES

说明/提示

对于全部测试数据,1≤N≤1091 \le N \le 10^9,1≤K≤601 \le K \le 60。

提示:1∼N1\sim N 范围内最多需要 ⌈log⁡2N⌉\lceil \log_2 N \rceil 次即可找到任意数字。也可以模拟:对最大的范围跑一遍二分即可知道最坏需要几次。