牛客练习赛20 托米历险记
生活随笔
收集整理的这篇文章主要介绍了
牛客练习赛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并且按排队顺序售票的情况下完成找零.
来源:牛客网
时间限制: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 托米历险记的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【Golang项目实战】手把手教你写一个
- 下一篇: 日常训练训练