이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |