Payment Without Change
题意:
q组实例,每组输入a,b,n,s;代表有 a 个 n 元的硬币,和 b 个 1 元硬币,问能不能凑够 s 元?
思路:先用足够数量的高价值硬币,剩下的用价值1的硬币判断并得出结果。
从两方面下手:
one、实际需要的 n 面值的硬币的个数 >= a(现在有的个数),
two、实际需要的 n 面值的硬币的个数 < a(现在由的个数)。
在这两种情况下,看 b 是否满足凑够 s。
#include<iostream>
using namespace std;
int main()
{
long long q,a,b,n,s;
cin>>q;
while(q--)
{
cin>>a>>b>>n>>s;
int k=0;
k=s/n;
if((k>=a&&b>=s-a*n)||(k<a&&b>=s-k*n))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}