Submission #591461

#TimeUsernameProblemLanguageResultExecution timeMemory
591461piOOEJJOOII 2 (JOI20_ho_t2)C++17
100 / 100
17 ms2024 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, k; cin >> n >> k; //j = 0, o = 1, i = 2 vector<int> g[3]; string s; cin >> s; int ans = n; for (int i = 0; i < n; ++i) { g[s[i] == 'J' ? 0 : s[i] == 'O' ? 1 : 2].push_back(i); } auto nxt = [&](int t, int i) { auto it = upper_bound(g[t].begin(), g[t].end(), i); if (g[t].end() - it < k) { return -1; } else { return *(it + k - 1); } }; for (int i = 0; i < n; ++i) { if (s[i] == 'J') { int x = i - 1; for (int t = 0; t < 3; ++t) { x = nxt(t, x); if (x == -1) { break; } } if (x != -1) { ans = min(ans, (x - i + 1) - k * 3); } } } cout << (ans == n ? -1 : ans); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...