Submission #1292010


Source Code Expand

#include <vector>
#include <algorithm>
#define REP(i, n) for(int i = 0; i < (int)(n); ++i)
using namespace std;


int replace(int N, char S[]) {
  int vs[4][100000]={0},len[4]={0};
  REP(i, N){
    if(S[i] == 'I') vs[0][len[0]++]=i;
    if(S[i] == 'J') vs[1][len[1]++]=i;
    if(S[i] == 'P') vs[2][len[2]++]=i;
    if(S[i] == 'C') vs[3][len[3]++]=i;
  }
  
  int res = 4;
  REP(pat, 1 << 4){
    int cur = 0;
    bool ok = true;
    REP(i, 4){
      if(pat & (1 << i)){
        //vector<int>::iterator p = lower_bound(vs[i].begin(), vs[i].end(), next);
        int p=0;
        if(p == len[i]){
          ok = false;
          break;
        }else{
          p++;
        }
      }else{
        if(p < N){
          ++cur;
          ++p;
        }else{
          ok = false;
          break;
        }
      }
    }
    if(ok){
      res = min(res, cur);
    }
  }
  
  return res;
}

Submission Info

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

Compile Error

./Main.cpp: In function ‘int replace(int, char*)’:
./Main.cpp:31:12: error: ‘p’ was not declared in this scope
         if(p < N){
            ^
./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);
                       ^