Submission #1115181

# Submission time Handle Problem Language Result Execution time Memory
1115181 2024-11-20T08:11:59 Z staszic_ojuz JJOOII 2 (JOI20_ho_t2) C++17
13 / 100
2000 ms 848 KB
#include<bits/stdc++.h>
#ifdef _DEBUG
#define ls(x) << (x) << ", "
#define lv(x) << #x << ": " << flush << (x) << ", "
#define pr(x) cout << "Line: " << __LINE__ << ", " x << endl;
#else
#define ls(x)
#define lv(x)
#define pr(x) ;
#endif
using namespace std;
typedef unsigned int uint;

constexpr char J = 'J';
constexpr char O = 'O';
constexpr char I = 'I';
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    uint n, k;
    cin >> n >> k;
    string a;
    cin >> a;
    uint result = 1e9;
    for (uint i = 0; i < (n - 3*k + 1); i++) {
        if (a[i] != J) continue;
        pr(lv(i) lv(a[i]))
        uint curr = 0;
        uint num_j = 1;
        uint j = i + 1; // not current
        if (k > 1) {
            for (; j < n; j++) {
                if (a[j] == J) {
                    pr(ls("in j") lv(j) lv(a[j]))
                    num_j++;
                    if (num_j == k){
                        break;
                    }
                } else {
                    pr(ls("not j") lv(j) lv(a[j]))
                    curr++;
                }
            }
            j++;
            pr(lv(num_j))
            if (num_j < k) {
                break; // już nie będzie
            }
            pr()
        }
        uint num_o = 0;
        for (; j < n; j++) {
            if (a[j] == O) {
                pr(ls("in o") lv(j) lv(a[j]))
                num_o++;
                if (num_o == k) {
                    break;
                }
            } else {
                pr(ls("not o") lv(j) lv(a[j]))
                curr++;
            }
        }
        j++;
        pr(lv(num_o))
        if (num_o < k) {
            break;
        }
        pr()
        uint num_i = 0;
        for (; j < n; j++) {
            if (a[j] == I) {
                pr(ls("in i") lv(j) lv(a[j]))
                num_i++;
                if (num_i == k) {
                    break;
                }
            } else {
                pr(ls("not i") lv(j) lv(a[j]))
                curr++;
            }
        }
        j++;
        pr(lv(num_i))
        if (num_i < k) {
            break;
        }
        pr()
        result = min(result, curr);
    }
    if (result == 1e9) {
        cout << -1 << '\n';
        return 0;
    }
    cout << result << '\n';
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 1 ms 336 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
9 Correct 1 ms 336 KB Output is correct
10 Correct 1 ms 336 KB Output is correct
11 Correct 1 ms 588 KB Output is correct
12 Correct 1 ms 336 KB Output is correct
13 Correct 1 ms 336 KB Output is correct
14 Correct 1 ms 336 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 1 ms 336 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
9 Correct 1 ms 336 KB Output is correct
10 Correct 1 ms 336 KB Output is correct
11 Correct 1 ms 588 KB Output is correct
12 Correct 1 ms 336 KB Output is correct
13 Correct 1 ms 336 KB Output is correct
14 Correct 1 ms 336 KB Output is correct
15 Correct 1 ms 336 KB Output is correct
16 Correct 1 ms 336 KB Output is correct
17 Correct 1 ms 336 KB Output is correct
18 Correct 1 ms 336 KB Output is correct
19 Correct 1 ms 336 KB Output is correct
20 Correct 1 ms 336 KB Output is correct
21 Correct 2 ms 336 KB Output is correct
22 Correct 1 ms 336 KB Output is correct
23 Correct 1 ms 336 KB Output is correct
24 Correct 1 ms 336 KB Output is correct
25 Correct 1 ms 336 KB Output is correct
26 Correct 1 ms 336 KB Output is correct
27 Correct 1 ms 336 KB Output is correct
28 Correct 1 ms 336 KB Output is correct
29 Correct 1 ms 336 KB Output is correct
30 Correct 1 ms 336 KB Output is correct
31 Correct 1 ms 336 KB Output is correct
32 Correct 1 ms 336 KB Output is correct
33 Correct 2 ms 336 KB Output is correct
34 Correct 1 ms 336 KB Output is correct
35 Correct 1 ms 336 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 1 ms 336 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
9 Correct 1 ms 336 KB Output is correct
10 Correct 1 ms 336 KB Output is correct
11 Correct 1 ms 588 KB Output is correct
12 Correct 1 ms 336 KB Output is correct
13 Correct 1 ms 336 KB Output is correct
14 Correct 1 ms 336 KB Output is correct
15 Correct 1 ms 336 KB Output is correct
16 Correct 1 ms 336 KB Output is correct
17 Correct 1 ms 336 KB Output is correct
18 Correct 1 ms 336 KB Output is correct
19 Correct 1 ms 336 KB Output is correct
20 Correct 1 ms 336 KB Output is correct
21 Correct 2 ms 336 KB Output is correct
22 Correct 1 ms 336 KB Output is correct
23 Correct 1 ms 336 KB Output is correct
24 Correct 1 ms 336 KB Output is correct
25 Correct 1 ms 336 KB Output is correct
26 Correct 1 ms 336 KB Output is correct
27 Correct 1 ms 336 KB Output is correct
28 Correct 1 ms 336 KB Output is correct
29 Correct 1 ms 336 KB Output is correct
30 Correct 1 ms 336 KB Output is correct
31 Correct 1 ms 336 KB Output is correct
32 Correct 1 ms 336 KB Output is correct
33 Correct 2 ms 336 KB Output is correct
34 Correct 1 ms 336 KB Output is correct
35 Correct 1 ms 336 KB Output is correct
36 Correct 3 ms 732 KB Output is correct
37 Correct 3 ms 732 KB Output is correct
38 Correct 3 ms 732 KB Output is correct
39 Correct 1962 ms 732 KB Output is correct
40 Execution timed out 2062 ms 848 KB Time limit exceeded
41 Halted 0 ms 0 KB -