#include<bits/stdc++.h> using namespace std; int main(){ int yuan25=0,yuan50=0,yuan100=0; int a,n,flag=0; cin>>n; while(n--){ cin>>a; if(a==25){ yuan25++; } if(a==50&&yuan25>=1) yuan50++; else{ if(a==50&&yuan25==0){ printf("NO"); flag=1; break; } } if((a==100&&yuan25>=3)||(a==100&&yuan25>=1&&yuan50>=1)) yuan100++; else{ if((a==100&&yuan25<3)||(a==100&&(yuan25<1||yuan50<1))){ printf("NO"); flag=1; break; } } } if(flag==0) printf("YES"); return 0; } 在50和100的时候没有对需要找的钱进行减 #include<bits/stdc++.h> using namespace std; int main(){ int yuan25=0,yuan50=0,yuan100=0; int a,n,flag=0; cin>>n; while(n--){ cin>>a; if(a==25){ yuan25++; } if(a==50&&yuan25>=1){ yuan50++; yuan25--; } else{ if(a==50&&yuan25==0){ printf("NO"); flag=1; break; } } if(a==100&&yuan25>=3){ yuan100++; yuan25=yuan25-3;} else{ if(a==100&&yuan25<3) { printf("NO"); flag=1; break; }
}
if(a==100&&yuan25>=1&&yuan50>=1){
yuan100++;
yuan25--;
yuan50--;
}
else{
if(a==100&&(yuan25<1||yuan50<1)){
printf("NO");
flag=1;
break;
}
}
}
if(flag==0)
printf("YES");
return 0;
}