Submission #1351027

#TimeUsernameProblemLanguageResultExecution timeMemory
1351027kantaponzJJOOII 2 (JOI20_ho_t2)C++20
100 / 100
6 ms1804 KiB
#include <bits/stdc++.h>
using namespace std;

const int nx = 2e5 + 5;

int n, k;
string s;
vector<int> J, O, I;

int main() {
    ios_base::sync_with_stdio(0), cin.tie(0);
    cin >> n >> k >> s;
    for (int i = 0; i < n; i++) {
        if (s[i] == 'J') J.push_back(i);
        else if (s[i] == 'O') O.push_back(i);
        else I.push_back(i);
    }
    int ans = 1e9;
    for (int x = 0; x + k - 1 < J.size(); x++) {
        int idx = upper_bound(O.begin(), O.end(), J[x + k - 1]) - O.begin();
        if (idx == O.size() || idx + k - 1 >= O.size()) continue;
        int it = upper_bound(I.begin(), I.end(), O[idx + k - 1]) - I.begin();
        if (it == I.size() || it + k - 1 >= I.size()) continue;

        ans = min(ans, I[it + k - 1] - J[x] + 1 - 3 * k);
    }


    if (ans == 1e9) {
        cout << -1;
        return 0;
    }
    cout << ans;
}

/*
10 2
OJIJOIOIIJ

2

*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...