Submission #2699738


Source Code Expand

int replace(int N, char S[]) {
    int ans = 4;
    int flag[16] = {0};
    for (int i = 0; i < N; i++) {
        int ic = S[i] == 'I' ? 0 : 1;
        if (flag[ic]) continue;
        flag[ic] = 1;
        for (int j = i+1; j < N; j++) {
            int jc = S[j] == 'J' ? 0 : 1;
            if (flag[(jc<<1)|ic]) continue;
            flag[(jc<<1)|ic] = 1;
            for (int p = j+1; p < N; p++) {
                int pc = S[p] == 'P' ? 0 : 1;
                if (flag[(pc<<2)|(jc<<1)|ic]) continue;
                if (flag[(pc<<2)|(jc<<1)|ic] = 1;
                for (int c = p+1; c < N;c ++) {
                    int cc = S[c] == 'C' ? 0 : 1;
                    if (flag[(cc<<3)|(pc<<2)|(jc<<1)|ic]) continue;
                    flag[(cc<<3)|(pc<<2)|(jc<<1)|ic] = 1;
                    int tmp = ic + jc + pc + cc;
                    if (tmp < ans) {
                        ans = tmp;
                    }
                }
            }
        }
    }
    return ans;
}

Submission Info

Submission Time
Task A - 国際情報オリンピック日本代表プログラミングコンテスト (Welcome to IJPC)
User neetsdkasu
Language IOI-Style C++ (GCC 5.4.1)
Score 0
Code Size 1014 Byte
Status CE

Compile Error

./Main.cpp: In function ‘int replace(int, char*)’:
./Main.cpp:15:49: error: expected ‘)’ before ‘;’ token
                 if (flag[(pc<<2)|(jc<<1)|ic] = 1;
                                                 ^
./grader.cpp: In function ‘int main()’:
./grader.cpp:10:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%s", &N, S);
                       ^