Submission #1225833

#TimeUsernameProblemLanguageResultExecution timeMemory
1225833mariamtsagareliJJOOII 2 (JOI20_ho_t2)C++20
100 / 100
8 ms1804 KiB
#include <bits/stdc++.h> using namespace std; using vi = vector<int>; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n,k; cin>>n>>k; string s; cin>>s; vi p,q,r; for(int i=0;i<n;i++){ if(s[i]=='J')p.push_back(i); else if(s[i]=='O')q.push_back(i); else if(s[i]=='I')r.push_back(i); } int ans=INT_MAX; for(int a=0;a+ k <= (int)p.size();a++){ int b=p[a+k-1]; auto it1=lower_bound(q.begin(),q.end(),b+1); if(it1==q.end())break; int c=it1 - q.begin(); if(c+ k-1 >= (int)q.size())continue; int d=q[c+k-1]; auto it2=lower_bound(r.begin(),r.end(),d+1); if(it2==r.end())continue; int e=it2 - r.begin(); if(e+ k-1 >= (int)r.size())continue; int f=r[e+k-1]; int cost = (f - p[a] + 1) - 3*k; ans=min(ans,cost); } if(ans==INT_MAX)cout<<-1<<"\n"; else cout<<ans<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...