This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;// Hello world arsaoshe aneru nesi isods
const int mod = 1e9+7; const char nl = '\n'; typedef long long ll; const int N = 1e5 + 5 ;
#define ff first
#define ss second
void void_code () {
ll n; cin >> n;ll k; cin >> k;
string s; cin >> s;
ll l = - 1, r = n ;
for ( int i =0 ;i < n; i ++ ) {
if ( s [ i ] == 'J' ) {
l = i ;
break;
}
}
for ( int i = n - 1; i >= 0 ; i -- ) {
if ( s [ i ] == 'I' ) {
r = i ;
break;
}
}
ll cnt = 0 ;
ll oh = 1;
ll gov = 0 ;
vector < char > v ;
for ( int i = l ;i < r + 1 ; i ++ ) {
if ( oh == 1 ) {
if ( s [ i ] == 'J' ){
cnt ++ ;
v .push_back ( 'J' ) ;
}
if ( cnt == k ) {
oh = 2;
cnt = 0 ;
}
else {
gov ++ ;
}
}
else if ( oh == 2 ) {
if ( s [ i ] == 'O' ){
cnt ++ ;
v .push_back ( 'O' ) ;
}
if ( cnt == k ) {
oh = 3;
cnt = 0 ;
}
else {
gov ++ ;
}
}
else if ( oh == 3 ) {
if ( s [ i ] == 'I' ){
cnt ++ ;
v .push_back ( 'I' ) ;
}
if ( cnt == k ) {
oh = 3;
cnt = 0 ;
}
else {
gov ++ ;
}
}
}
ll ch = r - l + 1;
if ( v. empty() ) {
cout << -1;
}
else {
cout << ch - v . size ();
}
//~ cout << gov ;
//~ cout << nl << l << " " << r << nl;
//~ cout << nl;
//~ for ( int i =0 ;i < v . size (); i++ ) {
//~ cout << v [ i ] << " ";
//~ }
}
signed main() {
ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
int t = 1; //test
//~ cin >> t;
while (t--) void_code ();
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |