Submission #1173610

#TimeUsernameProblemLanguageResultExecution timeMemory
1173610nguyenkhangninh99JJOOII 2 (JOI20_ho_t2)C++20
100 / 100
7 ms6356 KiB
#include <bits/stdc++.h> using namespace std; #define int long long void solve(){ int n, k; cin >> n >> k; string s; cin >> s; s = ' ' + s; vector<int> j, o, i, prej(n + 1, -1e9), sufi(n + 1, 1e9); for (int p = 1; p <= n; p++){ if(s[p] == 'O') o.push_back(p); if(s[p] == 'J') j.push_back(p); if(j.size() >= k) prej[p] = j[j.size() - k]; } for (int p = n; p >= 1; p--){ if(s[p] == 'I') i.push_back(p); if(i.size() >= k) sufi[p] = i[i.size() - k]; } int res = 1e9; for (int p = 0; p + k - 1 < o.size(); p++) res = min(res, sufi[o[p + k - 1]] - prej[o[p]] + 1 - 3 * k); cout << (res > n ? -1 : res); } signed main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...