Submission #717624

#TimeUsernameProblemLanguageResultExecution timeMemory
717624vjudge1JJOOII 2 (JOI20_ho_t2)C++17
100 / 100
12 ms1780 KiB
#include <bits/stdc++.h>

using namespace std;

vector<int> indJ, indO, indI;
int n, k;

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    cin >> n >> k;
    for(int i = 0; i < n; i++) {
        char c; cin >> c;
        if(c == 'J') indJ.push_back(i);
        else if(c == 'O') indO.push_back(i);
        else  indI.push_back(i);
    }
    int res = INT_MAX;
    for(int i = 0; i + k - 1 < (int)indJ.size(); i++) {
        int x = indJ[i + k - 1];
        auto it = upper_bound(indO.begin(), indO.end(), x);
        if((int)(indO.end() - it) < k) break;
        it += (k - 1);
        x = *it;
        it = upper_bound(indI.begin(), indI.end(), x);
        if((int)(indI.end() - it) < k) break;
        it += (k - 1);
        res = min(res, *it - indJ[i] + 1 - (3 * k));
    }
    cout << (res == INT_MAX ? -1 : res) << '\n';
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...