Submission #1275519

#TimeUsernameProblemLanguageResultExecution timeMemory
1275519kaiboyJJOOII 2 (JOI20_ho_t2)C++20
100 / 100
5 ms3144 KiB
#include <algorithm> #include <iostream> using namespace std; const int N = 200000; char cc[N + 1]; int qu[N], ppj[N], ppo[N], ppi[N]; int main() { ios_base::sync_with_stdio(false), cin.tie(NULL); int n, k; cin >> n >> k >> cc; for (int cnt = 0, i = 0; i < n; i++) { if (cc[i] == 'J') qu[cnt++] = i; ppj[i] = cnt >= k ? qu[cnt - k] : -1; } for (int cnt = 0, i = 0; i < n; i++) { if (cc[i] == 'O') qu[cnt++] = i; ppo[i] = cnt >= k ? qu[cnt - k] : -1; } for (int cnt = 0, i = 0; i < n; i++) { if (cc[i] == 'I') qu[cnt++] = i; ppi[i] = cnt >= k ? qu[cnt - k] : -1; } int ans = n; for (int i = 0; i < n; i++) { int p = ppi[i]; if (p == -1) continue; p = ppo[p]; if (p == -1) continue; p = ppj[p]; if (p == -1) continue; ans = min(ans, i - p + 1 - k * 3); } cout << (ans < n ? ans : -1) << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...