题意:买n天披萨,每天需买的披萨数已知,买披萨有俩种优惠:①连续俩天每天买一个(一共俩个)②一天买俩个,优惠可以无限次用。如果可以按优惠买完为YES,否则NO
思路:保证每天都是偶数即可满足(用②)!如果当天为奇数人,需要用①,所以当天人数减1,下一天人数减1,如果下一天人数为0,说明当天无法完成,即为NO,全部遍历完成后全部满足的话即为YES!
代码:
#include <stdio.h>
#include <stdlib.h>
int a[200005];
int main()
{
int i,n;
while(scanf("%d",&n)!=EOF)
{
int flag = 1;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
if(a[i] & 1)
{
a[i]--;
a[i+1]--;
if(a[i+1] < 0 || i == n-1)
{printf("NO\n");flag = 0;break;}
}
}
if(flag)
printf("YES\n");
}
return 0;
}