原题地址:https://codeforces.com/problemset/problem/698/A;
经典题。
看网上的题解都是二维DP,所以来答一波。
#include <bits/stdc++.h>
using namespace std;
int a[1000];
int main() {
int t;
int cnt = 0;
cin >> t;
for (int i = 0; i < t; i++)
cin >> a[i];
if (a[0] == 0)
cnt++;
for (int i = 1; i < t; i++) {
if (a[i] == 3 && a[i - 1] != 3)
a[i] -= a[i - 1];
else if (a[i] == 2 && a[i - 1] == 2 || a[i] == 1 && a[i - 1] == 1) {
a[i] = 0;
cnt++;
}
else if (a[i] == 0)
cnt++;
}
cout << cnt;
}