Submission #652742

# Submission time Handle Problem Language Result Execution time Memory
652742 2022-10-24T04:51:13 Z alvinpiter Paint By Numbers (IOI16_paint) C++14
100 / 100
228 ms 85188 KB
/*
color -> 0 means white, 1 means black

dpPrefix[j][k][color] -> Can the first j character obey the first k rules such that the j-th character is painted "color"
dpSuffix[j][k][color] -> Can the suffix starting from j-th character obey the rules starting from the k-th such that s[j] is painted "color"

For each index j, define:
canBlack[j] -> > 0 if there is a solution such that s[j] is painted black, 0 otherwise.
canWhite[j] -> > 0 if there is a solution such that s[j] is painted white, 0 otherwise.

canBlack[j] = dpPrefix[j][k][1] && dpSuffix[j + 1][k + 1][0]
canWhite[j] = dpPrefix[j][k][0] && (dpSuffix[j + 1][k + 1][0] || dpSuffix[j + 1][k + 1][1])
Try every possible k.

Complexity: O(NK)
*/

#include "paint.h"
#include<bits/stdc++.h>
using namespace std;
#define MAXN 200000
#define MAXK 100

bool dpPrefix[MAXN + 3][MAXK + 3][2], dpSuffix[MAXN + 3][MAXK + 3][2];
int canBlack[MAXN + 3], canWhite[MAXN + 3];
int cntBlack[MAXN + 3], cntWhite[MAXN + 3];

std::string solve_puzzle(std::string s, std::vector<int> c) {
  int N = s.length();
  int K = c.size();

  cntBlack[0] = cntWhite[0] = 0;
  for (int i = 1; i <= N; i++) {
    cntBlack[i] = cntBlack[i - 1] + (s[i - 1] == 'X' ? 1 : 0);
    cntWhite[i] = cntWhite[i - 1] + (s[i - 1] == '_' ? 1 : 0);
  }

  dpPrefix[0][0][0] = true;
  dpPrefix[0][0][1] = false;
  for (int k = 1; k <= K; k++) {
    dpPrefix[0][k][0] = dpPrefix[0][k][1] = false;
  }
  for (int i = 1; i <= N; i++) {
    dpPrefix[i][0][0] = (cntBlack[i] == 0);
    dpPrefix[i][0][1] = false;
  }

  for (int i = 1; i <= N; i++) {
    for (int k = 1; k <= K; k++) {
      if (s[i - 1] == 'X') {
        dpPrefix[i][k][0] = false;
      } else {
        dpPrefix[i][k][0] = dpPrefix[i - 1][k][0] || dpPrefix[i - 1][k][1];
      }

      if (s[i - 1] == '_') {
        dpPrefix[i][k][1] = false;
      } else {
        dpPrefix[i][k][1] = (i >= c[k - 1] && (cntWhite[i] - cntWhite[i - c[k - 1]] == 0) && dpPrefix[i - c[k - 1]][k - 1][0]);
      }
    }
  }

  dpSuffix[N + 1][K + 1][0] = true;
  dpSuffix[N + 1][K + 1][1] = false;
  for (int k = 1; k <= K; k++) {
    dpSuffix[N + 1][k][0] = dpSuffix[N + 1][k][1] = false;
  }
  for (int i = 1; i <= N; i++) {
    dpSuffix[i][K + 1][0] = (cntBlack[N] - cntBlack[i - 1]) == 0;
    dpSuffix[i][K + 1][1] = false;
  }

  for (int i = N; i >= 1; i--) {
    for (int k = 1; k <= K; k++) {
      if (s[i - 1] == 'X') {
        dpSuffix[i][k][0] = false;
      } else {
        dpSuffix[i][k][0] = dpSuffix[i + 1][k][0] || dpSuffix[i + 1][k][1];
      }

      if (s[i - 1] == '_') {
        dpSuffix[i][k][1] = false;
      } else {
        dpSuffix[i][k][1] = (N - i + 1 >= c[k - 1] && (cntWhite[i + c[k - 1] - 1] - cntWhite[i - 1] == 0) && dpSuffix[i + c[k - 1]][k + 1][0]);
      }
    }
  }

  memset(canBlack, 0, sizeof(canBlack));
  memset(canWhite, 0, sizeof(canWhite));
  for (int i = 1; i <= N; i++) {
    bool canBeBlack = false, canBeWhite = false;
    for (int k = 0; k <= K; k++) {
      bool canBeBlack = (dpPrefix[i][k][1] && dpSuffix[i + 1][k + 1][0]);
      bool canBeWhite = (dpPrefix[i][k][0] && (dpSuffix[i + 1][k + 1][0] || dpSuffix[i + 1][k + 1][1]));

      if (canBeBlack) {
        canBlack[i - c[k - 1] + 1] += 1;
        canBlack[i + 1] -= 1;
      }

      if (canBeWhite) {
        canWhite[i] += 1;
        canWhite[i + 1] -= 1;
      }
    }
  }

  for (int i = 1; i <= N; i++) {
    canBlack[i] += canBlack[i - 1];
    canWhite[i] += canWhite[i - 1];
  }

  string result = "";
  for (int i = 1; i <= N; i++) {
    if (canBlack[i] > 0 && canWhite[i] > 0) {
      result += '?';
    } else if (canBlack[i] > 0) {
      result += 'X';
    } else if (canWhite[i] > 0) {
      result += '_';
    }
  }

  return result;
}

Compilation message

paint.cpp: In function 'std::string solve_puzzle(std::string, std::vector<int>)':
paint.cpp:93:10: warning: unused variable 'canBeBlack' [-Wunused-variable]
   93 |     bool canBeBlack = false, canBeWhite = false;
      |          ^~~~~~~~~~
paint.cpp:93:30: warning: unused variable 'canBeWhite' [-Wunused-variable]
   93 |     bool canBeBlack = false, canBeWhite = false;
      |                              ^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1876 KB n = 13, m = 1
2 Correct 1 ms 1876 KB n = 18, m = 1
3 Correct 2 ms 1876 KB n = 17, m = 1
4 Correct 1 ms 1876 KB n = 1, m = 1
5 Correct 1 ms 1876 KB n = 20, m = 1
6 Correct 1 ms 1876 KB n = 20, m = 1
7 Correct 1 ms 1876 KB n = 20, m = 1
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1876 KB n = 13, m = 1
2 Correct 1 ms 1876 KB n = 18, m = 1
3 Correct 2 ms 1876 KB n = 17, m = 1
4 Correct 1 ms 1876 KB n = 1, m = 1
5 Correct 1 ms 1876 KB n = 20, m = 1
6 Correct 1 ms 1876 KB n = 20, m = 1
7 Correct 1 ms 1876 KB n = 20, m = 1
8 Correct 1 ms 1876 KB n = 20, m = 5
9 Correct 1 ms 1876 KB n = 18, m = 3
10 Correct 1 ms 1876 KB n = 17, m = 2
11 Correct 2 ms 1876 KB n = 20, m = 2
12 Correct 1 ms 1876 KB n = 17, m = 4
13 Correct 1 ms 1876 KB n = 17, m = 6
14 Correct 1 ms 1876 KB n = 17, m = 1
15 Correct 1 ms 1876 KB n = 17, m = 4
16 Correct 1 ms 1876 KB n = 13, m = 3
17 Correct 1 ms 1876 KB n = 18, m = 4
18 Correct 1 ms 1876 KB n = 20, m = 10
19 Correct 1 ms 1876 KB n = 19, m = 10
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1876 KB n = 13, m = 1
2 Correct 1 ms 1876 KB n = 18, m = 1
3 Correct 2 ms 1876 KB n = 17, m = 1
4 Correct 1 ms 1876 KB n = 1, m = 1
5 Correct 1 ms 1876 KB n = 20, m = 1
6 Correct 1 ms 1876 KB n = 20, m = 1
7 Correct 1 ms 1876 KB n = 20, m = 1
8 Correct 1 ms 1876 KB n = 20, m = 5
9 Correct 1 ms 1876 KB n = 18, m = 3
10 Correct 1 ms 1876 KB n = 17, m = 2
11 Correct 2 ms 1876 KB n = 20, m = 2
12 Correct 1 ms 1876 KB n = 17, m = 4
13 Correct 1 ms 1876 KB n = 17, m = 6
14 Correct 1 ms 1876 KB n = 17, m = 1
15 Correct 1 ms 1876 KB n = 17, m = 4
16 Correct 1 ms 1876 KB n = 13, m = 3
17 Correct 1 ms 1876 KB n = 18, m = 4
18 Correct 1 ms 1876 KB n = 20, m = 10
19 Correct 1 ms 1876 KB n = 19, m = 10
20 Correct 1 ms 1876 KB n = 100, m = 5
21 Correct 1 ms 1876 KB n = 90, m = 3
22 Correct 1 ms 1876 KB n = 86, m = 2
23 Correct 1 ms 1876 KB n = 81, m = 4
24 Correct 2 ms 1876 KB n = 89, m = 10
25 Correct 1 ms 1876 KB n = 81, m = 23
26 Correct 1 ms 1876 KB n = 86, m = 8
27 Correct 1 ms 1876 KB n = 53, m = 22
28 Correct 1 ms 1876 KB n = 89, m = 35
29 Correct 1 ms 1876 KB n = 63, m = 25
30 Correct 1 ms 1876 KB n = 100, m = 50
31 Correct 1 ms 1876 KB n = 99, m = 50
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1876 KB n = 13, m = 1
2 Correct 1 ms 1876 KB n = 18, m = 1
3 Correct 2 ms 1876 KB n = 17, m = 1
4 Correct 1 ms 1876 KB n = 1, m = 1
5 Correct 1 ms 1876 KB n = 20, m = 1
6 Correct 1 ms 1876 KB n = 20, m = 1
7 Correct 1 ms 1876 KB n = 20, m = 1
8 Correct 1 ms 1876 KB n = 20, m = 5
9 Correct 1 ms 1876 KB n = 18, m = 3
10 Correct 1 ms 1876 KB n = 17, m = 2
11 Correct 2 ms 1876 KB n = 20, m = 2
12 Correct 1 ms 1876 KB n = 17, m = 4
13 Correct 1 ms 1876 KB n = 17, m = 6
14 Correct 1 ms 1876 KB n = 17, m = 1
15 Correct 1 ms 1876 KB n = 17, m = 4
16 Correct 1 ms 1876 KB n = 13, m = 3
17 Correct 1 ms 1876 KB n = 18, m = 4
18 Correct 1 ms 1876 KB n = 20, m = 10
19 Correct 1 ms 1876 KB n = 19, m = 10
20 Correct 1 ms 1876 KB n = 100, m = 5
21 Correct 1 ms 1876 KB n = 90, m = 3
22 Correct 1 ms 1876 KB n = 86, m = 2
23 Correct 1 ms 1876 KB n = 81, m = 4
24 Correct 2 ms 1876 KB n = 89, m = 10
25 Correct 1 ms 1876 KB n = 81, m = 23
26 Correct 1 ms 1876 KB n = 86, m = 8
27 Correct 1 ms 1876 KB n = 53, m = 22
28 Correct 1 ms 1876 KB n = 89, m = 35
29 Correct 1 ms 1876 KB n = 63, m = 25
30 Correct 1 ms 1876 KB n = 100, m = 50
31 Correct 1 ms 1876 KB n = 99, m = 50
32 Correct 1 ms 1876 KB n = 13, m = 4
33 Correct 2 ms 1876 KB n = 86, m = 2
34 Correct 2 ms 1876 KB n = 88, m = 2
35 Correct 1 ms 1876 KB n = 86, m = 2
36 Correct 2 ms 1844 KB n = 81, m = 6
37 Correct 1 ms 1876 KB n = 98, m = 7
38 Correct 1 ms 1876 KB n = 92, m = 7
39 Correct 1 ms 1876 KB n = 88, m = 21
40 Correct 1 ms 1876 KB n = 90, m = 21
41 Correct 1 ms 1876 KB n = 98, m = 22
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1876 KB n = 13, m = 1
2 Correct 1 ms 1876 KB n = 18, m = 1
3 Correct 2 ms 1876 KB n = 17, m = 1
4 Correct 1 ms 1876 KB n = 1, m = 1
5 Correct 1 ms 1876 KB n = 20, m = 1
6 Correct 1 ms 1876 KB n = 20, m = 1
7 Correct 1 ms 1876 KB n = 20, m = 1
8 Correct 1 ms 1876 KB n = 20, m = 5
9 Correct 1 ms 1876 KB n = 18, m = 3
10 Correct 1 ms 1876 KB n = 17, m = 2
11 Correct 2 ms 1876 KB n = 20, m = 2
12 Correct 1 ms 1876 KB n = 17, m = 4
13 Correct 1 ms 1876 KB n = 17, m = 6
14 Correct 1 ms 1876 KB n = 17, m = 1
15 Correct 1 ms 1876 KB n = 17, m = 4
16 Correct 1 ms 1876 KB n = 13, m = 3
17 Correct 1 ms 1876 KB n = 18, m = 4
18 Correct 1 ms 1876 KB n = 20, m = 10
19 Correct 1 ms 1876 KB n = 19, m = 10
20 Correct 1 ms 1876 KB n = 100, m = 5
21 Correct 1 ms 1876 KB n = 90, m = 3
22 Correct 1 ms 1876 KB n = 86, m = 2
23 Correct 1 ms 1876 KB n = 81, m = 4
24 Correct 2 ms 1876 KB n = 89, m = 10
25 Correct 1 ms 1876 KB n = 81, m = 23
26 Correct 1 ms 1876 KB n = 86, m = 8
27 Correct 1 ms 1876 KB n = 53, m = 22
28 Correct 1 ms 1876 KB n = 89, m = 35
29 Correct 1 ms 1876 KB n = 63, m = 25
30 Correct 1 ms 1876 KB n = 100, m = 50
31 Correct 1 ms 1876 KB n = 99, m = 50
32 Correct 1 ms 1876 KB n = 13, m = 4
33 Correct 2 ms 1876 KB n = 86, m = 2
34 Correct 2 ms 1876 KB n = 88, m = 2
35 Correct 1 ms 1876 KB n = 86, m = 2
36 Correct 2 ms 1844 KB n = 81, m = 6
37 Correct 1 ms 1876 KB n = 98, m = 7
38 Correct 1 ms 1876 KB n = 92, m = 7
39 Correct 1 ms 1876 KB n = 88, m = 21
40 Correct 1 ms 1876 KB n = 90, m = 21
41 Correct 1 ms 1876 KB n = 98, m = 22
42 Correct 1 ms 1876 KB n = 11, m = 2
43 Correct 1 ms 1876 KB n = 11, m = 2
44 Correct 2 ms 1848 KB n = 13, m = 3
45 Correct 1 ms 1876 KB n = 86, m = 2
46 Correct 1 ms 1876 KB n = 81, m = 2
47 Correct 1 ms 1876 KB n = 93, m = 2
48 Correct 1 ms 1876 KB n = 81, m = 2
49 Correct 2 ms 1876 KB n = 86, m = 2
50 Correct 2 ms 1876 KB n = 90, m = 2
51 Correct 1 ms 1876 KB n = 87, m = 2
52 Correct 1 ms 1848 KB n = 97, m = 2
53 Correct 1 ms 1876 KB n = 85, m = 2
54 Correct 1 ms 1848 KB n = 88, m = 7
55 Correct 2 ms 1876 KB n = 96, m = 7
56 Correct 2 ms 1876 KB n = 85, m = 7
57 Correct 2 ms 1848 KB n = 92, m = 7
58 Correct 1 ms 1848 KB n = 92, m = 7
59 Correct 1 ms 1876 KB n = 86, m = 7
60 Correct 1 ms 1848 KB n = 87, m = 7
61 Correct 1 ms 1844 KB n = 100, m = 7
62 Correct 1 ms 1876 KB n = 100, m = 7
63 Correct 2 ms 1848 KB n = 92, m = 21
64 Correct 1 ms 1876 KB n = 93, m = 22
65 Correct 2 ms 1848 KB n = 95, m = 22
66 Correct 1 ms 1876 KB n = 98, m = 22
67 Correct 1 ms 1876 KB n = 94, m = 22
68 Correct 1 ms 1876 KB n = 93, m = 22
69 Correct 1 ms 1876 KB n = 88, m = 21
70 Correct 1 ms 1876 KB n = 83, m = 20
71 Correct 1 ms 1876 KB n = 99, m = 23
72 Correct 2 ms 1876 KB n = 96, m = 19
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1876 KB n = 13, m = 1
2 Correct 1 ms 1876 KB n = 18, m = 1
3 Correct 2 ms 1876 KB n = 17, m = 1
4 Correct 1 ms 1876 KB n = 1, m = 1
5 Correct 1 ms 1876 KB n = 20, m = 1
6 Correct 1 ms 1876 KB n = 20, m = 1
7 Correct 1 ms 1876 KB n = 20, m = 1
8 Correct 1 ms 1876 KB n = 20, m = 5
9 Correct 1 ms 1876 KB n = 18, m = 3
10 Correct 1 ms 1876 KB n = 17, m = 2
11 Correct 2 ms 1876 KB n = 20, m = 2
12 Correct 1 ms 1876 KB n = 17, m = 4
13 Correct 1 ms 1876 KB n = 17, m = 6
14 Correct 1 ms 1876 KB n = 17, m = 1
15 Correct 1 ms 1876 KB n = 17, m = 4
16 Correct 1 ms 1876 KB n = 13, m = 3
17 Correct 1 ms 1876 KB n = 18, m = 4
18 Correct 1 ms 1876 KB n = 20, m = 10
19 Correct 1 ms 1876 KB n = 19, m = 10
20 Correct 1 ms 1876 KB n = 100, m = 5
21 Correct 1 ms 1876 KB n = 90, m = 3
22 Correct 1 ms 1876 KB n = 86, m = 2
23 Correct 1 ms 1876 KB n = 81, m = 4
24 Correct 2 ms 1876 KB n = 89, m = 10
25 Correct 1 ms 1876 KB n = 81, m = 23
26 Correct 1 ms 1876 KB n = 86, m = 8
27 Correct 1 ms 1876 KB n = 53, m = 22
28 Correct 1 ms 1876 KB n = 89, m = 35
29 Correct 1 ms 1876 KB n = 63, m = 25
30 Correct 1 ms 1876 KB n = 100, m = 50
31 Correct 1 ms 1876 KB n = 99, m = 50
32 Correct 1 ms 1876 KB n = 13, m = 4
33 Correct 2 ms 1876 KB n = 86, m = 2
34 Correct 2 ms 1876 KB n = 88, m = 2
35 Correct 1 ms 1876 KB n = 86, m = 2
36 Correct 2 ms 1844 KB n = 81, m = 6
37 Correct 1 ms 1876 KB n = 98, m = 7
38 Correct 1 ms 1876 KB n = 92, m = 7
39 Correct 1 ms 1876 KB n = 88, m = 21
40 Correct 1 ms 1876 KB n = 90, m = 21
41 Correct 1 ms 1876 KB n = 98, m = 22
42 Correct 1 ms 1876 KB n = 11, m = 2
43 Correct 1 ms 1876 KB n = 11, m = 2
44 Correct 2 ms 1848 KB n = 13, m = 3
45 Correct 1 ms 1876 KB n = 86, m = 2
46 Correct 1 ms 1876 KB n = 81, m = 2
47 Correct 1 ms 1876 KB n = 93, m = 2
48 Correct 1 ms 1876 KB n = 81, m = 2
49 Correct 2 ms 1876 KB n = 86, m = 2
50 Correct 2 ms 1876 KB n = 90, m = 2
51 Correct 1 ms 1876 KB n = 87, m = 2
52 Correct 1 ms 1848 KB n = 97, m = 2
53 Correct 1 ms 1876 KB n = 85, m = 2
54 Correct 1 ms 1848 KB n = 88, m = 7
55 Correct 2 ms 1876 KB n = 96, m = 7
56 Correct 2 ms 1876 KB n = 85, m = 7
57 Correct 2 ms 1848 KB n = 92, m = 7
58 Correct 1 ms 1848 KB n = 92, m = 7
59 Correct 1 ms 1876 KB n = 86, m = 7
60 Correct 1 ms 1848 KB n = 87, m = 7
61 Correct 1 ms 1844 KB n = 100, m = 7
62 Correct 1 ms 1876 KB n = 100, m = 7
63 Correct 2 ms 1848 KB n = 92, m = 21
64 Correct 1 ms 1876 KB n = 93, m = 22
65 Correct 2 ms 1848 KB n = 95, m = 22
66 Correct 1 ms 1876 KB n = 98, m = 22
67 Correct 1 ms 1876 KB n = 94, m = 22
68 Correct 1 ms 1876 KB n = 93, m = 22
69 Correct 1 ms 1876 KB n = 88, m = 21
70 Correct 1 ms 1876 KB n = 83, m = 20
71 Correct 1 ms 1876 KB n = 99, m = 23
72 Correct 2 ms 1876 KB n = 96, m = 19
73 Correct 3 ms 3796 KB n = 4825, m = 5
74 Correct 3 ms 3644 KB n = 4384, m = 5
75 Correct 2 ms 3796 KB n = 4528, m = 5
76 Correct 2 ms 3924 KB n = 4980, m = 5
77 Correct 2 ms 3796 KB n = 4730, m = 5
78 Correct 2 ms 3904 KB n = 4784, m = 5
79 Correct 2 ms 3924 KB n = 4875, m = 5
80 Correct 2 ms 3784 KB n = 4576, m = 5
81 Correct 2 ms 3668 KB n = 4297, m = 5
82 Correct 4 ms 3796 KB n = 4662, m = 48
83 Correct 6 ms 3852 KB n = 4753, m = 49
84 Correct 6 ms 3516 KB n = 4148, m = 46
85 Correct 4 ms 3924 KB n = 4906, m = 50
86 Correct 4 ms 3924 KB n = 4967, m = 50
87 Correct 4 ms 3796 KB n = 4828, m = 49
88 Correct 3 ms 3520 KB n = 4105, m = 45
89 Correct 4 ms 3896 KB n = 4954, m = 50
90 Correct 4 ms 3924 KB n = 4884, m = 49
91 Correct 5 ms 3644 KB n = 4307, m = 100
92 Correct 6 ms 3768 KB n = 4668, m = 100
93 Correct 7 ms 3796 KB n = 4647, m = 100
94 Correct 6 ms 3668 KB n = 4372, m = 100
95 Correct 6 ms 3888 KB n = 4791, m = 100
96 Correct 6 ms 3540 KB n = 4029, m = 100
97 Correct 6 ms 3668 KB n = 4439, m = 100
98 Correct 5 ms 3540 KB n = 4018, m = 100
99 Correct 7 ms 3924 KB n = 4979, m = 100
100 Correct 5 ms 3924 KB n = 4996, m = 89
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1876 KB n = 13, m = 1
2 Correct 1 ms 1876 KB n = 18, m = 1
3 Correct 2 ms 1876 KB n = 17, m = 1
4 Correct 1 ms 1876 KB n = 1, m = 1
5 Correct 1 ms 1876 KB n = 20, m = 1
6 Correct 1 ms 1876 KB n = 20, m = 1
7 Correct 1 ms 1876 KB n = 20, m = 1
8 Correct 1 ms 1876 KB n = 20, m = 5
9 Correct 1 ms 1876 KB n = 18, m = 3
10 Correct 1 ms 1876 KB n = 17, m = 2
11 Correct 2 ms 1876 KB n = 20, m = 2
12 Correct 1 ms 1876 KB n = 17, m = 4
13 Correct 1 ms 1876 KB n = 17, m = 6
14 Correct 1 ms 1876 KB n = 17, m = 1
15 Correct 1 ms 1876 KB n = 17, m = 4
16 Correct 1 ms 1876 KB n = 13, m = 3
17 Correct 1 ms 1876 KB n = 18, m = 4
18 Correct 1 ms 1876 KB n = 20, m = 10
19 Correct 1 ms 1876 KB n = 19, m = 10
20 Correct 1 ms 1876 KB n = 100, m = 5
21 Correct 1 ms 1876 KB n = 90, m = 3
22 Correct 1 ms 1876 KB n = 86, m = 2
23 Correct 1 ms 1876 KB n = 81, m = 4
24 Correct 2 ms 1876 KB n = 89, m = 10
25 Correct 1 ms 1876 KB n = 81, m = 23
26 Correct 1 ms 1876 KB n = 86, m = 8
27 Correct 1 ms 1876 KB n = 53, m = 22
28 Correct 1 ms 1876 KB n = 89, m = 35
29 Correct 1 ms 1876 KB n = 63, m = 25
30 Correct 1 ms 1876 KB n = 100, m = 50
31 Correct 1 ms 1876 KB n = 99, m = 50
32 Correct 1 ms 1876 KB n = 13, m = 4
33 Correct 2 ms 1876 KB n = 86, m = 2
34 Correct 2 ms 1876 KB n = 88, m = 2
35 Correct 1 ms 1876 KB n = 86, m = 2
36 Correct 2 ms 1844 KB n = 81, m = 6
37 Correct 1 ms 1876 KB n = 98, m = 7
38 Correct 1 ms 1876 KB n = 92, m = 7
39 Correct 1 ms 1876 KB n = 88, m = 21
40 Correct 1 ms 1876 KB n = 90, m = 21
41 Correct 1 ms 1876 KB n = 98, m = 22
42 Correct 1 ms 1876 KB n = 11, m = 2
43 Correct 1 ms 1876 KB n = 11, m = 2
44 Correct 2 ms 1848 KB n = 13, m = 3
45 Correct 1 ms 1876 KB n = 86, m = 2
46 Correct 1 ms 1876 KB n = 81, m = 2
47 Correct 1 ms 1876 KB n = 93, m = 2
48 Correct 1 ms 1876 KB n = 81, m = 2
49 Correct 2 ms 1876 KB n = 86, m = 2
50 Correct 2 ms 1876 KB n = 90, m = 2
51 Correct 1 ms 1876 KB n = 87, m = 2
52 Correct 1 ms 1848 KB n = 97, m = 2
53 Correct 1 ms 1876 KB n = 85, m = 2
54 Correct 1 ms 1848 KB n = 88, m = 7
55 Correct 2 ms 1876 KB n = 96, m = 7
56 Correct 2 ms 1876 KB n = 85, m = 7
57 Correct 2 ms 1848 KB n = 92, m = 7
58 Correct 1 ms 1848 KB n = 92, m = 7
59 Correct 1 ms 1876 KB n = 86, m = 7
60 Correct 1 ms 1848 KB n = 87, m = 7
61 Correct 1 ms 1844 KB n = 100, m = 7
62 Correct 1 ms 1876 KB n = 100, m = 7
63 Correct 2 ms 1848 KB n = 92, m = 21
64 Correct 1 ms 1876 KB n = 93, m = 22
65 Correct 2 ms 1848 KB n = 95, m = 22
66 Correct 1 ms 1876 KB n = 98, m = 22
67 Correct 1 ms 1876 KB n = 94, m = 22
68 Correct 1 ms 1876 KB n = 93, m = 22
69 Correct 1 ms 1876 KB n = 88, m = 21
70 Correct 1 ms 1876 KB n = 83, m = 20
71 Correct 1 ms 1876 KB n = 99, m = 23
72 Correct 2 ms 1876 KB n = 96, m = 19
73 Correct 3 ms 3796 KB n = 4825, m = 5
74 Correct 3 ms 3644 KB n = 4384, m = 5
75 Correct 2 ms 3796 KB n = 4528, m = 5
76 Correct 2 ms 3924 KB n = 4980, m = 5
77 Correct 2 ms 3796 KB n = 4730, m = 5
78 Correct 2 ms 3904 KB n = 4784, m = 5
79 Correct 2 ms 3924 KB n = 4875, m = 5
80 Correct 2 ms 3784 KB n = 4576, m = 5
81 Correct 2 ms 3668 KB n = 4297, m = 5
82 Correct 4 ms 3796 KB n = 4662, m = 48
83 Correct 6 ms 3852 KB n = 4753, m = 49
84 Correct 6 ms 3516 KB n = 4148, m = 46
85 Correct 4 ms 3924 KB n = 4906, m = 50
86 Correct 4 ms 3924 KB n = 4967, m = 50
87 Correct 4 ms 3796 KB n = 4828, m = 49
88 Correct 3 ms 3520 KB n = 4105, m = 45
89 Correct 4 ms 3896 KB n = 4954, m = 50
90 Correct 4 ms 3924 KB n = 4884, m = 49
91 Correct 5 ms 3644 KB n = 4307, m = 100
92 Correct 6 ms 3768 KB n = 4668, m = 100
93 Correct 7 ms 3796 KB n = 4647, m = 100
94 Correct 6 ms 3668 KB n = 4372, m = 100
95 Correct 6 ms 3888 KB n = 4791, m = 100
96 Correct 6 ms 3540 KB n = 4029, m = 100
97 Correct 6 ms 3668 KB n = 4439, m = 100
98 Correct 5 ms 3540 KB n = 4018, m = 100
99 Correct 7 ms 3924 KB n = 4979, m = 100
100 Correct 5 ms 3924 KB n = 4996, m = 89
101 Correct 56 ms 76412 KB n = 178952, m = 10
102 Correct 52 ms 77152 KB n = 180674, m = 10
103 Correct 47 ms 71728 KB n = 167639, m = 10
104 Correct 47 ms 73908 KB n = 172892, m = 10
105 Correct 53 ms 71912 KB n = 168125, m = 10
106 Correct 46 ms 71232 KB n = 166514, m = 10
107 Correct 53 ms 78508 KB n = 183874, m = 10
108 Correct 53 ms 82928 KB n = 194560, m = 10
109 Correct 52 ms 73548 KB n = 171994, m = 10
110 Correct 125 ms 70764 KB n = 165207, m = 100
111 Correct 170 ms 80336 KB n = 188459, m = 100
112 Correct 129 ms 69464 KB n = 162137, m = 100
113 Correct 132 ms 72652 KB n = 169691, m = 100
114 Correct 147 ms 80172 KB n = 187642, m = 100
115 Correct 136 ms 72136 KB n = 168456, m = 100
116 Correct 133 ms 77280 KB n = 180980, m = 100
117 Correct 157 ms 81772 KB n = 191687, m = 100
118 Correct 145 ms 71196 KB n = 166437, m = 100
119 Correct 166 ms 79724 KB n = 186520, m = 100
120 Correct 148 ms 71360 KB n = 166675, m = 100
121 Correct 146 ms 80044 KB n = 187725, m = 100
122 Correct 125 ms 69184 KB n = 161455, m = 100
123 Correct 156 ms 82304 KB n = 192977, m = 100
124 Correct 159 ms 82076 KB n = 192612, m = 100
125 Correct 169 ms 83764 KB n = 196512, m = 100
126 Correct 159 ms 84784 KB n = 198968, m = 100
127 Correct 140 ms 71392 KB n = 166659, m = 100
128 Correct 86 ms 85152 KB n = 199997, m = 34
129 Correct 49 ms 85144 KB n = 200000, m = 1
130 Correct 53 ms 85144 KB n = 200000, m = 1
131 Correct 228 ms 85116 KB n = 199999, m = 100
132 Correct 163 ms 85148 KB n = 199999, m = 100
133 Correct 46 ms 85188 KB n = 200000, m = 1