题目描述
老师有 N 块饼干,要分给 k 名小朋友。
每名小朋友至少拿到一块饼干,老师想让每名小朋友拿到的饼干数量都不一样多,请问老师能否实现这个目标。
输入格式
本题单个测试点内有多组测试数据。
输入共 T+1 行。
输入第一行为一个整数 T,代表测试数据组数。
接下来 T 行,每行两个整数,分别为 N,k。
输出格式
输出共 T 行,依次对应 T 组测试数据。如果该组测试数据
- 可以实现,输出
Yes
。 - 无法实现,输出
No
。
输入输出样例
输入 #1复制
1 1 1
输出 #1复制
Yes
输入 #2复制
1 5 3
输出 #2复制
No
说明/提示
数据规模与约定
- 对于 50%50% 的测试数据1≤k≤1000,1≤N≤106。
- 对于 100%100% 的测试数据,1≤k,N≤109。
思路:
n块饼干分给k个人,想要每个人不同则为1,2,3,k-1,k这样排序,则总需的饼干要k*(k+1)/2,只要n大于等于这个需要的饼干量即为可以
代码:
#include <iostream>
using namespace std;
int main()
{
int t;cin>>t;
while(t--){
long long k,n;cin>>n>>k;
if(n>=(k+1)*k/2)cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}