Submission #253259

#TimeUsernameProblemLanguageResultExecution timeMemory
253259dooweyJJOOII 2 (JOI20_ho_t2)C++14
100 / 100
14 ms1816 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;

#define fi first
#define se second
#define mp make_pair
#define fastIO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

const int N = (int)2e5 + 10;
vector<int> lis[3];

int main(){
    fastIO;
    int n, k;
    cin >> n >> k;
    char f;
    int x;
    for(int i = 1; i <= n; i ++ ){
        cin >> f;
        if(f == 'J')
            x = 0;
        else if(f == 'O')
            x = 1;
        else
            x = 2;
        lis[x].push_back(i);
    }
    int nx;
    int pp;
    int shi;
    int fq;
    int en;
    int idx;
    int ans = (int)1e9;
    for(int i = 0 ; i < lis[0].size(); i ++ ){
        if(i + k - 1 < lis[0].size()){
            nx = lis[0][i + k - 1];
            pp = upper_bound(lis[1].begin(), lis[1].end(), nx) - lis[1].begin();
            if(pp + k - 1 < lis[1].size()){
                shi = lis[1][pp + k - 1];
                fq = upper_bound(lis[2].begin(), lis[2].end(), shi) - lis[2].begin();
                if(fq + k - 1 < lis[2].size()){
                    en = lis[2][fq + k - 1];
                    idx = en - lis[0][i] + 1;
                    ans = min(ans, idx-3*k);
                }
            }
        }
    }
    if(ans == (int)1e9)
        cout << -1 << "\n";
    else
        cout << ans << "\n";
    return 0;
}

Compilation message (stderr)

ho_t2.cpp: In function 'int main()':
ho_t2.cpp:39:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0 ; i < lis[0].size(); i ++ ){
                     ~~^~~~~~~~~~~~~~~
ho_t2.cpp:40:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(i + k - 1 < lis[0].size()){
            ~~~~~~~~~~^~~~~~~~~~~~~~~
ho_t2.cpp:43:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if(pp + k - 1 < lis[1].size()){
                ~~~~~~~~~~~^~~~~~~~~~~~~~~
ho_t2.cpp:46:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 if(fq + k - 1 < lis[2].size()){
                    ~~~~~~~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...