Statistics

Problem Statement for "NextGuess"

Problem Statement

Betty is thinking of an integer.

Adam is trying to guess it. He has already made several guesses, all of them incorrect. The guesses made by Adam are given in the int[] guesses.

Each time Adam makes an incorrect guess, Betty answers him '>' if her integer is greater than Adam's guess, or '<' if her integer is smaller than Adam's guess. You are given the String answers with Betty's answers to Adam's guesses. More precisely, for each i, the answer to guesses[i] is answers[i].

Help Adam make the next guess. The next guess must be an integer between -1,000,047 and 1,000,047, inclusive, and it must be consistent with all of Betty's answers so far. If there are multiple correct return values, you can return any one of them.

Definition

Class:
NextGuess
Method:
guess
Parameters:
int[], String
Returns:
int
Method signature:
int guess(int[] guesses, String answers)
(be sure your method is public)

Notes

  • The constraints given below ensure that a correct return value always exists.

Constraints

  • guesses will contain between 1 and 50 elements, inclusive.
  • Each element of guesses will be between -1,000,000 and 1,000,000, inclusive.
  • answers will contain as many characters as there are elements in guesses.
  • Each character in answers will be '<' or '>'.
  • There will be at least one integer consistent with all guesses and answers.

Examples

  1. {100}

    ">"

    Returns: 654321

    Adam guessed 100 and Betty replied that her integer is greater. You can return any number between 101 and 1,000,047, inclusive.

  2. {98, 100}

    "><"

    Returns: 99

    Betty's number is greater than 98 and smaller than 100. There's clearly exactly one correct return value.

  3. {0, 100, 50, 75, 62, 56}

    "><><<>"

    Returns: 59

    It looks like Adam used some kind of binary search when asking the questions so far.

  4. {-23, -47, 1234, -47, -123456, -47, -47}

    "<><>>>>"

    Returns: -33

    Here Adam is just making some arbitrary guesses, including repeatedly guessing -47.

  5. {200, 400, 500, 100, 300}

    ">>>>>"

    Returns: 501

  6. {200, 400, 500, 100, 300}

    "<<<<<"

    Returns: 59

  7. {-279692, 74673, -998687, -177046, -950382, -446758, 197158, 146487, 667409, 923935, -189332, -914209, 197035, -460135, -980841, 381240, 661457, 976879, 518039, 290925, -785135, 9889, -122274}

    ">>>>>><><<>>>>><<<<<>>>"

    Returns: 197036

  8. {829452, 843710, 933590, -541660, 415272, 944090, -451407, 466346, -297750, -498817, -12179, 773405, -126201, 696833, 164477, 560656, -769008, -259603, 621255, -399547, 944093, 698613, 620964, 268053}

    ">>>>>>>>>>>>>>>>>>>><>>>"

    Returns: 944091

  9. {978860, 917682, 485173, 351177, 292102, 413711, -444227, 907348, 885745, -10543, 274630, 84157, 338662}

    "<<<<<<><<>>><"

    Returns: 274631

  10. {368654, -440344, -773330, -69031, -743360, 106041, -177161, 106048, -999053}

    "<>>>>>><>"

    Returns: 106042

  11. {182456, 189791, 181967}

    "<<>"

    Returns: 181968

  12. {-205748, -902093, 818418, -508216, 304529, 493681, -953414, -741740, -871581, 332793, 840334, 360264}

    ">><>><>>>><<"

    Returns: 332794

  13. {-88614, 650159, -396799, 593258, -890566, 167110, 999081, -759677, 53597, -754494, 727351, 600995, -707129, 183466, 65091, 770608, 28028, 698009, 639167, 901295, -861187, -962508, -281273, -48383, 477981, 643632, -866755, 894347, -258148, 26042, 94975, 655124, -132875, -280257, 182646, -364957, -32658, 369340, 253385, -124134}

    "<<><><<><><<><<<<<<<>>><<<><<<<<<<<><<<<"

    Returns: -281272

  14. {-894629, 560228, -804587, -243916, 305320, 785313, -771832, 711692, -266456, 956900, 792713, 784872, -106348}

    ">>>>><>>><<>>"

    Returns: 784873

  15. {-998701, -364406, 816495, 43393, -113444, -459518, -40758, -942279, -293981, -383518, 90987, -740272, 708417, -998709, -644013, 803316, 287775, -112721, 957476, -81704, -785027}

    "<<<<<<<<<<<<<><<<<<<<"

    Returns: -998708

  16. {47165, -165558, 174807, -183972, 294545, -193919, 72163, -217343, 555787, -45537, -785866, -873369, 309556, -633353, -873603, 558700, 786595, 894940, -990638, -31697, -781345, 394855, -998418, 532230, -631089, -529358, -847357, -708307, 253967, -118587, -743132, -819568, 320736, 866705, 154489, -160127, 951694, 655699, -136074, 973342}

    "<<<<<<<<<<<<<<><<<><<<><<<<<<<<<<<<<<<<<"

    Returns: -873602

  17. {-776203, 830555, -215456, -151982, -291478, -865170, -985156, 311387, -506642, 651462, 162621, 680159, 277277, 280568, -151792, 235448, -162020, -5817, -670590}

    "><>>>>><><<<<<<<><>"

    Returns: -151981

  18. {-811047, -924951, 172488, -330319, -341169, 611940, 500299, 391239, -100391, 144963, -107663, 200785, 700908, -307505, -576748, -79095, -786269, 921024, 888917, 337671, -261482, 61619, 578951, 968213, 748429, 345163, -809383, 981974, 89429, -715896, 672468, 963890, 613675, 93295, 614400, 426184}

    ">>>>>>>>>>>><>>>><<>>>><<>><>><<<><>"

    Returns: 611941

  19. {891767, 404090, 164991, 670267, -122737, 346227, -575542, 706850, -115472, 43919, -847765, 756797, -113685, -371725, 894323, -986784, -373580, 268004, 587096, -222618, -907275, -277182, 555449, -461402, -271232, 294750, -225365, -548989, -927568, 263816, 788207, 897371, -719800, 292255, 403676, 769126, -841300, 565696, -61736, -596876, -462748, -367480, -767645, -901514}

    "<<<<<<<<<<><<<<><<<<><<<<<<<><<<<<<<<<<<<<<>"

    Returns: -847764

  20. {877215}

    ">"

    Returns: 877216

  21. {660425}

    ">"

    Returns: 660426

  22. {163196, 828446, -918532, -926780}

    "<<<>"

    Returns: -926779

  23. {-347390, 498024, 279699, 69998, -270478, -920707, -890883, 859471, 70027, -863126, -362378, 922671, 261304}

    "><<>>>><<>><<"

    Returns: 69999

  24. {551638, 703024, 418002, 538361, 858858, -127033, 212809, -532747, -677062, -936081, 482870, 621425, 176831, -819009, -113031, -598631, -936064, 206096, 209617, -735796, -103188, -732445, -112829, -984028, 513413}

    "<<<<<<<<<><<<<<<<<<<<<<><"

    Returns: -936080

  25. {882154, -754040, 950301, 15710, -402019, -682253, 779564, 363984, 27713, 950295, -515080, -34002, 904601, 692220, 878760, 293384}

    ">><>>>>>>>>>>>>>"

    Returns: 950296

  26. {617109, 752889, -177118, 849680, -19861, -702953, -787470, -702165}

    "<<<<<>><"

    Returns: -702952

  27. {671205, 8577, -135307, 671758, 688549}

    ">>><<"

    Returns: 671206

  28. {303253}

    ">"

    Returns: 303254

  29. {937698, 941143, -672692}

    "><>"

    Returns: 937699

  30. {-522894, 184088, 940089, 206296, 132250, 643065, 106217, 772037}

    ">><<><><"

    Returns: 184089

  31. {-16627, 527103, -594614, -155620, 404180, 941433, 831322, 941605, -887449, 687510}

    ">>>>>>><>>"

    Returns: 941434

  32. {-528171, 241560, -327198, 194685, 593262, -64572, -317999, -919621, 361905, 829895, -219344, -760467, -564930, 620655, 276330, 296659, -378765, 937347, 581690, -219340, -473744, 465979, 117891, -693278, 364417, 419689, -389859}

    "><><<<>><<>>><<<><<<><<><<>"

    Returns: -219343

  33. {-338635, 912249, -46624, -555702, 451491, -120702, 165083, -351870, -750974, -215861, -809008, 613815, -340937, 165385}

    "><>><>>>>>><><"

    Returns: 165084

  34. {786757, 347124, 426800, 82695, -405682, 279144, -405177, -332029, -84757, 473050, -478233}

    "<<<<><<<<<>"

    Returns: -405681

  35. {57725, 58582, -635488}

    "><>"

    Returns: 57726

  36. {-432765, 456471, -841587, -408031, -56164, 698700, 657391, 800418, -841595, -26466, 719822, 949721, 315755, -180265, 458147, 303579, 32464, -802987, 340963, -300004, -382865, -926207, 459940, -544934}

    "<<<<<<<<><<<<<<<<<<<<><<"

    Returns: -841594

  37. {512102, -889050, -47672, 913008, 721373, -826535, -41642}

    "<>><<><"

    Returns: -47671

  38. {141942, -661837, 235069, -667536, 142212, -59743, 764512, 18147, 133439}

    ">><><><>>"

    Returns: 141943

  39. {645239, 989282, -526057, 645226}

    "<<>>"

    Returns: 645227

  40. {-321539}

    ">"

    Returns: 59

  41. {-590308, -818750, 287327, 356540, -421617, -243255, -613584, -417014, 919488, -611040, 266384, -784679, 699105, -670590, -911982, -882991, -654751, 705573, -400014, 621507, 682945, -374117, 164935, 581346, -707399, 788706, 87414, 283297, 569718, -57043, 37953, 93642, -327729, -623443, 922129, 242917, -793146, 67764, -834883, 828242, 581044}

    ">><<>>>><><><>>>><><<><<><><<>><>><<>>><<"

    Returns: 87415

  42. {-365064, 256900, 886666, 751151, -379692, 138410, -206372, 380101, -908799, -193489, 382634, -356860, -393600, -891406, 709596, 280384, -388818, -34990, -505197, -908823, 554593, -358183, -161793, 175780, 948747, -629201, -624341, -11684, -693051, 747445, -856184, 283277, 905874, 660503, -42697, 61468, 815871, -920443, -108739, 189779, 162294}

    "<<<<<<<<<<<<<<<<<<<><<<<<<<<<<<<<<<<<><<<"

    Returns: -908822

  43. {-453807, 729117, 705936, -571400, -564289, -899442}

    "<<<><>"

    Returns: -571399

  44. {-661422, 593614, -328695, -663524, 594014}

    ">>>><"

    Returns: 593615

  45. {-533369, 681345, -534843}

    "<<>"

    Returns: -534842

  46. {861143, -464512, 630650, -196256, -586984, 425417, 502829, -974477, -380921, -536798, -365757, 163736, 981217, -776467, 646463, -933786, 47305, -777071, -565202}

    "<>>>>>>>>>>><><>>>>"

    Returns: 630651

  47. {24743, -486864, -474918}

    "<><"

    Returns: -486863

  48. {954428, -113405, -22458, -925435, 613849, -861714, 90094, 915833, 154539, 754642, 75104, -975386, -180341, -606746, -147094, -513814, -925250, -111784, 296485, -995682, -594482, -497568, 32308, 519365, 964382, -961870, 28876, 605706}

    "<<<><<<<<<<><<<<<<<><<<<<><<"

    Returns: -925434

  49. {443491, 286460, -505419, 196414, -679334, -720454, 763978, -450597, -777499, -451114, -892255, 213858, -246165, 816419, -630372, 942693, 756917, -515603, 803977, 820014, -889280, 860747, -457784, -889276, 858020, -190888, -718230, 161266, -216488, 69324, -215090, 855586, 703555, 180786, -548868}

    ">>>>>><>>>>>><><>><<><>><>>>>>><>>>"

    Returns: 756918

  50. {-876487, -878265}

    "<>"

    Returns: -878264

  51. {624753, 827588, 42537, -60839, -538606, -319145, -880389, -584529, -508664, 842251, -639691, 686911, 444295, -643891, -715362, 69111, 474001, 473151, -43497, -996073, 543300, -104450, 74956, 241524, 781069, 454283, -104701, 342162, -580584, 208041, -185584, 97513, -302644, 150134, 555230, 824413}

    "<<<<>>>>><><<>><<<<><<<<<<><><><><<<"

    Returns: -104700

  52. {837507}

    ">"

    Returns: 837508

  53. {270704, -226851, -828223, -106908, 518431, -390562, 615814, 879529, 466185, 594355, 39071, 444838, -559505, -23052, 451777, -776305, 227573, 345385, -588603, 31802, -226847, -931273, -222579, -886953, 561758, -516677, -568123, 78030, -699673}

    "<>><<><<<<<<><<><<><<><><>><>"

    Returns: -226850

  54. {431286}

    ">"

    Returns: 431287

  55. {-839685, 803954, 684341, 662511, 662516}

    "><<><"

    Returns: 662512

  56. {852295, 569645, -963401, -742676, 585727, -300049, -637526}

    "<>>><>>"

    Returns: 569646

  57. {1000000 }

    ">"

    Returns: 1000001

  58. {100, 50 }

    ">>"

    Returns: 101

  59. {50, 100 }

    "<<"

    Returns: -33


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: