Submission #288813

# Submission time Handle Problem Language Result Execution time Memory
288813 2020-09-01T23:06:07 Z Leonardo_Paes JJOOII 2 (JOI20_ho_t2) C++17
100 / 100
8 ms 1676 KB
#include <bits/stdc++.h>
using namespace std;
int main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int n, k;
    cin >> n >> k;
    string s;
    cin >> s;
    deque<int> J, O, I, aux;
    for(int i=0; i<n; i++){
        if(s[i] == 'J') J.push_back(i);
        else if(s[i] == 'O') O.push_back(i);
        else I.push_back(i);
    }
    int ans = 0x3f3f3f3f;
    for(int j=0, o=0; I.size() >= k and o+k <= O.size(); o++){
        int l = O[o], r = O[o+k-1];
        while(j<J.size() and J[j] < l) aux.push_back(J[j++]);
        while(aux.size() > k) aux.pop_front();
        while(!I.empty() and I.front() < r) I.pop_front();
        if(aux.size() == k and I.size() >= k) ans = min(ans, (I[k-1] - aux[0] + 1) - 3*k);
    }
    cout << (ans == 0x3f3f3f3f ? -1 : ans) << "\n";
    return 0;
}

Compilation message

ho_t2.cpp: In function 'int main()':
ho_t2.cpp:16:32: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   16 |     for(int j=0, o=0; I.size() >= k and o+k <= O.size(); o++){
      |                       ~~~~~~~~~^~~~
ho_t2.cpp:16:45: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |     for(int j=0, o=0; I.size() >= k and o+k <= O.size(); o++){
      |                                         ~~~~^~~~~~~~~~~
ho_t2.cpp:18:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |         while(j<J.size() and J[j] < l) aux.push_back(J[j++]);
      |               ~^~~~~~~~~
ho_t2.cpp:19:26: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   19 |         while(aux.size() > k) aux.pop_front();
      |               ~~~~~~~~~~~^~~
ho_t2.cpp:21:23: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   21 |         if(aux.size() == k and I.size() >= k) ans = min(ans, (I[k-1] - aux[0] + 1) - 3*k);
      |            ~~~~~~~~~~~^~~~
ho_t2.cpp:21:41: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   21 |         if(aux.size() == k and I.size() >= k) ans = min(ans, (I[k-1] - aux[0] + 1) - 3*k);
      |                                ~~~~~~~~~^~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 0 ms 384 KB Output is correct
5 Correct 0 ms 384 KB Output is correct
6 Correct 0 ms 384 KB Output is correct
7 Correct 0 ms 384 KB Output is correct
8 Correct 0 ms 384 KB Output is correct
9 Correct 0 ms 384 KB Output is correct
10 Correct 1 ms 384 KB Output is correct
11 Correct 0 ms 384 KB Output is correct
12 Correct 1 ms 384 KB Output is correct
13 Correct 0 ms 384 KB Output is correct
14 Correct 0 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 0 ms 384 KB Output is correct
5 Correct 0 ms 384 KB Output is correct
6 Correct 0 ms 384 KB Output is correct
7 Correct 0 ms 384 KB Output is correct
8 Correct 0 ms 384 KB Output is correct
9 Correct 0 ms 384 KB Output is correct
10 Correct 1 ms 384 KB Output is correct
11 Correct 0 ms 384 KB Output is correct
12 Correct 1 ms 384 KB Output is correct
13 Correct 0 ms 384 KB Output is correct
14 Correct 0 ms 384 KB Output is correct
15 Correct 0 ms 384 KB Output is correct
16 Correct 1 ms 384 KB Output is correct
17 Correct 1 ms 384 KB Output is correct
18 Correct 0 ms 384 KB Output is correct
19 Correct 0 ms 384 KB Output is correct
20 Correct 0 ms 384 KB Output is correct
21 Correct 1 ms 384 KB Output is correct
22 Correct 1 ms 384 KB Output is correct
23 Correct 0 ms 384 KB Output is correct
24 Correct 0 ms 384 KB Output is correct
25 Correct 1 ms 384 KB Output is correct
26 Correct 0 ms 384 KB Output is correct
27 Correct 0 ms 384 KB Output is correct
28 Correct 1 ms 384 KB Output is correct
29 Correct 1 ms 384 KB Output is correct
30 Correct 0 ms 384 KB Output is correct
31 Correct 0 ms 384 KB Output is correct
32 Correct 0 ms 384 KB Output is correct
33 Correct 0 ms 384 KB Output is correct
34 Correct 1 ms 384 KB Output is correct
35 Correct 0 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 0 ms 384 KB Output is correct
5 Correct 0 ms 384 KB Output is correct
6 Correct 0 ms 384 KB Output is correct
7 Correct 0 ms 384 KB Output is correct
8 Correct 0 ms 384 KB Output is correct
9 Correct 0 ms 384 KB Output is correct
10 Correct 1 ms 384 KB Output is correct
11 Correct 0 ms 384 KB Output is correct
12 Correct 1 ms 384 KB Output is correct
13 Correct 0 ms 384 KB Output is correct
14 Correct 0 ms 384 KB Output is correct
15 Correct 0 ms 384 KB Output is correct
16 Correct 1 ms 384 KB Output is correct
17 Correct 1 ms 384 KB Output is correct
18 Correct 0 ms 384 KB Output is correct
19 Correct 0 ms 384 KB Output is correct
20 Correct 0 ms 384 KB Output is correct
21 Correct 1 ms 384 KB Output is correct
22 Correct 1 ms 384 KB Output is correct
23 Correct 0 ms 384 KB Output is correct
24 Correct 0 ms 384 KB Output is correct
25 Correct 1 ms 384 KB Output is correct
26 Correct 0 ms 384 KB Output is correct
27 Correct 0 ms 384 KB Output is correct
28 Correct 1 ms 384 KB Output is correct
29 Correct 1 ms 384 KB Output is correct
30 Correct 0 ms 384 KB Output is correct
31 Correct 0 ms 384 KB Output is correct
32 Correct 0 ms 384 KB Output is correct
33 Correct 0 ms 384 KB Output is correct
34 Correct 1 ms 384 KB Output is correct
35 Correct 0 ms 384 KB Output is correct
36 Correct 7 ms 1292 KB Output is correct
37 Correct 7 ms 1420 KB Output is correct
38 Correct 7 ms 1420 KB Output is correct
39 Correct 8 ms 1420 KB Output is correct
40 Correct 5 ms 1420 KB Output is correct
41 Correct 6 ms 1420 KB Output is correct
42 Correct 7 ms 1420 KB Output is correct
43 Correct 3 ms 1024 KB Output is correct
44 Correct 4 ms 1164 KB Output is correct
45 Correct 5 ms 1420 KB Output is correct
46 Correct 5 ms 1420 KB Output is correct
47 Correct 5 ms 1440 KB Output is correct
48 Correct 5 ms 1420 KB Output is correct
49 Correct 3 ms 1036 KB Output is correct
50 Correct 5 ms 1420 KB Output is correct
51 Correct 5 ms 1420 KB Output is correct
52 Correct 4 ms 1292 KB Output is correct
53 Correct 4 ms 1420 KB Output is correct
54 Correct 4 ms 1676 KB Output is correct
55 Correct 3 ms 1676 KB Output is correct
56 Correct 2 ms 1676 KB Output is correct