Submission #924519

# Submission time Handle Problem Language Result Execution time Memory
924519 2024-02-09T07:11:55 Z mocha JJOOII 2 (JOI20_ho_t2) C++14
100 / 100
4 ms 1008 KB
#include <bits/stdc++.h>
using namespace std;
const int mx = 2e5+5;
const int inf = 1e9+1;

int n, k;
string st;

int main() {
    cin.tie(0);ios::sync_with_stdio(0);
    cin >> n >> k;
    cin >> st;
    int z, x, c, v, cj, co, ci;
    z = x = c = v = 0;
    cj = co = ci = 0;
    int ans = inf;
    while (z<n&&st[z]!='J') z++;
    x = z;
    while (x!=n&&cj<k) {
        if (st[x] == 'J') cj++;
        x++;
    }
    c = x;
    // cout << cj << " " << co << " " << ci << "\n";
    while (c!=n&&co<k) {
        if (st[c] == 'O') co++;
        c++;
    }
    v = c;
    while (v!=n&&ci<k) {
        if (st[v] == 'I') ci++;
        v++;
    }
    // cout << z << " " << x << " " << c << " " << v << " " << cj << " " << co << " " << ci << "owo\n";
    if (cj == k and co == k and ci == k) {
        ans = v-z-3*k;
    } else {
        cout << -1 << "\n";
        return 0;
    }
    for (;x<n;) {
        z++;
        while (z<n&&st[z]!='J') z++;
        cj--;
        while (x!=n&&cj<k) {
            if (st[x] == 'J') cj++;
            if (st[x] == 'O') co--;
            x++;
        }
        while (c!=n&&co<k) {
            if (st[c] == 'O') co++;
            if (st[c] == 'I') ci--;
            c++;
        }
        while (v!=n&&ci<k) {
            if (st[v] == 'I') ci++;
            v++;
        }
        if (cj == k and co == k and ci == k) {
            ans = min(ans,v-z-3*k);
        }
    }
    cout << ans << "\n";
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 344 KB Output is correct
21 Correct 0 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 456 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 1 ms 348 KB Output is correct
26 Correct 0 ms 348 KB Output is correct
27 Correct 0 ms 348 KB Output is correct
28 Correct 1 ms 348 KB Output is correct
29 Correct 0 ms 348 KB Output is correct
30 Correct 0 ms 348 KB Output is correct
31 Correct 1 ms 348 KB Output is correct
32 Correct 1 ms 348 KB Output is correct
33 Correct 0 ms 348 KB Output is correct
34 Correct 0 ms 348 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 344 KB Output is correct
21 Correct 0 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 456 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 1 ms 348 KB Output is correct
26 Correct 0 ms 348 KB Output is correct
27 Correct 0 ms 348 KB Output is correct
28 Correct 1 ms 348 KB Output is correct
29 Correct 0 ms 348 KB Output is correct
30 Correct 0 ms 348 KB Output is correct
31 Correct 1 ms 348 KB Output is correct
32 Correct 1 ms 348 KB Output is correct
33 Correct 0 ms 348 KB Output is correct
34 Correct 0 ms 348 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
36 Correct 4 ms 860 KB Output is correct
37 Correct 4 ms 860 KB Output is correct
38 Correct 4 ms 860 KB Output is correct
39 Correct 4 ms 860 KB Output is correct
40 Correct 3 ms 860 KB Output is correct
41 Correct 3 ms 860 KB Output is correct
42 Correct 4 ms 860 KB Output is correct
43 Correct 2 ms 604 KB Output is correct
44 Correct 2 ms 980 KB Output is correct
45 Correct 2 ms 848 KB Output is correct
46 Correct 3 ms 860 KB Output is correct
47 Correct 2 ms 876 KB Output is correct
48 Correct 2 ms 860 KB Output is correct
49 Correct 1 ms 860 KB Output is correct
50 Correct 1 ms 1008 KB Output is correct
51 Correct 1 ms 860 KB Output is correct
52 Correct 1 ms 856 KB Output is correct
53 Correct 1 ms 856 KB Output is correct
54 Correct 2 ms 856 KB Output is correct
55 Correct 2 ms 856 KB Output is correct
56 Correct 1 ms 860 KB Output is correct