Statistics

Problem Statement for "KindAndCruel"

Problem Statement

You are placed at one end of a field represented by a row of cells. Each cell of the field can be one of the following:
  • empty: is always passable (represented by a '.');
  • contains a kind creature (represented by a 'K'): is passable, unless the creature is in a bad mood. This happens if the number of the second at which you enter it is divisible by K;
  • contains a cruel creature (represented by a 'C'): is impassable, unless the creature in in a good mood. This happens if the number of the second at which you enter it is divisible by C.
You start at the leftmost cell of the field. You have to get to the rightmost cell of the field using a minimal number of seconds. Both leftmost and rightmost cells are empty. In one second you can move to a cell which is immediately to the left or to the right of the current cell, or stay where you are. You can not stay in a cell containing kind creature if the number of second is divisible by K, or in a cell containing cruel creature if the number of second is not divisible by C. The seconds are numbered with consecutive integers, starting with 1.
You are given a String field, where each character represents a cell in the field, from left to right. You are also given ints K and C. Return the minimal number of seconds which will bring you to the rightmost cell of the field. If you can't get there, return -1.

Definition

Class:
KindAndCruel
Method:
crossTheField
Parameters:
String, int, int
Returns:
int
Method signature:
int crossTheField(String field, int K, int C)
(be sure your method is public)

Constraints

  • field will contain between 2 and 50 characters, inclusive.
  • Each character in field will be '.', 'K' or 'C'.
  • The first and the last characters of field will be '.'.
  • K and C will be between 1 and 50, inclusive.

Examples

  1. "..."

    2

    5

    Returns: 2

    There are no creatures on the field, so you just go two cells to the right in two seconds.

  2. ".K.C."

    3

    4

    Returns: 5

    At second 1, you move to the cell with the kind creature. At second 2, you move right to the empty cell. At second 3, you wait in the empty cell, because you can't enter the cell with the cruel creature yet. At second 4, the cruel creature is in a good mood and you can enter its cell. Finally, at second 5 you enter the rightmost cell.

  3. ".CCCC."

    3

    5

    Returns: -1

    You can not pass.

  4. ".CCCC."

    3

    1

    Returns: 5

    Seemingly cruel creatures are always in good mood, so you can pass easily.

  5. ".K."

    1

    13

    Returns: -1

    Seemingly kind creature is always in bad mood, so you can not pass.

  6. ".."

    7

    4

    Returns: 1

    Min test

  7. ".C.KKKC.CKK."

    4

    5

    Returns: 28

    At most K-1 kind creatures can be in row, and at most 1 cruel, unless C=1

  8. ".CKKKKCKKKKC.KKKKCKKKKC.CKKKKCKKKKCKKKKCKKKKCKKKK."

    5

    5

    Returns: 60

  9. ".KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKC."

    48

    49

    Returns: 2353

    max test - 2353

  10. ".KKKKKKKC..KKKKKKKC..KKKKKKKC..KKKKKKKC..KKKKKKKC."

    8

    49

    Returns: 1961

    several tests with series KKKKC repeated

  11. ".KKKKKKKKC.KKKKKKKKC.KKKKKKKKC.KKKKKKKKC.KKKKKKKC."

    9

    50

    Returns: 2151

  12. ".KKKKKKKKKKKKKKKKKKKKKKC.KKKKKKKKKKKKKKKKKKKKKKC."

    23

    50

    Returns: 2301

    2300

  13. ".CKKKKKKKKKKKKKKKKKKKKKK..CKKKKKKKKKKKKKKKKKKKKKK."

    23

    50

    Returns: 2323

    2323

  14. ".CKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK."

    48

    49

    Returns: 2400

    better max test - 2400

  15. ".CKKKKKKKK.CKKKKKKKK.CKKKKKKKK.CKKKKKKKK.CKKKKKKK."

    9

    8

    Returns: 360

  16. ".KKK.K.CKCCCK.KCCKCC.KK..CCCK.CCC.KCKC.KK."

    7

    38

    Returns: -1

  17. "..KCKKCCKKCKKKCCC.CK."

    18

    9

    Returns: -1

  18. ".K.KKCCKCCK.CKC.KCKKCK.CKKKKKCCKKCK.KKKCK.CCCKCK."

    27

    1

    Returns: 52

  19. ".K.KCCC.KKKKK.C..CK.K.K.KKK.KKCCKCKKKCCKC."

    42

    41

    Returns: -1

  20. "..K.KKCKKKCKKKCKK.C.."

    36

    22

    Returns: 442

  21. "..KCKK.CKKKK."

    13

    23

    Returns: 51

  22. ".KCK."

    27

    28

    Returns: 58

  23. ".KCCKC..KCKKKKKCKC."

    9

    37

    Returns: -1

  24. ".KKKCKKC.CKKKKCKCC.K.CCKCKKCKKK.CK.KCKK..CCCKKKK.."

    31

    37

    Returns: -1

  25. ".KKCKKKC.KK.K..CKKKKC."

    6

    47

    Returns: -1

  26. ".CKKKKKK."

    19

    38

    Returns: 45

  27. ".CK.K.KCKCKKC.CKK.KK.KKK.K.KKCKKKKKK."

    35

    19

    Returns: 729

  28. ".KKKKKC."

    14

    21

    Returns: 22

  29. ".C.KCCC..KKCKCKK.K.KKCCCCC.."

    12

    1

    Returns: 28

  30. ".CKC.CC....CCCKCK.C..K.CKKC...K.KCKCK.K.K."

    15

    18

    Returns: -1

  31. ".C..K."

    39

    29

    Returns: 33

  32. ".KKKK.K.CKKK.KKKK."

    43

    8

    Returns: 17

  33. "..KKK."

    14

    27

    Returns: 5

  34. ".KKKKKCKKKK.KKCK.CKKCKKKKKKK."

    30

    9

    Returns: 53

  35. ".KKKKKKKKKKKK.CKKCKKKKKKKKKK.KKKKKKCKKK."

    16

    35

    Returns: -1

  36. ".KK..KKKKKC.KKKKKKKKKKKKK.KCKKKKKKCKKKKKKKCKKK."

    47

    7

    Returns: 74

  37. "..KKKKKKKKKKKCKKKCKCKKCKKKKK.KKC."

    2

    6

    Returns: -1

  38. ".KKK.KCCKKCKKKKKKKK.KCKKKKKK.KKKK.C.KKCCKKKK."

    11

    11

    Returns: -1

  39. ".KC.KKCKKKKKKKKCKKKKKK..KKKKKK.KKCKK."

    13

    8

    Returns: -1

  40. ".K.KKKKKKKKKK."

    41

    46

    Returns: 13

  41. "..KK.KKKKKKKCK.KK."

    19

    33

    Returns: 38

  42. ".CKKKKKK...KKKKKKKKKCKKKKKKKKK.CKKKKKKKKK..KKKKK."

    39

    34

    Returns: 153

  43. "..CKKKCKKKKKKKKKKKKKKKKKKKKKKKKK.K."

    48

    50

    Returns: -1

  44. "...C.CK.CKKKKKK.K..."

    35

    7

    Returns: 32

  45. "..KKKKCKKKKC..CKCKKC.KK.C.."

    14

    7

    Returns: 44

  46. ".KKKKKKKKK.KKKKKKK..CKKKKKKK..KKKKKKCKKKK."

    47

    49

    Returns: 201

  47. ".CKKKC."

    26

    34

    Returns: -1

  48. ".KKKKKKKKKKKKKC.K.."

    25

    19

    Returns: 23

  49. ".KKCKKKK.KKKKKKKKKKKKKKKK."

    25

    10

    Returns: 42

  50. ".KKKKKKKC..C.KKKKKKKKKKKKKKKKKKKKK.KKKK.."

    36

    43

    Returns: 172

  51. ".KKK.."

    5

    36

    Returns: 5

  52. ".CKKKK.KK.CKKKKKCKKKKK.C.C.CKK.CK.CK."

    6

    22

    Returns: -1

  53. ".CKKKKKKKCKKK."

    47

    25

    Returns: 79

  54. "..C.KKKKKKKKKKKKKKK....C.KKKKK.CK.KK."

    48

    23

    Returns: 74

  55. ".KKKKKKKKKKKKKKKKKKKKKKKKKC.KKKKKKKKKCKKKKKKKKKKK."

    46

    15

    Returns: 72

  56. "..KKKKKKKKKKKKKKK..C.C.KKKKKKKKKKK.KKKKKKKKKC..KC."

    20

    15

    Returns: 91

  57. "..KKKKKKKKKK...CKKC.C.K.."

    21

    8

    Returns: 45

  58. ".KKC."

    45

    45

    Returns: 46

  59. ".CKKKKKKKKK..CKKKKKK.CKKKKKKKKKKKKKKKK..KC."

    23

    8

    Returns: 73

  60. "..C.CKKKKKKKK...C.....KKKKKK."

    10

    38

    Returns: 240

  61. ".KKKKKKCKCKKKKKKKKCKKKKKK..K..C."

    14

    4

    Returns: -1

  62. ".C...CKKKKKKKK..KKKKKKKKKKKKKKKKKKKKKKKK."

    41

    2

    Returns: 41

  63. ".K.KKKKKK..."

    11

    9

    Returns: 11

  64. "..CKKKKKKKKKKKKKKKKKKKKKKKK.KKKKKKKKKCKKKKKKC.."

    34

    22

    Returns: 376

  65. ".KKKKKKKKKKKK."

    14

    34

    Returns: 13

  66. ".C.KKKKKKKKKKKKKKK.KKKKKKKKKKKC.KCKKKK."

    30

    21

    Returns: 110

  67. ".KKKKKKKKKKKKKKKKKKKKKKCKKKKK.CK.."

    38

    50

    Returns: 153

  68. ".KKKKKKKKKC...C."

    21

    14

    Returns: 29

  69. "..KC."

    4

    48

    Returns: 49

  70. "..KKKKKKKKKKKKKKKKKKC.CKCKK."

    36

    30

    Returns: 183

  71. ".KKKKKKKKK.KKK."

    32

    33

    Returns: 14

  72. "....CCCC..........CCCCCCC.CCCCCCCCCCC."

    1

    1

    Returns: 37

    a challenge for solution which returns -1 if K=1 without checking whether there are any Ks

  73. "..K.KKKKKK......KKKK...KKKKKK.KKKKK."

    7

    13

    Returns: 41

    no Cs

  74. ".CKC.CKC."

    10

    9

    Returns: 181

  75. ".CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC."

    50

    49

    Returns: 29401

  76. ".CK..CKKKCKKK.CKC.KKK....KKKK.KKKKK..KK.KK."

    50

    49

    Returns: 4926

  77. ".CKK.KCK.CK..K.CKCKKKK.KKCKKCKCK.KKKCKCKCK.."

    45

    41

    Returns: 5579

  78. ".KKK..KC...KCKC.C....K..K.C.CKKC..C.CKC..K..K."

    47

    46

    Returns: 6493

  79. "..CKC..CKC.CKCK.C..C.KCKC.KKC..K."

    43

    42

    Returns: 7312

  80. "..CKKCKKCK.KK.KKKCKKCK.KCKCKKKKKKKC..KKCKKC."

    47

    44

    Returns: 8273

  81. "...KKK...C.K.C.KK.C.KKKK.C...KKC.KK.C.KKKK.C."

    5

    11

    Returns: 111

  82. ".CKKCKKKC."

    5

    4

    Returns: 25

  83. ".CK..CK..CK..CK..CK..CK..CK..CK..CK..CK..CKCK."

    3

    5

    Returns: -1

  84. "..............KCK."

    4

    5

    Returns: 22

  85. ".KKCKCKCKCKCKCKKCKCK."

    3

    7

    Returns: -1

  86. ".C..KCKCKKC.C...K.CKK.CKCKKC..C.KKKK...C.CKC..KC.."

    49

    25

    Returns: 2602

  87. "...KCKKC."

    4

    2

    Returns: 9

  88. ".CCCCC."

    5

    1

    Returns: 6

  89. "..."

    1

    1

    Returns: 2

  90. "..K.C.K.C.K.C.K.CK.C.K.C.KC.K.C.K.C.KK.K.KCK.C.K.."

    3

    2

    Returns: 69

  91. ".CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.."

    50

    49

    Returns: 29402

  92. ".K."

    1

    1

    Returns: -1

  93. ".KKC."

    3

    5

    Returns: 16

  94. ".KKKKKKKKKKC....KCKK."

    11

    7

    Returns: 87

  95. ".KKKK."

    2

    5

    Returns: -1

  96. ".C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C."

    1

    50

    Returns: 1201

  97. ".CC."

    50

    1

    Returns: 3

  98. "...KKKCK.KKK.KK.C.KKK.KK.CK.KK.KKK.K..C.CKK.KK.KK."

    4

    4

    Returns: 63

  99. ".K..KCKKK.KCK..KCKKC.C.C.C.C..KC.C.C.C.C.C.C.CK."

    25

    24

    Returns: 914

  100. "....CKKKCCCKK."

    6

    1

    Returns: 15

  101. ".KCK.KCK.KCK.KCK.KCK.KKC.KCK.KCK.KCK.KCK.KCK.KCK."

    3

    50

    Returns: 1802

  102. ".CCCC."

    1

    1

    Returns: 5

  103. ".CKKKKK."

    6

    7

    Returns: 48

  104. "..CKCK."

    47

    46

    Returns: 2164

  105. ".C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.."

    5

    49

    Returns: 1178

  106. ".KKKCK."

    5

    2

    Returns: 12

  107. ".CKKKKCKKKKC.CKKKKCKKKKC.CKKKKCKKKKC."

    50

    49

    Returns: 7400

  108. "..KC."

    3

    4

    Returns: 9

  109. ".KKKKKKKKKK."

    2

    2

    Returns: -1

  110. "..CC."

    1

    1

    Returns: 4

  111. ".KKKCKCKKK."

    4

    2

    Returns: 12

  112. ".CC."

    3

    1

    Returns: 3

  113. ".KKC."

    3

    2

    Returns: 7

  114. ".......................................KKKKKCCCCC."

    30

    30

    Returns: -1

  115. ".KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKC."

    49

    50

    Returns: 2401

  116. ".KKKKCKKKKKCKK."

    7

    3

    Returns: -1

  117. "...K."

    1

    1

    Returns: -1

  118. ".CCC."

    1

    1

    Returns: 4

  119. ".CKCKC..CKCKC..CKCKC..CKCKC..CKCKC..CKCKC..CKCKC."

    47

    41

    Returns: 13531

  120. ".CKKKKC...CKKCKC...CKKCKC...CKKKKC.."

    5

    50

    Returns: -1

  121. ".KCK."

    5

    6

    Returns: 14

  122. "..CK."

    4

    3

    Returns: 8

  123. ".CKKKKCKKKKC.KKKKCKKKKC.CKKKKCKKKKCKKCKCKKCKCKCKC."

    5

    5

    Returns: 76

  124. ".CC."

    1

    1

    Returns: 3

  125. ".K...K...K...K..."

    3

    1

    Returns: 17

  126. "..KKKKK."

    3

    2

    Returns: -1

  127. "....."

    1

    2

    Returns: 4

  128. ".CKKKC."

    4

    5

    Returns: -1

  129. ".KKKKC........K.K.K.K.K..K.K.K.K.K.K.K.K.K.K.K.K."

    5

    4

    Returns: 69

  130. ".CKKKKCKKKKC.KKKKCKKKKC.CKKKKCKKKKCKKKKCKKKKCKKKK."

    50

    50

    Returns: 505

  131. "..KC."

    3

    5

    Returns: 6

  132. ".KK."

    1

    10

    Returns: -1

  133. ".KCKKCKKC."

    5

    3

    Returns: 19

  134. ".KCKKKK."

    5

    2

    Returns: 15

  135. ".CC."

    5

    1

    Returns: 3

  136. ".KKCKK."

    3

    30

    Returns: 33

  137. "...K."

    3

    3

    Returns: 5

  138. ".C.CC.K...CKK.KCCC.CCCKCCCCK...C.CC.KK.CCC...KK.C."

    6

    1

    Returns: 53

  139. "..C."

    50

    50

    Returns: 51

  140. ".KKKC."

    5

    50

    Returns: 51

  141. "....KKKKK.."

    7

    10

    Returns: 14

  142. "..KKK."

    4

    50

    Returns: 8

  143. "..."

    1

    2

    Returns: 2

  144. ".....KKKKCKKKKKKCKK.KKKCKKK.."

    7

    3

    Returns: -1

  145. "..KKKKCKKKK."

    5

    4

    Returns: 25

  146. ".KKCK.CKKC..KKC..K.C..CK..."

    50

    49

    Returns: 2601

  147. "...KK."

    4

    2

    Returns: 7

  148. "...CK."

    4

    3

    Returns: 8

  149. ".CKCKKKC."

    4

    3

    Returns: -1

  150. ".CK."

    5

    4

    Returns: 10

  151. ".KC."

    8

    9

    Returns: 19

  152. ".C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.."

    50

    50

    Returns: 1202

  153. ".CKKKKCKKKKC.KKKKCKKKKC.CKKKKCKKKKCKKKKCKKKKCKKKK."

    5

    4

    Returns: -1

  154. ".CKKKC."

    6

    5

    Returns: 31

  155. ".CCCCCCCCCCC."

    1

    1

    Returns: 12

  156. "....."

    1

    3

    Returns: 4

  157. ".K.C...........................KC....CCCCCKKKKK..."

    3

    4

    Returns: -1

  158. "...CC..."

    20

    1

    Returns: 7

  159. ".C."

    1

    50

    Returns: 51

  160. ".KKKCKKCKKKCKKCKKKCKCKCKKKCKKKCKKCKCKKCKCKK."

    7

    2

    Returns: -1

  161. ".CKCKCKCKCKCKCKCKCKCK."

    3

    5

    Returns: -1

  162. ".KKKKKKKK."

    3

    1

    Returns: -1

  163. "...KCK..."

    5

    2

    Returns: 12

  164. "..KKK."

    4

    4

    Returns: 8

  165. "....KKKCKKK.....KKKCKKK.."

    4

    4

    Returns: 25

  166. "...K..CKC.C.CKC.KK..CK.CKC.CKKCKKC.K.CKC.CKC.K.CK."

    50

    49

    Returns: 14800

  167. "..KKK."

    4

    3

    Returns: 8

  168. ".KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK."

    50

    2

    Returns: 49

  169. ".CKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK.CKKKKKK."

    50

    21

    Returns: 175

  170. ".CK."

    50

    49

    Returns: 100

  171. ".CK.CK.CK.CK.CK.CK.CK.CK.CK.CK.CK.CK.CK.CK.CK.CK."

    2

    49

    Returns: 1570

  172. ".KK."

    2

    3

    Returns: -1

  173. ".KKKC."

    4

    43

    Returns: 173

  174. ".CKCKKCKCKKC.CKCKCKCKKC.CKCKKCKCKKCKKCKCKCKKCKCKC."

    50

    50

    Returns: 1051

  175. ".KK.KKKK."

    5

    1

    Returns: 10

  176. ".KKCK."

    4

    50

    Returns: 102

  177. ".................................................."

    4

    3

    Returns: 49

  178. ".KKKCKKKKKKKCKK."

    8

    4

    Returns: 19

  179. ".K.K.K."

    2

    2

    Returns: 6

  180. ".KKKKK."

    5

    4

    Returns: -1

  181. ".KKC.....KCK.CKK.C...K.K.C.CKC...K.CKC..KK.C."

    39

    38

    Returns: 3003

  182. ".CKKKK."

    5

    2

    Returns: 15

  183. ".KC."

    4

    6

    Returns: 7

  184. ".KKKKKKKKKKC....KCKCK."

    11

    7

    Returns: 121

  185. "..KK."

    3

    2

    Returns: 6

  186. ".C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C."

    49

    48

    Returns: 1105

  187. ".C.C.CKC.C.C.C.C.C.C.C.C.C.C.CKC.C.C.C.C.C.C.C.C."

    50

    49

    Returns: 5293

  188. "..."

    1

    5

    Returns: 2

  189. ".......CKC."

    9

    7

    Returns: 36

  190. ".KC."

    23

    47

    Returns: 95

  191. "..K."

    1

    5

    Returns: -1

  192. ".CKC.CKC."

    50

    49

    Returns: 4901

  193. ".CKKCKKKCKKKK.CKK.KKKKKC.KKKCKK.KKKKKK.KKK.CKKKC."

    35

    24

    Returns: 1009

  194. ".C."

    1

    4

    Returns: 5

  195. ".KKKKKKKKKKKKKKKKKKKK."

    2

    5

    Returns: -1

  196. ".KKKKKKKKKKC.KKKKCKKKKC.CKKKKCKKKKCKKKKCKKKKCKKKK."

    50

    49

    Returns: -1


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: