【CodeForces】[698A]Vacations
需要注意问的是至少休息多少天
所以要让a[i]==0的天数尽量少
从前到后
如果a[i]==3
那么如果a[i-1]==1 那a[i]=2
如果a[i-1]==2 那a[i]=1
如果在循环开始就有3的话则不用考虑
因为无论3有多少个都可以组合成有事天数
对结果没有影响
如果a[i]==a[i-1]
那么把a[i]更新为0
#include<stdio.h>
int a[120];
int main() {
int n;
while(scanf("%d",&n)!=EOF) {
for(int i=0; i<n; i++) {
scanf("%d",&a[i]);
if(i>0&&a[i]==3&&(a[i-1]==1||a[i-1]==2))
a[i]-=a[i-1];
else if(i>0&&a[i]!=3&&a[i]==a[i-1])
a[i]=0;
}
int cnt=0;
for(int i=0; i<n; i++)
if(a[i]==0)
cnt++;
printf("%d\n",cnt);
}
return 0;
}