# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1114698 | 2024-11-19T12:44:31 Z | tkwiatkowski | JJOOII 2 (JOI20_ho_t2) | C++17 | 1 ms | 336 KB |
#include<bits/stdc++.h> using namespace std; #define ll long long #define fir first #define sec second int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >> k; string s; cin >> s; //s = ' ' + s + ' '; int big = pow(10, 9); vector<pair<int, int>> prefJ(n+2); // od 1 vector<pair<int, int>> sufI(n+2); // od 1 vector<int> J; for (int i = 0; i < n; i++){ if(s[i] == 'J'){ J.push_back(i); } if(J.size() >= k){ prefJ[i].first = J[J.size() - k]; prefJ[i].second = J[J.size() - 1]; } else{ prefJ[i] = {-1, -1}; } } vector<int> I; for (int i = n-1; i >= 0; i--){ if(s[i] == 'I'){ I.push_back(i); } if(I.size() >= k){ sufI[i].first = I[I.size() - k]; sufI[i].second = I[I.size()-1]; } else{ sufI[i] = {-1, -1}; } } // Mam najblizszy indeksy k*J i k*I deque<int> O; bool dasie = 0; int res = 0; for (int i = 0; i < n; i++){ if(prefJ[i].first == -1 || sufI[i].second == -1){ continue; } if(s[i] == 'O'){ O.push_back(i); if(O.size() > k){ O.pop_front(); } } if(O.size() >= k){ dasie = 1; int pozny_i_O = O[O.size()-1]; int wczesny_i_O = O[O.size()-k]; int joty = prefJ[wczesny_i_O].first; int ioty = sufI[pozny_i_O].first; // cout << wczesny_i_O << ' ' << pozny_i_O << '\n'; // cout << << '\n'; int h = ioty - joty - 3*k + 1; res = max(res, h); } } if(dasie){ cout << res << '\n'; } else{ cout << -1 << '\n'; } // for (int i = 0; i < n; i++){ // cout << "J " << prefJ[i].first << ' ' << prefJ[i].second << '\n'; // } // for (int i = 0; i < n; i++){ // cout << "I " << sufI[i].first << ' ' << prefJ[i].second << '\n'; // } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 336 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 336 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 336 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |