HELP ME!!!

学军电影院

时间:1s 空间:256M

题目描述:

学军电影院暑期档大片“学军熊猫”正在热映,票价25元,现在有很多oier即将来买票,oier都是极简主义者,因此每个人手里只有一张纸币,纸币的面值是100,50,25当中的一种,学军中学已经实现了自动售票,电影院门口放了一台自动售票机,但不巧的是,今天自动售票机里面没有零钱了,现在问你,已知n个oier所带的纸币的信息,以及他们到来的顺序,自动售票机能否在没有钱的情况下完成找钱功能。

(假设纸币投入机器后,会在下一个买票人之前,由工作人员换为对应数量的1元零钱。例如第一个人将1张25元的纸币投入机器后,在第二个人买票时,机器里是25个1元的零钱)

输入格式:

多组测试数据。

每组测试数据先输入一个n,表示买票的总人数,接下来一行输入n个正整数。表示每个人手里的纸币面值。

输出格式:

对于每组测试数据

输出”YES”,如果可以完成找钱功能

输出”NO”,如果不能完成找钱功能。

样例输入:

4 25 25 50 50 2 25 100 4 50 50 25 25

样例输出:

YES NO NO

约定:

1<=n<=105

提示:

第一组数据:先来了两个人手里都有25元钱,都不用找,现在机器里面一共有了两张25,接下来两个人手里都有一张50,每个人分别找回去25。找钱成功。

第二组数据:第一个人来,不用找钱,第二个人来,要找75,发现零钱不够了,所以找钱失败。

第三组数据:第一个人给50,机器里面一开始没有钱,没法找零,所以找钱失败。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        bool flag=0;
        int sum=0;
        for(int i=1;i<=n;i++){
            int x;
            cin>>x;
            if(sum<(x-25)){
                flag=1;
                break;
            }
            sum=sum+25;
        }
        if(flag==0){
            cout<<"YES"<<endl;
        }else{
            cout<<"NO"<<endl;  
        }
    }
    return 0;
}

你看看这个可不可以AC,我这边可以过样例,仅供参考(我没有这道题,跟你不是一个班):

#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    while(cin >> n) {
        bool flag = false;
        int sum = 0;
        for (int i = 0; i < n; i++) {
            int x;
            cin >> x;
            if (sum < (x - 25)) {
                flag = true;
                break;
            }
            sum = sum + 25;
        }
        if (flag == false) {
            cout << "YES" << " ";
        } else {
            cout << "NO" << " ";
        }
    }
    return 0;
}

这不是班级题目,它是XJOI里的题

AC不了

原题