CCCPaste

Untitled

#include 
#include 
#include 
using namespace std;

int dp[30005][4];
int n;
vectorv;
int rec(int i, int type){
    if(i==n){
        return 0;
    }

    if(dp[i][type]!=-1){
        return(dp[i][type]);
    }

    int result=1000000000;

    if(type==3){
        int greska=0;
        if(v[i]!=type){
            greska=1;
        }
        result=min(result, rec(i+1, 3)+greska);
        result=min(result, rec(i+1, 2)+greska);
        result=min(result, rec(i+1, 1)+greska);
    }
    if(type==2){
        int greska=0;
        if(v[i]!=type){
            greska=1;
        }
        result=min(result, rec(i+1, 2)+greska);
        result=min(result, rec(i+1, 1)+greska);
    }
    if(type==1){
        int greska=0;
        if(v[i]!=type){
            greska=1;
        }
        result=min(result, rec(i+1, 1)+greska);
    }
    dp[i][type]=result;
    return(result);
}
int main()
{
        cin>>n;
        for(int i=0; i>a;
            v.push_back(a);
        }

        for(int i=0; i