제출 #1155047

#제출 시각아이디문제언어결과실행 시간메모리
1155047Roman70JJOOII 2 (JOI20_ho_t2)C++20
0 / 100
0 ms332 KiB
#include <bits/stdc++.h> using namespace std; set<int>b[3]; int find_pos(int m, int pos, int k){ auto it = b[m].lower_bound(pos); int cnt = 0; if(it != b[m].end()) cnt++; while(it != b[m].end() && cnt != k ){ cnt++; it++; } if(cnt == k) return *it; else return -1; } int main() { int n,k; cin >> n >> k; string a; cin >> a; for(int i = 0;i<n;i++){ if(a[i] == 'J') b[0].insert(i); else if(a[i] == 'O') b[1].insert(i); else b[2].insert(i); } int mnm = 1e9; for(int i =0;i<n;i++){ if(a[i] == 'J'){ int pos1 = find_pos(0,i,k); if(pos1 != -1){ int pos2 = find_pos(1,pos1,k); if(pos2 != -1){ int pos3 = find_pos(2,pos2,k); if(pos3 != -1){ int loc = pos3-i+1; int cr = 3*k; if(loc > 0 && cr > 0 && loc-cr>=0) mnm = min(mnm,loc-cr); } } } } } if(mnm != 1e9) cout << mnm; else cout << -1; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...