Submission #1110014

#TimeUsernameProblemLanguageResultExecution timeMemory
1110014vjudge1JJOOII 2 (JOI20_ho_t2)C++17
100 / 100
28 ms5596 KiB
#pragma GCC optimize("O3,unroint-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define pb push_back
#define ii pair<int, int>
#define sz(v) (int)v.size()
#define all(v) v.begin(), v.end()
using namespace std;

const int N=2e5+5, mod = 1e9+7, inf = 1e18;

int n, k;
string s;
int co[N], cj[N], ci[N];
 
signed main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> n >> k >> s;
    for (int i=0; i<n; i++) {
        co[i+1] = co[i]; cj[i+1] = cj[i]; ci[i+1] = ci[i];
        if(s[i]=='O') co[i+1]++;
        else if(s[i]=='J') cj[i+1]++;
        else ci[i+1]++;
    }
    int mn = inf;
    for (int i=0; i<n; i++) {
        int cnt = 0;
        if(cj[i+1]<k) continue;
        int lo=0, hi=i+1;
        while(lo+1<hi) {
            int mid = (lo+hi)>>1;
            if(cj[i+1]-cj[mid]>=k) lo = mid;
            else hi = mid;
        }
        cnt+=i-lo+1-k;

        lo=i; hi=n;
        while(lo+1<hi) {
            int mid = (lo+hi)>>1;
            if(co[mid]-co[i]>=k) hi = mid;
            else lo = mid;
        }
        cnt += hi-i-1-k;

        int nl = hi;
        if(ci[n]-ci[hi]<k) continue;
        lo = nl; hi = n;
        while(lo+1<hi) {
            int mid = (lo+hi)>>1;
            if(ci[mid]-ci[nl]<k) lo=mid;
            else hi = mid;
        }
        cnt += hi-nl-k;
        mn = min(mn, max(cnt, 0LL));
    }
    if(mn==inf) cout << -1;
    else cout << mn;
}

Compilation message (stderr)

ho_t2.cpp:1:40: warning: bad option '-funroint-loops' to pragma 'optimize' [-Wpragmas]
    1 | #pragma GCC optimize("O3,unroint-loops")
      |                                        ^
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
    2 | #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
      |                                                ^
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-loops' to attribute 'optimize' [-Wattributes]
ho_t2.cpp:2:48: warning: bad option '-funroint-
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...