zoukankan      html  css  js  c++  java
  • P4745 B’s problem(b)

    时间: 1000ms / 空间: 655360KiB / Java类名: Main

    背景

    冬令营入学测试

    描述

    题目描述

             小B生活在一个很奇怪的国家里,这个国家的钱的面值只有可能是25,50,100的。小B最近在做社会实践,这次它选择在一个餐厅里干这件事情。但今天发生了一件有趣的事,这件事情是这个样子的,餐厅里大家都在排队买饭,粗心的打饭阿姨忘记要带零钱,并且所有排队打饭的人只带了一张钱。

             具体地,第i个人带了一张面额为ai的钱,为了方便起见,我们规定每个人都想买价值25元的饭盒。阿姨显得不知所措。聪明的小B想到了一个方法,让带了25元的先买饭!这样阿姨就有了更多的零钱去找开一些面值较大的钱。

             但这样对于一些人来说仍有可能找不开零钱,小B想知道是否存在一种排队方案,能够对所有人找开零钱。如果可行输出“YES”,否则输出“NO”。

    输入格式

    第一行一个数n,表示有n个想买饭的人。

             接下来一行n个数ai,表示第i个人带着的钱的面额。

    输出格式

    输出“YES”或者“NO”。

    备注

    输入样例

    3

    25 50 100

    输出样例

    NO

    数据范围

    对于100%的数据n<=100,ai=25或者50或者100。

     1 #include<iostream>
     2 #include<algorithm>
     3 using namespace std;
     4 
     5 int n,s[105];
     6 int a=0,b=0;
     7 
     8 void check()
     9 {
    10     cout<<"NO"<<endl;
    11     exit(0);
    12 }
    13 
    14 int main()
    15 {
    16     cin>>n;
    17     for(int i=0;i<n;i++)
    18         cin>>s[i];
    19     sort(&s[0],&s[n]);
    20     for(int i=0;i<n;i++)
    21     {
    22         if(s[i]==25)a++;
    23         if(s[i]==50){b++;a--;if(a<0)check();}
    24         if(s[i]==100)
    25         {
    26             if(a>=1&&b>=1) a-=1,b-=1;
    27             else
    28             if(a>=3) a-=3;
    29             else
    30             check();
    31         }
    32     }
    33     cout<<"YES"<<endl;
    34     return 0;
    35 }
  • 相关阅读:
    IIS使用URL重写(URL Redirect)实现http跳转到https
    iis10中,安装URL重定向,却提示需要IIS7版本以上
    部署ABO+Angular框架要注意的问题
    idea中写Spring遇到internal error
    用微信小程序连接leancloud数据库注意事项~
    static解析
    Data Science Leetcode 精简版
    专题:二叉搜索树
    239. 滑动窗口最大值/双端队列/单调队列
    【转】关闭firefox火狐浏览器下载完成时自动扫描(49.0.2以后版本)
  • 原文地址:https://www.cnblogs.com/InWILL/p/6240263.html
Copyright © 2011-2022 走看看