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
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
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
{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.
{98, 100}
"><"
Returns: 99
Betty's number is greater than 98 and smaller than 100. There's clearly exactly one correct return value.
{0, 100, 50, 75, 62, 56}
"><><<>"
Returns: 59
It looks like Adam used some kind of binary search when asking the questions so far.
{-23, -47, 1234, -47, -123456, -47, -47}
"<><>>>>"
Returns: -33
Here Adam is just making some arbitrary guesses, including repeatedly guessing -47.
{200, 400, 500, 100, 300}
">>>>>"
Returns: 501
{200, 400, 500, 100, 300}
"<<<<<"
Returns: 59
{-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
{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
{978860, 917682, 485173, 351177, 292102, 413711, -444227, 907348, 885745, -10543, 274630, 84157, 338662}
"<<<<<<><<>>><"
Returns: 274631
{368654, -440344, -773330, -69031, -743360, 106041, -177161, 106048, -999053}
"<>>>>>><>"
Returns: 106042
{182456, 189791, 181967}
"<<>"
Returns: 181968
{-205748, -902093, 818418, -508216, 304529, 493681, -953414, -741740, -871581, 332793, 840334, 360264}
">><>><>>>><<"
Returns: 332794
{-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
{-894629, 560228, -804587, -243916, 305320, 785313, -771832, 711692, -266456, 956900, 792713, 784872, -106348}
">>>>><>>><<>>"
Returns: 784873
{-998701, -364406, 816495, 43393, -113444, -459518, -40758, -942279, -293981, -383518, 90987, -740272, 708417, -998709, -644013, 803316, 287775, -112721, 957476, -81704, -785027}
"<<<<<<<<<<<<<><<<<<<<"
Returns: -998708
{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
{-776203, 830555, -215456, -151982, -291478, -865170, -985156, 311387, -506642, 651462, 162621, 680159, 277277, 280568, -151792, 235448, -162020, -5817, -670590}
"><>>>>><><<<<<<<><>"
Returns: -151981
{-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
{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
{877215}
">"
Returns: 877216
{660425}
">"
Returns: 660426
{163196, 828446, -918532, -926780}
"<<<>"
Returns: -926779
{-347390, 498024, 279699, 69998, -270478, -920707, -890883, 859471, 70027, -863126, -362378, 922671, 261304}
"><<>>>><<>><<"
Returns: 69999
{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
{882154, -754040, 950301, 15710, -402019, -682253, 779564, 363984, 27713, 950295, -515080, -34002, 904601, 692220, 878760, 293384}
">><>>>>>>>>>>>>>"
Returns: 950296
{617109, 752889, -177118, 849680, -19861, -702953, -787470, -702165}
"<<<<<>><"
Returns: -702952
{671205, 8577, -135307, 671758, 688549}
">>><<"
Returns: 671206
{303253}
">"
Returns: 303254
{937698, 941143, -672692}
"><>"
Returns: 937699
{-522894, 184088, 940089, 206296, 132250, 643065, 106217, 772037}
">><<><><"
Returns: 184089
{-16627, 527103, -594614, -155620, 404180, 941433, 831322, 941605, -887449, 687510}
">>>>>>><>>"
Returns: 941434
{-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
{-338635, 912249, -46624, -555702, 451491, -120702, 165083, -351870, -750974, -215861, -809008, 613815, -340937, 165385}
"><>><>>>>>><><"
Returns: 165084
{786757, 347124, 426800, 82695, -405682, 279144, -405177, -332029, -84757, 473050, -478233}
"<<<<><<<<<>"
Returns: -405681
{57725, 58582, -635488}
"><>"
Returns: 57726
{-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
{512102, -889050, -47672, 913008, 721373, -826535, -41642}
"<>><<><"
Returns: -47671
{141942, -661837, 235069, -667536, 142212, -59743, 764512, 18147, 133439}
">><><><>>"
Returns: 141943
{645239, 989282, -526057, 645226}
"<<>>"
Returns: 645227
{-321539}
">"
Returns: 59
{-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
{-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
{-453807, 729117, 705936, -571400, -564289, -899442}
"<<<><>"
Returns: -571399
{-661422, 593614, -328695, -663524, 594014}
">>>><"
Returns: 593615
{-533369, 681345, -534843}
"<<>"
Returns: -534842
{861143, -464512, 630650, -196256, -586984, 425417, 502829, -974477, -380921, -536798, -365757, 163736, 981217, -776467, 646463, -933786, 47305, -777071, -565202}
"<>>>>>>>>>>><><>>>>"
Returns: 630651
{24743, -486864, -474918}
"<><"
Returns: -486863
{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
{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
{-876487, -878265}
"<>"
Returns: -878264
{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
{837507}
">"
Returns: 837508
{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
{431286}
">"
Returns: 431287
{-839685, 803954, 684341, 662511, 662516}
"><<><"
Returns: 662512
{852295, 569645, -963401, -742676, 585727, -300049, -637526}
"<>>><>>"
Returns: 569646
{1000000 }
">"
Returns: 1000001
{100, 50 }
">>"
Returns: 101
{50, 100 }
"<<"
Returns: -33