Submission #1292031


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 next = 0;
    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);
        if(len[i]==0){
          ok = false;
          break;
        }
        if(vs[i][len[i]-1]<next){
          ok = false;
          break;
        }
        int lb=0,ub=len[i];
        while(lb+1<ub){
          int med = (lb+ub)/2;
          if(next<=vs[i][med])lb=med;
          else ub=med;
        }
        int p = lb;
        if(p == len[i]){
          ok = false;
          break;
        }else{
          next = p+1;
        }
      }else{
        if(next < N){
          ++cur;
          ++next;
        }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 1286 Byte
Status WA
Exec Time 2 ms
Memory 1792 KB

Compile Error

./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);
                       ^

Judge Result

Set Name Subtask1 Subtask2
Score / Max Score 0 / 50 0 / 50
Status
AC × 10
WA × 4
AC × 9
WA × 4
Set Name Test Cases
Subtask1 subtask1/1, subtask1/10, subtask1/11, subtask1/12, subtask1/13, subtask1/14, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7, subtask1/8, subtask1/9
Subtask2 subtask2/1, subtask2/10, subtask2/11, subtask2/12, subtask2/13, subtask2/2, subtask2/3, subtask2/4, subtask2/5, subtask2/6, subtask2/7, subtask2/8, subtask2/9
Case Name Status Exec Time Memory
subtask1/1 AC 1 ms 1664 KB
subtask1/10 AC 1 ms 1664 KB
subtask1/11 AC 1 ms 1664 KB
subtask1/12 AC 1 ms 1664 KB
subtask1/13 AC 1 ms 1664 KB
subtask1/14 WA 1 ms 1664 KB
subtask1/2 WA 1 ms 1664 KB
subtask1/3 WA 1 ms 1664 KB
subtask1/4 AC 1 ms 1664 KB
subtask1/5 AC 1 ms 1664 KB
subtask1/6 WA 1 ms 1664 KB
subtask1/7 AC 1 ms 1664 KB
subtask1/8 AC 1 ms 1664 KB
subtask1/9 AC 1 ms 1664 KB
subtask2/1 AC 1 ms 1664 KB
subtask2/10 WA 2 ms 1792 KB
subtask2/11 AC 2 ms 1792 KB
subtask2/12 AC 2 ms 1792 KB
subtask2/13 WA 2 ms 1792 KB
subtask2/2 AC 1 ms 1664 KB
subtask2/3 AC 1 ms 1664 KB
subtask2/4 AC 1 ms 1664 KB
subtask2/5 AC 1 ms 1792 KB
subtask2/6 AC 2 ms 1792 KB
subtask2/7 AC 2 ms 1792 KB
subtask2/8 WA 2 ms 1792 KB
subtask2/9 WA 2 ms 1792 KB