蓝桥杯 找零钱 C语言

问题描述
  有n个人正在饭堂排队买海北鸡饭。每份海北鸡饭要25元。奇怪的是,每个人手里只有一张钞票(每张钞票的面值为25、50、100元),而且饭堂阿姨一开始没有任何零钱。请问饭堂阿姨能否给所有人找零(假设饭堂阿姨足够聪明)
输入格式
  第一行一个整数n,表示排队的人数。

接下来n个整数a[1],a[2],…,a[n]。a[i]表示第i位学生手里钞票的价值(i越小,在队伍里越靠前)
输出格式
  输出YES或者NO
样例输入
4
25 25 50 50
样例输出
YES
样例输入
2
25 100
样例输出
NO
样例输入
4
25 25 50 100
样例输出
YES
数据规模和约定
  n不超过1000000

#include<stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	int a[n],i,y25=0,y50=0,y100=0,xb=0;  
     for(i=0;i<n;i++)
    {
   	scanf("%d",&a[i]);
    	if(a[i]==25)
        	    {
              	y25++;
                }
	    if(a[i]==50) 
            	{
            	if(y25>=1)
                 	{
                     	y25--; y50++;
                    }
                else {
                	xb++;
				       printf("NO\n");
					   break;
				        }
                 }
       	if(a[i]==100) 
               	{      	
              	if(y50>=1&&y25>=1)
	             {
                	y50--;y25--;y100++;
                  }
                else if(y50==0&&y25>=3)	
                           {
                            	y25=y25-3;
                           	}
          else {
          	xb++;
          	printf("NO\n");
					   break;
          	
		  }
          }
       }
  
   if(xb==0) printf("YES\n");
   
   return 0;


}
发布了4 篇原创文章 · 获赞 2 · 访问量 85

猜你喜欢

转载自blog.csdn.net/qq_46232829/article/details/104538913