제출 #1180344

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

int n,k; string s;
int jump(int i, vector<int> &v) {
    if (i == -1 || v.empty() || v.back() < i)
        return -1;
    int j = (lower_bound(v.begin(),v.end(),i)-v.begin());
    if (j+k-1 >= v.size())
        return -1;
    return v[j+k-1];
}
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    cin >> n >> k >> s;
    vector<int> indj, indo, indi;
    for (int i = 0; i < n; i++) {
        if (s[i] == 'J')
            indj.push_back(i);
        else if (s[i] == 'O')
            indo.push_back(i);
        else
            indi.push_back(i);
    }
    int odp = 1000000000;
    for (int i = 0; i < n; i++) {
        int j = jump(jump(jump(i,indj),indo),indi);
        if (j != -1)
            odp = min(odp,j-i-3*k+1);
    }
    cout << ((odp == 1000000000) ? -1 : odp) << endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...