当前位置:   article > 正文

蓝桥杯 ALGO-232 算法训练 找零钱_一行一个输入整数n表示排队人数,输出yes或者no

一行一个输入整数n表示排队人数,输出yes或者no

算法训练 找零钱

时间限制:1.0s   内存限制:256.0MB

 

问题描述

  有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

 

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int n;
  5. int a[1000005] = { 0 };
  6. scanf("%d", &n);
  7. for (int i = 0; i < n; ++i)
  8. scanf("%d", &a[i]);
  9. int num_25 = 0, num_50 = 0;
  10. int failed = 0;
  11. for (int i = 0; i < n; ++i)
  12. {
  13. if (a[i] == 25)
  14. num_25++;
  15. else if (a[i] == 50)
  16. {
  17. num_50++;
  18. if (num_25 > 0)
  19. num_25--;
  20. else
  21. {
  22. failed = 1;
  23. break;
  24. }
  25. }
  26. else
  27. {
  28. if (num_25 > 0 && num_50 > 0)
  29. {
  30. num_25--;
  31. num_50--;
  32. }
  33. else if (num_25 >= 3)
  34. num_25 -= 3;
  35. else
  36. {
  37. failed = 1;
  38. break;
  39. }
  40. }
  41. }
  42. if (failed)
  43. printf("NO");
  44. else
  45. printf("YES");
  46. return 0;
  47. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/416072
推荐阅读
相关标签
  

闽ICP备14008679号