Submission #922976

#TimeUsernameProblemLanguageResultExecution timeMemory
922976NintsiChkhaidzeJJOOII 2 (JOI20_ho_t2)C++17
100 / 100
7 ms6948 KiB
// Source: https://usaco.guide/general/io #include <bits/stdc++.h> #define pb push_back using namespace std; const int inf = 1e9; vector <int> v[7]; int dp[200003][6]; int main() { ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL); int n,k; cin>>n>>k; string s; cin>>s; s='%'+s; map <char,int> mp; mp['J'] = 1; mp['O'] = 2; mp['I'] = 3; dp[0][1] = dp[0][2] = dp[0][3] = inf; int ans = inf; for (int i = 1; i <= n; i++){ v[mp[s[i]]].pb(i); for (int j = 1; j <= 3; j++){ dp[i][j] = dp[i - 1][j] + 1; int t = v[j].size(); if (t < k) continue; int l = v[j][t - k]; int del = (i - l + 1 - k); dp[i][j] = min(dp[i][j],del + dp[l - 1][j - 1]); } ans=min(ans,dp[i][3]); } if (ans >= inf) ans=-1; cout<<ans<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...