#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;

}