Untitled
user_5668965
c_cpp
a year ago
1.3 kB
15
Indexable
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define f first
#define s second
#define si(x) scanf("%d",&x)
#define sl(x) scanf("%I64d",&x)
#define CLR(x) memset(x,0,sizeof(x))
#define RESET(x,a) memset(x,a,sizeof(x))
#define pi pair<int,int>
#define pb push_back
#define mp make_pair
#define debug(x) cerr<<">value ("<<#x<<") : "<<x<<endl;
int dp[3][200];
int a[200];
int INF=10000;
int main()
{
// ios_base::sync_with_stdio(false);
// cin.tie(NULL);
int t,n,m,i,j;
si(n);
for(i=0;i<n;i++)
{
si(a[i]);
dp[0][i]=dp[1][i]=dp[2][i]=INF;
}
dp[0][i]=dp[1][i]=dp[2][i]=INF;
dp[0][0]=0;
for(i=0;i<n;i++)
{
dp[0][i+1] = min( min(dp[0][i],dp[1][i]) , dp[2][i] );
dp[0][i+1]++;
if(a[i]==1)
{
dp[1][i+1] = min(dp[0][i], dp[2][i] );
}
else if(a[i]==2)
{
dp[2][i+1] = min(dp[0][i], dp[1][i] );
}
else if(a[i]==3)
{
dp[1][i+1] = min(dp[0][i], dp[2][i] );
dp[2][i+1] = min(dp[0][i], dp[1][i] );
}
}
i=n;
int ans= min( min(dp[0][i],dp[1][i]) , dp[2][i] );
printf("%d\n",ans);
return 0;
}
Editor is loading...
Leave a Comment