제출 #14042

#제출 시각아이디문제언어결과실행 시간메모리
14042paulsohn볼질 (OJUZ10_ballparade)C++98
75 / 100
7 ms1084 KiB
#include <cstdio>
#include <algorithm>
using namespace std;

bool run[4], prev[4];
int n, score, cnt;

void mov(){
    cnt=0;
    for(int j=0;j<4;++j) prev[j]=run[j];
    if(prev[3]){
        if(prev[2]){
            if(prev[1]){
                ++score;
                run[3]=run[2]=run[1]=run[0]=true;
            }
            else run[1]=true;
        }
        else run[2]=true;
    }
    else{
        if(prev[2] && prev[1]) run[3]=true;
        else if(prev[1]) run[2]=true;
        else run[1]=true;
    }
}

int main()
{
    int i,th;
    scanf("%d",&n);
    run[0]=true;
    for(i=0;i<n;++i){
        scanf("%d",&th);
        switch(th){
        case 1:
            if(++cnt==4) mov();
            break;
        case 2:
            mov();
            break;
        case 3:
            ++cnt;
            if(run[3]) ++score;
            run[3]=run[2];
            run[2]=run[1];
            run[1]=false;
            if(cnt==4){
                cnt=0;
                run[1]=run[0];
                run[0]=true;
            }
            break;
        }
        /*
        printf("%d : ",th);
        for(int j=0;j<4;++j){

            if(run[j]) printf("%d ",j);
            else printf("  ");
        }
        printf("\n");
        */
    }
    printf("%d",score);

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...