답안 #938066

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
938066 2024-03-04T19:08:43 Z Andrey JJOOII 2 (JOI20_ho_t2) C++14
100 / 100
7 ms 4120 KB
#include<bits/stdc++.h>
using namespace std;

string s;
vector<int> bruh(200001);

int n,k;
int haha[200001][3];

void calc(int a) {
    int y = 0,br = 0;
    for(int i = 0; i < n; i++) {
        if(bruh[i] == a) {
            br++;
        }
        while(bruh[y] != a || br > k) {
            if(bruh[y] == a) {
                br--;
            }
            y++;
        }
        if(br >= k) {
            haha[i][a] = y;
        }
        else {
            haha[i][a] = -1;
        }
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin >> n >> k;
    cin >> s;
    for(int i = 0; i < n; i++) {
        if(s[i] == 'J') {
            bruh[i] = 0;
        }
        else if(s[i] == 'O') {
            bruh[i] = 1;
        }
        else {
            bruh[i] = 2;
        }
    }
    calc(0);
    calc(1);
    calc(2);
    int ans = INT_MAX;
    for(int i = 0; i < n; i++) {
        int c = i;
        c = haha[c][2];
        if(c == -1) {
            continue;
        }
        c = haha[c][1];
        if(c == -1) {
            continue;
        }
        c = haha[c][0];
        if(c == -1) {
            continue;
        }
        ans = min(ans,abs(i-c)+1);
    }
    if(ans == INT_MAX) {
        cout << -1;
    }
    else {
        cout << ans-3*k;
    }
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1116 KB Output is correct
2 Correct 1 ms 1116 KB Output is correct
3 Correct 1 ms 1116 KB Output is correct
4 Correct 1 ms 1116 KB Output is correct
5 Correct 1 ms 1116 KB Output is correct
6 Correct 1 ms 1112 KB Output is correct
7 Correct 1 ms 1112 KB Output is correct
8 Correct 1 ms 1116 KB Output is correct
9 Correct 1 ms 1116 KB Output is correct
10 Correct 1 ms 1116 KB Output is correct
11 Correct 1 ms 1116 KB Output is correct
12 Correct 1 ms 1116 KB Output is correct
13 Correct 1 ms 1116 KB Output is correct
14 Correct 1 ms 1116 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1116 KB Output is correct
2 Correct 1 ms 1116 KB Output is correct
3 Correct 1 ms 1116 KB Output is correct
4 Correct 1 ms 1116 KB Output is correct
5 Correct 1 ms 1116 KB Output is correct
6 Correct 1 ms 1112 KB Output is correct
7 Correct 1 ms 1112 KB Output is correct
8 Correct 1 ms 1116 KB Output is correct
9 Correct 1 ms 1116 KB Output is correct
10 Correct 1 ms 1116 KB Output is correct
11 Correct 1 ms 1116 KB Output is correct
12 Correct 1 ms 1116 KB Output is correct
13 Correct 1 ms 1116 KB Output is correct
14 Correct 1 ms 1116 KB Output is correct
15 Correct 1 ms 1116 KB Output is correct
16 Correct 1 ms 1116 KB Output is correct
17 Correct 1 ms 1116 KB Output is correct
18 Correct 1 ms 1116 KB Output is correct
19 Correct 1 ms 1116 KB Output is correct
20 Correct 1 ms 1116 KB Output is correct
21 Correct 1 ms 1116 KB Output is correct
22 Correct 1 ms 1116 KB Output is correct
23 Correct 1 ms 1116 KB Output is correct
24 Correct 1 ms 1116 KB Output is correct
25 Correct 1 ms 1116 KB Output is correct
26 Correct 1 ms 1116 KB Output is correct
27 Correct 1 ms 1116 KB Output is correct
28 Correct 1 ms 1116 KB Output is correct
29 Correct 1 ms 1116 KB Output is correct
30 Correct 1 ms 1264 KB Output is correct
31 Correct 1 ms 1116 KB Output is correct
32 Correct 1 ms 1116 KB Output is correct
33 Correct 1 ms 1260 KB Output is correct
34 Correct 1 ms 1116 KB Output is correct
35 Correct 1 ms 1112 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1116 KB Output is correct
2 Correct 1 ms 1116 KB Output is correct
3 Correct 1 ms 1116 KB Output is correct
4 Correct 1 ms 1116 KB Output is correct
5 Correct 1 ms 1116 KB Output is correct
6 Correct 1 ms 1112 KB Output is correct
7 Correct 1 ms 1112 KB Output is correct
8 Correct 1 ms 1116 KB Output is correct
9 Correct 1 ms 1116 KB Output is correct
10 Correct 1 ms 1116 KB Output is correct
11 Correct 1 ms 1116 KB Output is correct
12 Correct 1 ms 1116 KB Output is correct
13 Correct 1 ms 1116 KB Output is correct
14 Correct 1 ms 1116 KB Output is correct
15 Correct 1 ms 1116 KB Output is correct
16 Correct 1 ms 1116 KB Output is correct
17 Correct 1 ms 1116 KB Output is correct
18 Correct 1 ms 1116 KB Output is correct
19 Correct 1 ms 1116 KB Output is correct
20 Correct 1 ms 1116 KB Output is correct
21 Correct 1 ms 1116 KB Output is correct
22 Correct 1 ms 1116 KB Output is correct
23 Correct 1 ms 1116 KB Output is correct
24 Correct 1 ms 1116 KB Output is correct
25 Correct 1 ms 1116 KB Output is correct
26 Correct 1 ms 1116 KB Output is correct
27 Correct 1 ms 1116 KB Output is correct
28 Correct 1 ms 1116 KB Output is correct
29 Correct 1 ms 1116 KB Output is correct
30 Correct 1 ms 1264 KB Output is correct
31 Correct 1 ms 1116 KB Output is correct
32 Correct 1 ms 1116 KB Output is correct
33 Correct 1 ms 1260 KB Output is correct
34 Correct 1 ms 1116 KB Output is correct
35 Correct 1 ms 1112 KB Output is correct
36 Correct 6 ms 3812 KB Output is correct
37 Correct 6 ms 4068 KB Output is correct
38 Correct 6 ms 4072 KB Output is correct
39 Correct 7 ms 4076 KB Output is correct
40 Correct 6 ms 4072 KB Output is correct
41 Correct 7 ms 4120 KB Output is correct
42 Correct 7 ms 3880 KB Output is correct
43 Correct 4 ms 3676 KB Output is correct
44 Correct 5 ms 3816 KB Output is correct
45 Correct 5 ms 4076 KB Output is correct
46 Correct 6 ms 4072 KB Output is correct
47 Correct 6 ms 3972 KB Output is correct
48 Correct 6 ms 4120 KB Output is correct
49 Correct 4 ms 3816 KB Output is correct
50 Correct 6 ms 4072 KB Output is correct
51 Correct 6 ms 4072 KB Output is correct
52 Correct 3 ms 3816 KB Output is correct
53 Correct 3 ms 4072 KB Output is correct
54 Correct 3 ms 4072 KB Output is correct
55 Correct 3 ms 4072 KB Output is correct
56 Correct 2 ms 4072 KB Output is correct