欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

牛客练习赛20 托米历险记

发布时间:2024/1/18 编程问答 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 牛客练习赛20 托米历险记 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
链接: https://www.nowcoder.com/acm/contest/128/E
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

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

输入描述:

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

输出描述:

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

可以将定义三个变量,a1,a2,a3分别代表25 50 100,第一从输入 必须是25否则输出NO ,然后当输入25时a1++

输入50时a2++,a1--,当输入100时为了 下次易于找零,先找零50 25 ,若不满足则找零25*3否则输出N0,具体细节看代码

#include<iostream> #include<cstdio> using namespace std; const int maxn=10001; int main() {int n,a,a1,a2,a3,t=0;a1=a2=a3=0;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a);if(i==1&&a!=25) {printf("NO\n");break;}else{if(a==25) a1++;else{if(a==50&&a1>0) {a2++;a1--;}else if(a==50&&a1<=0) {printf("NO\n");break;}else{if(a==100&&a1>0&&a2>0) {a2--;a1--;}else if(a==100&&a1>=3&&a1==0){a1-=3;}else {printf("NO\n");break;}}}}t++;}if(t==n) printf("YES\n");return 0; }


总结

以上是生活随笔为你收集整理的牛客练习赛20 托米历险记的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。