제출 #1337389

#제출 시각아이디문제언어결과실행 시간메모리
1337389uranhishigJJOOII 2 (JOI20_ho_t2)C++20
100 / 100
20 ms3040 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

signed main(){
    int n, k;
    cin >> n >> k;
    string x;
    cin >> x;
    vector<int> J, O, I;
    for(int i = 0; i < n; i++){
        if(x[i] == 'J'){
            J.push_back(i);
        }
        else if(x[i] == 'O'){
            O.push_back(i);
        }
        else{
            I.push_back(i);
        }
    }
    int ans = 1e18;
    for(int i = 0; i < n; i++){
        auto itJ = lower_bound(J.begin(), J.end(), i) - J.begin();
        itJ += k - 1;
        if(itJ >= J.size()){
            break;
        }
        auto itO = lower_bound(O.begin(), O.end(), J[itJ]) - O.begin();
        itO += k - 1;
        if(itO >= O.size()){
            break;
        }
        auto itI = lower_bound(I.begin(), I.end(), O[itO]) - I.begin();
        itI += k - 1;
        if(itI >= I.size()){
            break;
        }
        ans = min(ans, I[itI] - i- 3*k + 1);
    }
    if(ans == 1e18){
        cout << -1;
        return 0;
    }
    cout << ans;
    return 0;
}

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