原题链接:蓝桥杯算法提高VIP-盾神与积木游戏
#include<iostream> #include<algorithm> #include<string> using namespace std; int m,n; struct stu{ int have; int need; int lack; }; bool cmp(stu a,stu b) { return a.lack<b.lack; } int main() { cin>>m; stu s[10005]; while(m--) { cin>>n; for(int i=0;i<n;i++) { cin>>s[i].have>>s[i].need; s[i].lack=s[i].need-s[i].have; } sort(s,s+n,cmp); int sum=0; int flag=1; for(int i=0;i<n;i++) { if(s[i].lack<=0)//不缺 sum+=s[i].have; else { if(sum+s[i].have>=s[i].need)//正好 { sum+=s[i].have; } else flag=0; } } if(flag==0) cout<<"NO"<<endl; else cout<<"YES"<<endl; } return 0; }
错误的:
#include<iostream> #include<algorithm> #include<string> using namespace std; int main() { int m; cin>>m; int a[10005]; int sum[10005]; while(m--) { int n; cin>>n; int flag=0; int temp=0; for(int i=0;i<n;i++) { cin>>a[i]; cin>>sum[i]; } for(int i=0;i<n;i++) { if(a[i]==sum[i]) { temp=a[i]; flag++; } else if(a[i]<sum[i]) { if(a[i]+temp>=sum[i]) flag++; } } if(flag==n) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复