Submission #1238430

#TimeUsernameProblemLanguageResultExecution timeMemory
1238430trimkusJJOOII 2 (JOI20_ho_t2)C++20
100 / 100
25 ms11848 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, K; cin >> N >> K; vector<vector<int>> nxt(N, vector<int>(3, -1)); string s; cin >> s; vector<char> c = {'J', 'O', 'I'}; for (int it = 0; it < 3; ++it) { char need = c[it]; queue<int> q; for (int i = 0; i < N; ++i) { if (need == s[i]) { q.push(i); } while (q.size() == K) { nxt[q.front()][it] = i; q.pop(); } } } for (int it = 0; it < 3; ++it) { for (int j = N - 2; j >= 0; --j) { if (nxt[j][it] == -1) nxt[j][it] = nxt[j + 1][it]; } } int res = -1; for (int i = 0; i < N; ++i) { int j = i; for (int it = 0; j != -1 && it < 3; ++it) { j = nxt[j][it]; } if (j == -1) continue; int op = j - i + 1 - 3 * K; if (res == -1 || op < res) { res = op; } } cout << res << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...