Submission #202323

#TimeUsernameProblemLanguageResultExecution timeMemory
202323giorgikobJJOOII 2 (JOI20_ho_t2)C++14
100 / 100
33 ms2424 KiB
#include<bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define pb push_back
using namespace std;

const int N = 1e6 + 69;

int n,x,k,l,r;

int B[N],ANS[N];

int A[N],ans;

vector<int> v[3];

int main(){

    cin>>n>>k;
    for(int i=1;i<=n;i++){
        char c;
        cin>>c;
        if(c == 'J') A[i] = 0;
        if(c == 'O') A[i] = 1;
        if(c == 'I') A[i] = 2;
        v[ A[i] ].pb(i);
    }

    ans = 1e9;

    for(int i=0;i<v[0].size()-k+1;i++){

        l = v[0][i];

        r = v[0][i+k-1];

        bool ok = true;

        for(int j=1;j<=2;j++){
            vector<int> :: iterator it;
            it = upper_bound(v[j].begin(),v[j].end(),r);

            if(it == v[j].end()){
                ok = false;
                break;
            }

            if(it-v[j].begin()+k-1 >= v[j].size()){
                ok = false;
                break;
            }

            r = v[j][it-v[j].begin()+k-1];
        }

        if(!ok){
            break;
        }

        ans = min(ans,r-l-3*k+1);


    }

    if(ans == 1e9){
        ans = -1;
    }

    cout<<ans<<endl;

}

Compilation message (stderr)

ho_t2.cpp: In function 'int main()':
ho_t2.cpp:32:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<v[0].size()-k+1;i++){
                 ~^~~~~~~~~~~~~~~~
ho_t2.cpp:49:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if(it-v[j].begin()+k-1 >= v[j].size()){
                ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...