Submission #1296150

#TimeUsernameProblemLanguageResultExecution timeMemory
1296150fairkrashJJOOII 2 (JOI20_ho_t2)C++20
100 / 100
10 ms3464 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; ll INF = 1e18; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll n, k; cin >> n >> k; vector<ll> v1, v2, v3; string s; cin >> s; for (ll i = 0; i < n; i++) { if (s[i] == 'J') { v1.push_back(i); } if (s[i] == 'O') { v2.push_back(i); } if (s[i] == 'I') { v3.push_back(i); } } ll ans = INF; for (ll i = 0; i < (ll) v2.size() - k + 1; i++) { ll l = v2[i]; ll r = v2[i + k - 1]; ll h1 = upper_bound(v3.begin(), v3.end(), r) - v3.begin() + k - 1; if (h1 >= v3.size()) { continue; } h1 = v3[h1]; ll h2 = upper_bound(v1.begin(), v1.end(), l) - v1.begin() - k; if (h2 < 0) { continue; } h2 = v1[h2]; ans = min(ans, (h1 - h2 + 1 - 3 * k)); } if (ans == INF) { cout << -1; return 0; } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...