托米历险记

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

这天,托米家的电影院门口排起了长队--因为最新的电影"托米历险记"就要上映了!
每个人都有且仅有一张面值为25或50或100元的钞票.一张电影票的价格是25元.
托米想知道售票员能否在初始金钱为0并且按排队顺序售票的情况下完成找零.

输入描述:

第一行一个数字n,表示排队的人的数量.
第二行n个数字,第i个数字为ai,表示队伍中第i个人所持有的钞票的面值.

输出描述:

如果售票员能完成找零,输出"YES"(不含引号).
反之输出"NO".

示例1

输入

复制4 25 25 50 50

4
25 25 50 50

输出

复制YES

YES

示例2

输入

复制4 50 50 25 25

4
50 50 25 25

输出

复制NO

NO

备注:

1≤n≤105

关键是设置几个变量表示25 50 100出现的个数,如果等于50,那就要保证25出现了至少一次

如果等于100,那就要保证25至少出现了三次,或者50至少出现了一次,25至少出现了两次

#include<stdio.h>
int main()
{
    
    long n;
    scanf("%ld",&n);
    int a[10000000];
    int num1=0;//25
    int num2=0;//50
    int num3=0;//100
      int i=1;
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    if(a[0]!=25)
    {
        printf("NO");
    }
    else
    {
      
        for(i=1;i<n;i++)
        {
            if(a[i]==25)
            {
                num1++;
            }
            else if(a[i]==50 && num1>=1)
            {
                num2++;
                num1--;
            }
            else if((a[i]==100&&num2>=1&&num1>=1))
            {
                num3++;
                num2--;
                num1--;
            }
            else if(a[i]==100&&num2==0&&num1>=3)
            {
                num3++;
                num1=num1-3;
            }
            else{
                break;
            }
        }
        if(i==n)
        {
            printf("YES");
        }
    else{
        printf("NO");
    }
      
        
    }
   

  
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值