제출 #1321326

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

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n, k; cin >> n >> k;
    string x; cin >> x;
    vector<int> J;
    vector<int> O;
    vector<int> 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 mn = 1e18;
    for(int i = 0; i < n; i++){
        //start at i
        auto itJ = lower_bound(J.begin(), J.end(), i) - J.begin();
        itJ += k-1;
        if(itJ >= J.size()){
            continue;
        }
        auto itO = lower_bound(O.begin(), O.end(), J[itJ]) - O.begin();
        itO += k-1;
        if(itO >= O.size()){
            continue;
        }
        auto itI = lower_bound(I.begin(), I.end(), O[itO]) - I.begin();
        itI += k-1;
        if(itI >= I.size()){
            continue;
        }
        mn = min(mn, I[itI] - i + 1 - 3*k);
    }
    if(mn == 1e18){
        mn = -1;
    }
    cout << mn << "\n";
    return 0;
}


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