这场比赛发挥的不太好吧,当时只做了两题,第三题当时已经想到正解了,但不知发什么神经去想别的解法了。。。果然晚上的状态不好啊。
A. Cinema Line
非常水……一队人排队买票,每个人只有25、50和100的面值的钱,问买票的人最开始手里没有钱,能否给每个买票的人找钱。直接模拟即可~
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#define inf 0x3f3f3f3f
#define Inf 0x3FFFFFFFFFFFFFFFLL
#define eps 1e-9
#define pi acos(-1.0)
using namespace std;
typedef long long ll;
const int maxn=100000+10;
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int n;
while(~scanf("%d",&n))
{
int a,b,tmp;
a=b=0;
bool flag=true;
for(int i=1;i<=n;++i)
{
scanf("%d",&tmp);
if(tmp==25)
a++;
else if(tmp==50)
{
b++;
if(a>0) a--;
else flag=false;
}
else
{
if(b>0)
{
if(a>0) b--,a--;
else flag=false;
}
else
{
if(a>2) a-=3;
else flag=false;
}
}
}
if(flag) puts("YES");
else puts("NO");
}
return 0;
}
B - Color the F