| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1343442 | minhtien | JJOOII 2 (JOI20_ho_t2) | C++20 | 1 ms | 344 KiB |
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+6;
const int inf=1e9+7;
int n,k;
string s;
int pre[N];
deque<int>v,v1;
int tong=inf;
int main()
{
cin >> n >>k;
int k1=k,k2=k;
cin >>s;
s=" "+s;
for(int i=1;i<=n;i++){
pre[i]=pre[i-1];
if(s[i]=='O') pre[i]++;
}
for(int i=1;i<=n;i++){
if(s[i]=='J'){
v.push_back(i);
if(v.size()>k){
v.pop_front();
}
}
else if(s[i]=='I'){
v1.push_back(i);
if(v1.size()>k){
v1.pop_front();
}
// cout << " " << i << " "<< v1.size() << " "<< v.size() << " " << k << "\n";
if(v1.size()>=k && v.size()>=k){
int s2=v1.back();
int s3=v.front();
int sum=s2-s3+1;
if(sum>=3*k){
int s4=v1.front(),s5=v.back();
int sum1=pre[s4]-pre[s5];
if(sum1>=k){
int sum2=s2-s3+1-3*k;
// cout << " " << sum2 << "\n";
tong=min(tong,sum2);
}
}
}
}
}
cout << (tong==inf?-1:tong);
return 0;
}
/*
10 2
OJIJOIOIIJ
*/
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
