题目
原题链接:A. Vacations
题意
n天内,有4个状态,不锻炼也不比赛、不锻炼但比赛、锻炼但不比赛和锻炼又比赛(全能天)。若连续两天是同一件事情,则休息一天,问最少会休息的天数。参考了其他作者的思路和代码。
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,s[100],t=0;
scanf("%d",&n);
for(int i=0; i<n; i++) {
scanf("%d",&s[i]);
}
while(s[t]==3) t++;//从不是全能天的那天开始
for(int i=t+1; i<n; i++) {
if(s[i]==3) {
if(s[i-1]!=3) s[i]=3-s[i-1];
}else{
if(s[i]==s[i-1]) s[i]=0;
}
}
int ans=0;
for(int i=0;i<n;i++){
if(!s[i]) ans++;
}
printf("%d\n",ans);
return 0;
}