Description
有一台自动售票机,每张票卖 5 元。售票机可以接受 5 元、10 元、20元的纸币。接受大面额纸币时,若没有足够的零钱,售票机将拒绝售票并将纸币退还给客户,若有零钱足够,售票机必须出票并且找零。一开始,售票机里没有任何零钱。每位客户只买一张票也只会塞一张纸币。按照购票顺序,给定售票机收到的 n 张纸币的面额。请统计售货机最多能够卖出多少张票。
Format
Input
第一行:单个整数 n 第二行:n 个整数表示 n 名客户分别塞入的纸币面额,保证只能是 5、10、20 中的一个。
Output
单个整数:表示售票机卖出的最多票数。
Samples
输入数据 1
8
10 5 5 5 10 10 20 20
输出数据 1
6
#include<bits/stdc++.h>
typedef unsigned long long ull;
typedef long long ll;
using namespace std;
int main()
{
int x,ten=0,five=0,n,s=0,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
if(x==5)
{
five++;
s++;
}
else if(x==10)
{
if(five)
{
five--;
s++;
ten++;
}
}
else if(x==20)
{
if(ten&&five)
{
ten--;
five--;
s++;
}
else if(five>=3)
{
five-=3;
s++;
}
}
}
printf("%d",s);
return 0;
}
评论区