#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语言训练-计算1977!* (C++代码)浏览:859 |
A+B for Input-Output Practice (VI) (C++代码)浏览:418 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:533 |
众数问题 (C语言代码)浏览:830 |
三角形 (C++代码)递归(存在大量重复计算,容易出现时间超限)浏览:781 |
剪刀石头布 (C语言代码)浏览:755 |
水仙花 (C语言代码)浏览:1060 |
核桃的数量 (C语言代码)浏览:672 |
简单的a+b (C语言代码)浏览:546 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:531 |