Submission #1292087
Source Code Expand
#include <iostream> #include <algorithm> #include <vector> #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 p = 0; if (vs[i][0] < next) { int lb = 0, ub = len[i] - 1; while (lb + 1 < ub) { int med = (lb + ub) / 2; if (next <= vs[i][med])ub = med; else lb = med; } p = ub; } next = vs[i][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 | 100 |
Code Size | 1201 Byte |
Status | AC |
Exec Time | 2 ms |
Memory | 1920 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 | 50 / 50 | 50 / 50 | ||||
Status |
|
|
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 | 2 ms | 1792 KB |
subtask1/10 | AC | 2 ms | 1792 KB |
subtask1/11 | AC | 2 ms | 1792 KB |
subtask1/12 | AC | 2 ms | 1792 KB |
subtask1/13 | AC | 2 ms | 1792 KB |
subtask1/14 | AC | 2 ms | 1792 KB |
subtask1/2 | AC | 2 ms | 1792 KB |
subtask1/3 | AC | 2 ms | 1792 KB |
subtask1/4 | AC | 2 ms | 1792 KB |
subtask1/5 | AC | 2 ms | 1792 KB |
subtask1/6 | AC | 2 ms | 1792 KB |
subtask1/7 | AC | 2 ms | 1792 KB |
subtask1/8 | AC | 2 ms | 1792 KB |
subtask1/9 | AC | 2 ms | 1792 KB |
subtask2/1 | AC | 2 ms | 1792 KB |
subtask2/10 | AC | 2 ms | 1920 KB |
subtask2/11 | AC | 2 ms | 1920 KB |
subtask2/12 | AC | 2 ms | 1920 KB |
subtask2/13 | AC | 2 ms | 1920 KB |
subtask2/2 | AC | 2 ms | 1792 KB |
subtask2/3 | AC | 2 ms | 1792 KB |
subtask2/4 | AC | 2 ms | 1792 KB |
subtask2/5 | AC | 2 ms | 1792 KB |
subtask2/6 | AC | 2 ms | 1920 KB |
subtask2/7 | AC | 2 ms | 1920 KB |
subtask2/8 | AC | 2 ms | 1920 KB |
subtask2/9 | AC | 2 ms | 1920 KB |