Submission #390459

#TimeUsernameProblemLanguageResultExecution timeMemory
390459keta_tsimakuridzeJJOOII 2 (JOI20_ho_t2)C++14
100 / 100
13 ms5488 KiB
#include<bits/stdc++.h> #define f first #define int long long #define s second using namespace std; const int N=2e5+5,mod=1e9+7; int t,ans,pref[N],n,k,L[N],R[N]; string s; main(){ // t=1; cin>>n>>k; cin>>s; s='#'+s+'#'; int cnt=0,r=0; for(int i=0;i<=n;i++){ if( s[i]=='J') cnt--; while(r+1<=n && cnt<k) { r++; if(s[r]=='J') cnt++; } R[i]=r; if(cnt < k) R[i]=-1; for(int j=0;j<3;j++){ pref[i]=pref[i-1]; } if(s[i]=='O') pref[i]++; } cnt=0; r=n+1; for(int i=n+1;i>=1;i--){ if(s[i]=='I') cnt--; while(r-1>=1 && cnt<k) { r--; if(s[r]=='I') cnt++; } L[i]=r; if(cnt<k) L[i]=-1; } r=1; ans=n+5; for(int i=0;i<=n;i++){ if(R[i]==-1) break; while(r<=n+1 && (L[r]==-1 || pref[L[r]]-pref[R[i]]<k)) r++; if(L[r]!=-1 && pref[L[r]]-pref[R[i]]>=k)ans=min(ans,r-i-1-3*k); } if(ans==n+5) cout<<-1; else cout<<ans; }

Compilation message (stderr)

ho_t2.cpp:9:7: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    9 |  main(){
      |       ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...