Problem Statement
There was a sequence A that had at least three elements.
The sequence B was obtained by writing down the average of each three consecutive elements of A, from left to right.
For example, if A = {a, b, c, d, e}, then the sequence B would have the form {f, g, h} where f = the average of a,b,c, g = the average of b,c,d, and h = the average of c,d,e.
You are given the sequence B. All its elements are integers. You are also given the information that the first two elements of A were zeros.
Reconstruct A and return it.
Definition
- Class:
- AveragesOfThree
- Method:
- restore
- Parameters:
- int[]
- Returns:
- int[]
- Method signature:
- int[] restore(int[] B)
- (be sure your method is public)
Notes
- The sequence A is always unique.
- For the given constraints it is guaranteed that all elements of A are integers that fit into signed 32-bit integer variables.
Constraints
- B will have between 1 and 10 elements, inclusive.
- Each element of B will be between 0 and 1000, inclusive.
Examples
{3}
Returns: {0, 0, 9 }
The original sequence was {0, 0, x}, and as the average of 0, 0, and x was 3, it is clear that x must have been 9.
{1, 3, 6, 5}
Returns: {0, 0, 3, 6, 9, 0 }
{3, 1, 4, 1, 5, 9, 2, 6}
Returns: {0, 0, 9, -6, 9, 0, 6, 21, -21, 18 }
As seen here, some elements of the original sequence may be negative integers.
{64, 440, 566, 464, 584, 351}
Returns: {0, 0, 192, 1128, 378, -114, 1488, -321 }
{524, 395, 401, 630, 41}
Returns: {0, 0, 1572, -387, 18, 2259, -2154 }
{674, 24, 980, 104, 0, 270, 965}
Returns: {0, 0, 2022, -1950, 2868, -606, -2262, 3678, 1479 }
{741, 559, 9, 939, 835, 920, 323, 581}
Returns: {0, 0, 2223, -546, -1650, 5013, -858, -1395, 3222, -84 }
{235, 243, 535, 526, 367, 452, 980}
Returns: {0, 0, 705, 24, 876, 678, -453, 1131, 2262 }
{34, 574, 383, 733}
Returns: {0, 0, 102, 1620, -573, 1152 }
{615, 350, 571, 588, 780, 200}
Returns: {0, 0, 1845, -795, 663, 1896, -219, -1077 }
{807, 860, 746, 936}
Returns: {0, 0, 2421, 159, -342, 2991 }
{128}
Returns: {0, 0, 384 }
{100, 371, 592, 392, 520, 553}
Returns: {0, 0, 300, 813, 663, -300, 1197, 762 }
{99, 664, 892, 902, 232}
Returns: {0, 0, 297, 1695, 684, 327, -315 }
{223, 482, 762, 112, 791, 426}
Returns: {0, 0, 669, 777, 840, -1281, 2814, -255 }
{361, 691, 893, 293, 900, 791, 829, 244, 828, 568}
Returns: {0, 0, 1083, 990, 606, -717, 2811, 279, -603, 1056, 2031, -1383 }
{365, 545, 578, 41, 495}
Returns: {0, 0, 1095, 540, 99, -516, 1902 }
{576, 798, 404, 266, 967}
Returns: {0, 0, 1728, 666, -1182, 1314, 2769 }
{818, 226, 620, 116, 642, 861, 212, 388, 497}
Returns: {0, 0, 2454, -1776, 1182, 942, -198, 1839, -1005, 330, 2166 }
{985, 618, 947, 571, 152}
Returns: {0, 0, 2955, -1101, 987, 1827, -2358 }
{15, 174, 560, 642, 823, 779, 84, 76}
Returns: {0, 0, 45, 477, 1158, 291, 1020, 1026, -1794, 996 }
{523, 832, 637, 559, 487}
Returns: {0, 0, 1569, 927, -585, 1335, 711 }
{374, 940, 777, 33, 622, 271, 920}
Returns: {0, 0, 1122, 1698, -489, -1110, 3465, -1542, 837 }
{529, 966, 690, 931, 483, 936, 725, 653, 817, 974}
Returns: {0, 0, 1587, 1311, -828, 2310, -33, 531, 1677, -249, 1023, 2148 }
{849, 22, 590, 248, 216, 354}
Returns: {0, 0, 2547, -2481, 1704, 1521, -2577, 2118 }
{981, 887, 708, 188, 180, 481, 943}
Returns: {0, 0, 2943, -282, -537, 1383, -306, 366, 2769 }
{130, 100, 139, 747}
Returns: {0, 0, 390, -90, 117, 2214 }
{352, 540, 401, 110, 273, 454, 0, 668, 125, 424}
Returns: {0, 0, 1056, 564, -417, 183, 1053, 126, -1179, 3057, -1503, -282 }
{378, 21}
Returns: {0, 0, 1134, -1071 }
{42, 143, 185, 756, 523}
Returns: {0, 0, 126, 303, 126, 1839, -396 }
{205, 801, 791, 831, 506, 540, 464, 577}
Returns: {0, 0, 615, 1788, -30, 735, 813, 72, 507, 1152 }
{10, 711, 75, 179, 855, 154, 943, 556, 346, 650}
Returns: {0, 0, 30, 2103, -1908, 342, 4131, -4011, 2709, 2970, -4641, 3621 }
{898}
Returns: {0, 0, 2694 }
{240, 729, 62, 387, 126, 22, 90, 309, 55, 900}
Returns: {0, 0, 720, 1467, -2001, 1695, 684, -2313, 1899, 1341, -3075, 4434 }
{315, 244, 627, 917, 751, 547, 154, 563, 593}
Returns: {0, 0, 945, -213, 1149, 1815, -711, 537, 636, 516, 627 }
{633, 878, 584, 82, 576}
Returns: {0, 0, 1899, 735, -882, 393, 2217 }
{350, 569, 53, 976, 117, 423, 427, 362}
Returns: {0, 0, 1050, 657, -1548, 3819, -1920, -630, 3831, -2115 }
{577, 864, 777, 500, 612}
Returns: {0, 0, 1731, 861, -261, 900, 1197 }
{65, 994, 520}
Returns: {0, 0, 195, 2787, -1422 }
{924, 472}
Returns: {0, 0, 2772, -1356 }
{843, 18, 445, 829, 577, 534, 781, 989}
Returns: {0, 0, 2529, -2475, 1281, 3681, -3231, 1152, 4422, -2607 }
{800, 808}
Returns: {0, 0, 2400, 24 }
{802, 721, 501, 514, 116}
Returns: {0, 0, 2406, -243, -660, 2445, -1437 }
{360, 815, 339, 170}
Returns: {0, 0, 1080, 1365, -1428, 573 }
{23, 601, 100, 687, 470, 962, 471, 1000}
Returns: {0, 0, 69, 1734, -1503, 1830, 1083, -27, 357, 2670 }
{653, 557, 702, 711, 705}
Returns: {0, 0, 1959, -288, 435, 1986, -306 }
{986}
Returns: {0, 0, 2958 }
{193, 843, 695, 293, 41, 790, 269, 555, 494}
Returns: {0, 0, 579, 1950, -444, -627, 1194, 1803, -2190, 2052, 1620 }
{70, 739, 804, 111, 900, 533, 726}
Returns: {0, 0, 210, 2007, 195, -1869, 4374, -906, -1290 }
{613, 488, 550, 762, 809, 370, 592, 319, 421, 788}
Returns: {0, 0, 1839, -375, 186, 2475, -234, -1131, 3141, -1053, -825, 4242 }
{749, 647, 93, 1000}
Returns: {0, 0, 2247, -306, -1662, 4968 }
{524, 828}
Returns: {0, 0, 1572, 912 }
{414, 976, 340, 551, 856}
Returns: {0, 0, 1242, 1686, -1908, 1875, 2601 }
{1000, 0, 0, 1000, 0, 0, 1000, 0, 0, 1000}
Returns: {0, 0, 3000, -3000, 0, 6000, -6000, 0, 9000, -9000, 0, 12000 }
{1000, 0, 1000, 0, 1000, 0, 1000, 0, 1000, 0}
Returns: {0, 0, 3000, -3000, 3000, 0, 0, 0, 3000, -3000, 3000, 0 }
{1000, 0, 0, 1000, 1000, 0, 0, 1000, 1000, 0}
Returns: {0, 0, 3000, -3000, 0, 6000, -3000, -3000, 6000, 0, -3000, 3000 }