描述
candy非常喜欢吃糖果,于是他就攒下平时妈妈发的零花钱,准备放学后去偷偷买糖。
现在candy知道自己的存钱罐里一共有n张纸币,每张纸币的面值为Vi。这几天放学后,他想要用这些钱买m种糖果,并且希望能用一种面值的纸币恰好买到所有的糖果。
输入
第一行包含两个整数,分别为纸币张数n和糖果种数m。
第二行有n个整数Vi,代表每张纸币的面值(单位:元)。
接下来m行,每行有两个实数Ai和Bi,代表单价为Ai(单位:元/千克)的糖果要买Bi千克。
纸币可以是任何整数面值,所有数据均不超过500。
输出
如果可以用一种面值的纸币恰好买到所有的糖果则输出"YES",否则输出"NO"。
样例输入
5 2
2 5 5 7 2
3 2
1 4
样例输出
YES 坑爹的地方在于输入会带小数,且题目意思是说必须只能一种面额的金钱买完所有的糖果#include<iostream> #include<stdio.h> #include<algorithm> #include<cstring> int a[10005]; using namespace std; int main() { float n,m,max=0,sum=0,f=0; cin>>n>>m; for(int i=1;i<=n;i++) { int num; cin>>num; if(num>max)max=num; a[num]+=num; //第num个面值的总价值加num } for(int j=1;j<=m;j++) { double x,y; cin>>x>>y; sum+= x*y; //计算所有糖果的价格 } for(int i=1;i<=501;i++) { if(a[i]-sum==0) //如果第i个面额刚好可以买完所有糖果,则方案可行 {f = 1;break;} } if(f==1)cout<<"YES"<<endl; else cout<<"NO"<<endl; return 0; }
标签:include,int,纸币,candy,6537,num,排序,糖果 From: https://www.cnblogs.com/jyssh/p/17534666.html