제출 #1323680

#제출 시각아이디문제언어결과실행 시간메모리
1323680hyyhJJOOII 2 (JOI20_ho_t2)C++20
0 / 100
1 ms332 KiB
#include <iostream> #include <math.h> #include <vector> #include <string> #include <algorithm> #include <queue> #include <stack> #include <map> #include <cstring> #include <iomanip> #include <set> #include <bitset> using namespace std; using ll = long long; using pii = pair<int,int>; using piii = tuple<int,int,int>; #define endl '\n' int main(){ int n,m;cin >> n >> m; string str;cin >> str; vector<int> vcJ; vector<int> vcO; vector<int> vcI; for(int i{};i < n;i++){ char k = str[i]; if(k == 'J') vcJ.emplace_back(i); if(k == 'O') vcO.emplace_back(i); if(k == 'I') vcI.emplace_back(i); } m--; int ans = 1e9; for(int i{m};i < vcO.size();i++){ auto itJ = lower_bound(vcJ.begin(),vcJ.end(),vcO[i-m]-1)-vcJ.begin(); auto itI = upper_bound(vcI.begin(),vcI.end(),vcO[i])-vcI.begin(); if(itJ < m || itI+m >= vcI.size()) continue; ans = min(ans,vcI[itI+m]-vcJ[itJ-m]); } if(ans == 1e9) cout << -1; else cout << ans-((m+1)*3)+1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...