Statistics

Problem Statement for "ChickenOracle"

Problem Statement

This time, instead of solving an easy problem with a known solution, you will be in charge in solving an old problem with a solution which was unknown to this date. The old question is whether the egg or the chicken came first. This question has been very difficult to answer over the ages, but a chance has finally come: It is said that a new oracle has appeared which knows everything.

You tried asking the question to the oracle, but the oracle refused to answer, arguing that it has already answered the question to n other people and is tired of answering that question. Not to give up, you decided to interview each of the n people. Of them, eggCount people told you that the answer was "The egg", while the remaining n-eggCount people claimed that the answer was "The chicken". Confused by the results, you asked the oracle a second time. The oracle still refused to answer the question, but instead explained the results: In order to hide the truth to those unworthy, the oracle has intentionally given the wrong answer to exactly lieCount people. On the other hand, also to avoid sharing the secret, exactly liarCount people (not necessarily those that were told the right answer by the oracle) have intentionally given you the opposite answer to the one given to them by the oracle.

You are still suspiscious that the explanation given by the oracle is another lie. Given ints n, eggCount, lieCount and liarCount, find out if scenarios exist such that "The egg" or "The chicken" is the correct answer. If there exist scenarios such that either answer is correct, return "Ambiguous" (quotes for clarity). If only one answer has a possible scenario, return "The egg" or "The chicken" (quotes for clarity) depending on the answer. If neither of the answers has a possible scenario, return "The oracle is a lie".

Definition

Class:
ChickenOracle
Method:
theTruth
Parameters:
int, int, int, int
Returns:
String
Method signature:
String theTruth(int n, int eggCount, int lieCount, int liarCount)
(be sure your method is public)

Constraints

  • n will be between 1 and 1000000, inclusive.
  • eggCount, lieCount and liarCount will each be between 0 and n, inclusive.

Examples

  1. 10

    10

    0

    0

    Returns: "The egg"

    In this case, every person has answered correctly.

  2. 60

    40

    0

    30

    Returns: "The oracle is a lie"

    According to the oracle, it has told the correct answer to all 60 people and then 30 of them lied to you. However, it contradicts the fact that 40 people have told you one answer and 20 people have told another one.

  3. 60

    20

    5

    25

    Returns: "The chicken"

  4. 1000

    500

    250

    250

    Returns: "Ambiguous"

  5. 1

    1

    1

    1

    Returns: "The egg"

  6. 396517

    28344

    199491

    161224

    Returns: "The oracle is a lie"

  7. 762085

    174382

    591906

    731022

    Returns: "The chicken"

  8. 245559

    225911

    154421

    4998

    Returns: "The oracle is a lie"

  9. 519706

    277311

    364769

    257393

    Returns: "The oracle is a lie"

  10. 72385

    31903

    7837

    10658

    Returns: "The oracle is a lie"

  11. 559116

    187570

    443186

    60279

    Returns: "The oracle is a lie"

  12. 621417

    180385

    641

    450302

    Returns: "The oracle is a lie"

  13. 498424

    25415

    45906

    448391

    Returns: "The egg"

  14. 325835

    238497

    114888

    85492

    Returns: "The egg"

  15. 497223

    236730

    70808

    471449

    Returns: "The oracle is a lie"

  16. 338919

    310645

    70422

    304279

    Returns: "The oracle is a lie"

  17. 560054

    91058

    139916

    12375

    Returns: "The oracle is a lie"

  18. 131781

    102924

    71553

    55554

    Returns: "The egg"

  19. 756935

    331458

    620003

    751210

    Returns: "The oracle is a lie"

  20. 298057

    282337

    59551

    196826

    Returns: "The oracle is a lie"

  21. 348407

    128958

    128612

    125877

    Returns: "The egg"

  22. 933615

    357697

    739848

    43938

    Returns: "The oracle is a lie"

  23. 768469

    426448

    235987

    333412

    Returns: "The egg"

  24. 300410

    257594

    5989

    224034

    Returns: "The oracle is a lie"

  25. 765658

    438802

    505627

    145878

    Returns: "The oracle is a lie"

  26. 1

    0

    0

    0

    Returns: "The chicken"

  27. 1

    0

    0

    1

    Returns: "The egg"

  28. 1

    0

    1

    0

    Returns: "The egg"

  29. 1

    0

    1

    1

    Returns: "The chicken"

  30. 1

    1

    0

    0

    Returns: "The egg"

  31. 1

    1

    0

    1

    Returns: "The chicken"

  32. 1

    1

    1

    0

    Returns: "The chicken"

  33. 1

    1

    1

    1

    Returns: "The egg"

  34. 962850

    19055

    64313

    85888

    Returns: "The oracle is a lie"

  35. 862583

    486499

    301630

    493215

    Returns: "The chicken"

  36. 957641

    676883

    540997

    238519

    Returns: "The oracle is a lie"

  37. 813451

    375748

    414019

    259012

    Returns: "The egg"

  38. 945090

    793978

    512433

    54330

    Returns: "The oracle is a lie"

  39. 835921

    339171

    513339

    776135

    Returns: "The oracle is a lie"

  40. 965509

    361898

    778610

    858544

    Returns: "The oracle is a lie"

  41. 849225

    184371

    641096

    611762

    Returns: "The oracle is a lie"

  42. 802246

    37329

    473034

    165902

    Returns: "The oracle is a lie"

  43. 969311

    361659

    296286

    208426

    Returns: "The oracle is a lie"

  44. 819514

    421564

    230281

    54819

    Returns: "The oracle is a lie"

  45. 925310

    874810

    775864

    411750

    Returns: "The oracle is a lie"

  46. 811502

    533611

    171872

    75650

    Returns: "The oracle is a lie"

  47. 916436

    817088

    178455

    579562

    Returns: "The oracle is a lie"

  48. 951774

    929187

    897231

    57006

    Returns: "The chicken"

  49. 852037

    577253

    340259

    177278

    Returns: "The oracle is a lie"

  50. 920552

    64517

    595740

    454457

    Returns: "The oracle is a lie"

  51. 950051

    8270

    743079

    430550

    Returns: "The oracle is a lie"

  52. 819775

    399440

    777548

    482922

    Returns: "The oracle is a lie"

  53. 892059

    795464

    486421

    142293

    Returns: "The oracle is a lie"

  54. 87

    49

    44

    44

    Returns: "The egg"

  55. 7

    5

    4

    1

    Returns: "The chicken"

  56. 97

    49

    42

    57

    Returns: "The chicken"

  57. 53

    26

    24

    25

    Returns: "The egg"

  58. 100

    52

    57

    41

    Returns: "Ambiguous"

  59. 36

    25

    17

    16

    Returns: "Ambiguous"

  60. 64

    37

    29

    28

    Returns: "Ambiguous"

  61. 88

    48

    42

    40

    Returns: "Ambiguous"

  62. 4

    1

    2

    1

    Returns: "Ambiguous"

  63. 58

    27

    30

    23

    Returns: "Ambiguous"

  64. 29

    17

    15

    12

    Returns: "The chicken"

  65. 90

    44

    44

    46

    Returns: "Ambiguous"

  66. 116434

    58220

    58285

    57939

    Returns: "Ambiguous"

  67. 244034

    122250

    121998

    122176

    Returns: "Ambiguous"

  68. 995016

    497109

    497790

    497099

    Returns: "Ambiguous"

  69. 535929

    267649

    267975

    268246

    Returns: "The chicken"

  70. 479389

    239192

    239314

    239727

    Returns: "The egg"

  71. 142582

    71453

    71321

    70944

    Returns: "Ambiguous"

  72. 632259

    316275

    315904

    315926

    Returns: "The egg"

  73. 494254

    246683

    247645

    247370

    Returns: "Ambiguous"

  74. 849338

    424843

    424517

    425628

    Returns: "Ambiguous"

  75. 91724

    46223

    45983

    45750

    Returns: "Ambiguous"

  76. 917800

    458527

    458464

    459925

    Returns: "Ambiguous"

  77. 914513

    457351

    456571

    456982

    Returns: "The chicken"

  78. 931608

    465692

    465780

    466326

    Returns: "Ambiguous"

  79. 926724

    464301

    463897

    463006

    Returns: "Ambiguous"

  80. 921449

    460204

    459308

    460862

    Returns: "The chicken"

  81. 899919

    449839

    450367

    449254

    Returns: "The chicken"

  82. 849424

    424813

    424458

    424837

    Returns: "Ambiguous"

  83. 894545

    447647

    447092

    448149

    Returns: "The chicken"

  84. 903469

    451657

    452056

    451551

    Returns: "The chicken"

  85. 998912

    499229

    498025

    499226

    Returns: "Ambiguous"

  86. 980666

    416750

    300673

    301195

    Returns: "Ambiguous"

  87. 891946

    512498

    273483

    273821

    Returns: "Ambiguous"

  88. 982760

    417827

    301373

    301904

    Returns: "Ambiguous"

  89. 864732

    368502

    265772

    266006

    Returns: "Ambiguous"

  90. 927095

    532371

    284804

    283940

    Returns: "The egg"

  91. 950896

    913780

    19042

    18860

    Returns: "The egg"

  92. 833259

    800804

    16670

    16409

    Returns: "The egg"

  93. 985823

    947734

    19414

    19401

    Returns: "The egg"

  94. 943694

    906696

    18872

    18914

    Returns: "The egg"

  95. 932042

    36179

    18482

    18473

    Returns: "The chicken"

  96. 909322

    26763

    17953

    900154

    Returns: "The egg"

  97. 888081

    862023

    17577

    879298

    Returns: "The chicken"

  98. 981719

    28783

    19506

    972012

    Returns: "The egg"

  99. 936606

    909272

    18588

    927464

    Returns: "The chicken"

  100. 851974

    25238

    17057

    843425

    Returns: "The egg"

  101. 909322

    26763

    17953

    900154

    Returns: "The egg"

  102. 888081

    862023

    17577

    879298

    Returns: "The chicken"

  103. 981719

    28783

    19506

    972012

    Returns: "The egg"

  104. 936606

    909272

    18588

    927464

    Returns: "The chicken"

  105. 851974

    25238

    17057

    843425

    Returns: "The egg"

  106. 3

    2

    2

    2

    Returns: "The chicken"

  107. 10

    8

    2

    3

    Returns: "The oracle is a lie"

  108. 10

    7

    4

    4

    Returns: "The oracle is a lie"

  109. 60

    23

    5

    25

    Returns: "The oracle is a lie"

  110. 60

    24

    20

    5

    Returns: "The oracle is a lie"

  111. 10

    3

    8

    7

    Returns: "The chicken"

  112. 6

    6

    4

    4

    Returns: "The egg"

  113. 999

    500

    250

    250

    Returns: "The chicken"

  114. 10

    7

    2

    2

    Returns: "The oracle is a lie"

  115. 6

    0

    3

    2

    Returns: "The oracle is a lie"

  116. 10

    7

    8

    9

    Returns: "The egg"

  117. 60

    20

    5

    21

    Returns: "The chicken"

  118. 1000000

    1000000

    1000000

    1000000

    Returns: "The egg"

  119. 2

    1

    1

    1

    Returns: "The oracle is a lie"

  120. 60

    22

    5

    25

    Returns: "The chicken"

  121. 60

    40

    40

    4

    Returns: "The chicken"

  122. 12833

    3

    823

    283

    Returns: "The oracle is a lie"

  123. 10

    8

    3

    2

    Returns: "The oracle is a lie"

  124. 10

    0

    10

    2

    Returns: "The oracle is a lie"

  125. 60

    20

    0

    0

    Returns: "The oracle is a lie"

  126. 6

    3

    3

    1

    Returns: "The oracle is a lie"

  127. 60

    20

    6

    25

    Returns: "The oracle is a lie"

  128. 100

    96

    4

    5

    Returns: "The oracle is a lie"

  129. 60

    20

    5

    23

    Returns: "The chicken"

  130. 6

    3

    2

    2

    Returns: "The oracle is a lie"

  131. 5

    2

    2

    1

    Returns: "The egg"

  132. 5

    3

    1

    2

    Returns: "The chicken"

  133. 60

    30

    20

    0

    Returns: "The oracle is a lie"

  134. 1000

    345

    234

    123

    Returns: "The chicken"

  135. 500

    251

    250

    250

    Returns: "The oracle is a lie"

  136. 100

    90

    99

    99

    Returns: "The oracle is a lie"

  137. 10

    5

    3

    4

    Returns: "Ambiguous"

  138. 100

    40

    95

    35

    Returns: "The egg"

  139. 100

    50

    50

    2

    Returns: "Ambiguous"

  140. 100

    100

    100

    100

    Returns: "The egg"

  141. 501

    1

    2

    1

    Returns: "The chicken"

  142. 10000

    1000

    2000

    1004

    Returns: "The chicken"

  143. 1000

    501

    799

    298

    Returns: "The chicken"

  144. 60

    20

    7

    25

    Returns: "The chicken"

  145. 4

    3

    4

    4

    Returns: "The oracle is a lie"

  146. 100

    55

    50

    10

    Returns: "The oracle is a lie"

  147. 100

    90

    5

    5

    Returns: "The egg"

  148. 3

    1

    1

    1

    Returns: "The egg"

  149. 40

    25

    10

    5

    Returns: "The egg"

  150. 10

    10

    0

    10

    Returns: "The chicken"

  151. 2

    1

    2

    2

    Returns: "The oracle is a lie"

  152. 10

    0

    10

    0

    Returns: "The egg"

  153. 60

    4

    2

    3

    Returns: "The oracle is a lie"

  154. 5

    2

    2

    2

    Returns: "The chicken"

  155. 3

    1

    0

    0

    Returns: "The oracle is a lie"

  156. 10

    0

    10

    10

    Returns: "The chicken"

  157. 3

    2

    1

    1

    Returns: "The chicken"

  158. 5

    1

    4

    4

    Returns: "The oracle is a lie"

  159. 7

    5

    2

    3

    Returns: "The chicken"

  160. 10

    4

    2

    2

    Returns: "The chicken"

  161. 2

    0

    2

    0

    Returns: "The egg"

  162. 80

    20

    10

    5

    Returns: "The oracle is a lie"

  163. 3

    2

    0

    1

    Returns: "The egg"

  164. 986

    466

    967

    735

    Returns: "The oracle is a lie"

  165. 2

    1

    1

    2

    Returns: "Ambiguous"

  166. 10

    3

    1

    3

    Returns: "The oracle is a lie"

  167. 5

    1

    1

    1

    Returns: "The oracle is a lie"

  168. 60

    40

    5

    15

    Returns: "The egg"

  169. 444136

    434320

    330890

    388736

    Returns: "The oracle is a lie"

  170. 50

    41

    10

    2

    Returns: "The oracle is a lie"

  171. 40

    20

    20

    20

    Returns: "Ambiguous"

  172. 100

    30

    30

    32

    Returns: "The chicken"

  173. 100

    9

    10

    2

    Returns: "The oracle is a lie"

  174. 40

    12

    23

    35

    Returns: "The chicken"

  175. 60

    20

    5

    24

    Returns: "The oracle is a lie"

  176. 3

    1

    2

    2

    Returns: "The egg"

  177. 9

    5

    3

    4

    Returns: "The chicken"

  178. 2

    1

    0

    1

    Returns: "Ambiguous"

  179. 10

    10

    10

    10

    Returns: "The egg"

  180. 1000

    200

    400

    400

    Returns: "Ambiguous"

  181. 10

    4

    7

    4

    Returns: "The oracle is a lie"

  182. 1000

    500

    350

    300

    Returns: "Ambiguous"

  183. 4

    0

    2

    4

    Returns: "The oracle is a lie"

  184. 9170

    6554

    2308

    1848

    Returns: "The egg"

  185. 4

    2

    1

    3

    Returns: "Ambiguous"

  186. 100

    10

    10

    2

    Returns: "The chicken"

  187. 10

    8

    0

    0

    Returns: "The oracle is a lie"

  188. 60

    40

    5

    25

    Returns: "The egg"

  189. 60

    59

    1

    1

    Returns: "The oracle is a lie"

  190. 100

    2

    75

    25

    Returns: "The egg"

  191. 100

    5

    3

    2

    Returns: "The chicken"

  192. 60

    30

    0

    30

    Returns: "Ambiguous"

  193. 10

    5

    4

    3

    Returns: "Ambiguous"

  194. 5

    2

    2

    3

    Returns: "The egg"

  195. 60

    10

    7

    13

    Returns: "The chicken"

  196. 100

    10

    90

    0

    Returns: "The egg"

  197. 100

    100

    1

    100

    Returns: "The oracle is a lie"

  198. 6

    2

    4

    2

    Returns: "Ambiguous"

  199. 10

    4

    4

    2

    Returns: "Ambiguous"

  200. 14

    4

    2

    4

    Returns: "The chicken"

  201. 4

    1

    1

    1

    Returns: "The oracle is a lie"

  202. 60

    30

    5

    30

    Returns: "The oracle is a lie"

  203. 10

    0

    1

    3

    Returns: "The oracle is a lie"

  204. 10

    10

    10

    0

    Returns: "The chicken"

  205. 10

    1

    3

    6

    Returns: "The egg"

  206. 17

    10

    8

    7

    Returns: "The egg"

  207. 20

    15

    2

    5

    Returns: "The egg"

  208. 10

    5

    3

    3

    Returns: "The oracle is a lie"

  209. 10

    3

    5

    8

    Returns: "Ambiguous"

  210. 10

    6

    0

    6

    Returns: "The chicken"

  211. 100000

    19

    20

    13

    Returns: "The chicken"

  212. 11

    10

    0

    1

    Returns: "The egg"

  213. 60

    38

    5

    25

    Returns: "The egg"

  214. 60

    20

    60

    50

    Returns: "The oracle is a lie"

  215. 8

    5

    2

    2

    Returns: "The oracle is a lie"

  216. 60

    8

    6

    4

    Returns: "The chicken"

  217. 6

    6

    6

    6

    Returns: "The egg"

  218. 1000000

    1000000

    1

    1

    Returns: "The egg"

  219. 60

    60

    10

    20

    Returns: "The oracle is a lie"

  220. 100

    75

    56

    23

    Returns: "The chicken"

  221. 6

    4

    3

    1

    Returns: "Ambiguous"

  222. 60

    20

    35

    25

    Returns: "Ambiguous"

  223. 10

    3

    4

    6

    Returns: "The oracle is a lie"

  224. 10

    10

    1

    1

    Returns: "The egg"

  225. 60

    32

    5

    25

    Returns: "The egg"

  226. 10

    4

    3

    2

    Returns: "The oracle is a lie"

  227. 10

    10

    7

    7

    Returns: "The egg"

  228. 4

    2

    2

    1

    Returns: "The oracle is a lie"

  229. 30

    20

    5

    15

    Returns: "Ambiguous"

  230. 60

    40

    10

    20

    Returns: "The egg"

  231. 60

    40

    8

    26

    Returns: "The egg"

  232. 60

    20

    25

    5

    Returns: "The chicken"

  233. 271

    65

    239

    80

    Returns: "The oracle is a lie"

  234. 10

    2

    1

    2

    Returns: "The oracle is a lie"

  235. 6

    3

    1

    3

    Returns: "The oracle is a lie"

  236. 60

    10

    50

    30

    Returns: "The oracle is a lie"

  237. 4

    0

    2

    1

    Returns: "The oracle is a lie"

  238. 16

    9

    8

    4

    Returns: "The oracle is a lie"

  239. 700

    200

    400

    300

    Returns: "Ambiguous"

  240. 11

    0

    4

    9

    Returns: "The oracle is a lie"

  241. 10

    6

    5

    1

    Returns: "Ambiguous"

  242. 6

    5

    4

    3

    Returns: "Ambiguous"

  243. 20

    8

    10

    10

    Returns: "Ambiguous"

  244. 60

    20

    5

    35

    Returns: "The egg"

  245. 100

    10

    100

    100

    Returns: "The oracle is a lie"

  246. 4

    1

    2

    3

    Returns: "Ambiguous"

  247. 50

    50

    50

    50

    Returns: "The egg"

  248. 10

    2

    2

    2

    Returns: "The chicken"

  249. 8144

    7808

    4902

    7152

    Returns: "The oracle is a lie"

  250. 6

    5

    4

    4

    Returns: "The oracle is a lie"

  251. 4

    2

    2

    2

    Returns: "Ambiguous"

  252. 1000

    600

    700

    100

    Returns: "The chicken"

  253. 5

    3

    4

    2

    Returns: "The egg"

  254. 3282

    417

    115

    491

    Returns: "The oracle is a lie"

  255. 60

    40

    40

    30

    Returns: "Ambiguous"

  256. 30

    20

    6

    14

    Returns: "Ambiguous"

  257. 16

    8

    2

    2

    Returns: "The oracle is a lie"

  258. 6

    3

    3

    4

    Returns: "Ambiguous"

  259. 20

    8

    10

    2

    Returns: "Ambiguous"

  260. 5

    2

    3

    1

    Returns: "The chicken"

  261. 240

    100

    120

    24

    Returns: "Ambiguous"

  262. 10

    0

    6

    6

    Returns: "The chicken"

  263. 2

    2

    1

    1

    Returns: "Ambiguous"

  264. 8

    0

    4

    2

    Returns: "The oracle is a lie"

  265. 8

    4

    3

    3

    Returns: "Ambiguous"

  266. 1000

    499

    300

    300

    Returns: "The oracle is a lie"

  267. 50

    25

    26

    1

    Returns: "Ambiguous"


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: