A - 小沙的炉石
题目描述
输入描述
输出描述
样例输入
2 1
3
1
4
6
样例输出
YES
YES
NO
样例说明
思路
按道理来说, 所有斩杀线以下的都应该可以, 但是出现了两个特例绝对不是打表出来的
- m == 1, 此时无法凑出3
- m == 2, 此时无法凑出8
最大斩杀线, 先把所有的法术回复牌用完, 然后尽可能用出
代码
#include <iostream>
using namespace std;
typedef long long LL;
LL n, m;
int main() {
cin >> n >> m;
LL t = min(n, m + 1);
LL maxv = (m + 1) * t + t * (t - 1) / 2;
int T;
cin >> T;
while (T -- ) {
LL x;
cin >> x;
if (m == 1 && x == 3) puts("NO");
else if (m == 2 && x == 8) puts("NO");
else if (x <= maxv) puts("YES");
else puts("NO");
}
}