Submission #956181

# Submission time Handle Problem Language Result Execution time Memory
956181 2024-04-01T09:02:53 Z samvar_0907 JJOOII 2 (JOI20_ho_t2) C++17
100 / 100
10 ms 3364 KB
#include <bits/stdc++.h>
using namespace std;

int main() {

    int n, k;
    cin >> n >> k;
    string s;
    cin >> s;
    int positions[n][3];
    string opt = "JOI";

    for (int i = 0; i < 3; i++) {
        int leftPointer = 0, rightPointer = 0, count = 0;
        if (s[0] == opt[i]){
            count++;
        }
        while (leftPointer < n) {
            while (count < k && rightPointer < n) {
                rightPointer++;
                if (rightPointer == n){
                    break;;
                }
                if (s[rightPointer] == opt[i]){
                    count++;
                }
            }
            if (count < k) {
                positions[leftPointer][i] = INT_MAX;
                leftPointer++;
                continue;
            }
            positions[leftPointer][i] = rightPointer;
            if (s[leftPointer] == opt[i]){
                count--;
            }
            leftPointer++;
        }
    }

    int ans = INT_MAX;
    for (int i = 0; i < n; i++) {
        int leftPointer = i, rightPointer = positions[i][0];
        for (int j = 1; j < 3; j++) {
            if (rightPointer == INT_MAX){
                continue;
            }
            rightPointer = positions[rightPointer][j];
        }
        ans = min(ans, rightPointer - leftPointer + 1 - 3 * k);
    }
    if (ans > n)
        cout << -1;
    else
        cout << ans;
}

# 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 600 KB Output is correct
4 Correct 0 ms 436 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 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 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 1 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 600 KB Output is correct
4 Correct 0 ms 436 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 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 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 1 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 1 ms 348 KB Output is correct
21 Correct 1 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 1 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 1 ms 348 KB Output is correct
26 Correct 1 ms 424 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 344 KB Output is correct
30 Correct 0 ms 348 KB Output is correct
31 Correct 0 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 1 ms 348 KB Output is correct
35 Correct 1 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 600 KB Output is correct
4 Correct 0 ms 436 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 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 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 1 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 1 ms 348 KB Output is correct
21 Correct 1 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 1 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 1 ms 348 KB Output is correct
26 Correct 1 ms 424 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 344 KB Output is correct
30 Correct 0 ms 348 KB Output is correct
31 Correct 0 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 1 ms 348 KB Output is correct
35 Correct 1 ms 348 KB Output is correct
36 Correct 7 ms 3052 KB Output is correct
37 Correct 8 ms 3304 KB Output is correct
38 Correct 8 ms 3364 KB Output is correct
39 Correct 10 ms 3052 KB Output is correct
40 Correct 8 ms 3308 KB Output is correct
41 Correct 9 ms 3112 KB Output is correct
42 Correct 10 ms 3152 KB Output is correct
43 Correct 6 ms 2184 KB Output is correct
44 Correct 6 ms 2540 KB Output is correct
45 Correct 8 ms 3308 KB Output is correct
46 Correct 8 ms 3308 KB Output is correct
47 Correct 8 ms 3104 KB Output is correct
48 Correct 8 ms 3112 KB Output is correct
49 Correct 6 ms 2284 KB Output is correct
50 Correct 8 ms 3308 KB Output is correct
51 Correct 8 ms 3112 KB Output is correct
52 Correct 6 ms 3052 KB Output is correct
53 Correct 7 ms 3112 KB Output is correct
54 Correct 6 ms 3308 KB Output is correct
55 Correct 5 ms 3232 KB Output is correct
56 Correct 6 ms 3112 KB Output is correct