Statistics

Problem Statement for "AveragesOfThree"

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

  1. {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.

  2. {1, 3, 6, 5}

    Returns: {0, 0, 3, 6, 9, 0 }

  3. {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.

  4. {64, 440, 566, 464, 584, 351}

    Returns: {0, 0, 192, 1128, 378, -114, 1488, -321 }

  5. {524, 395, 401, 630, 41}

    Returns: {0, 0, 1572, -387, 18, 2259, -2154 }

  6. {674, 24, 980, 104, 0, 270, 965}

    Returns: {0, 0, 2022, -1950, 2868, -606, -2262, 3678, 1479 }

  7. {741, 559, 9, 939, 835, 920, 323, 581}

    Returns: {0, 0, 2223, -546, -1650, 5013, -858, -1395, 3222, -84 }

  8. {235, 243, 535, 526, 367, 452, 980}

    Returns: {0, 0, 705, 24, 876, 678, -453, 1131, 2262 }

  9. {34, 574, 383, 733}

    Returns: {0, 0, 102, 1620, -573, 1152 }

  10. {615, 350, 571, 588, 780, 200}

    Returns: {0, 0, 1845, -795, 663, 1896, -219, -1077 }

  11. {807, 860, 746, 936}

    Returns: {0, 0, 2421, 159, -342, 2991 }

  12. {128}

    Returns: {0, 0, 384 }

  13. {100, 371, 592, 392, 520, 553}

    Returns: {0, 0, 300, 813, 663, -300, 1197, 762 }

  14. {99, 664, 892, 902, 232}

    Returns: {0, 0, 297, 1695, 684, 327, -315 }

  15. {223, 482, 762, 112, 791, 426}

    Returns: {0, 0, 669, 777, 840, -1281, 2814, -255 }

  16. {361, 691, 893, 293, 900, 791, 829, 244, 828, 568}

    Returns: {0, 0, 1083, 990, 606, -717, 2811, 279, -603, 1056, 2031, -1383 }

  17. {365, 545, 578, 41, 495}

    Returns: {0, 0, 1095, 540, 99, -516, 1902 }

  18. {576, 798, 404, 266, 967}

    Returns: {0, 0, 1728, 666, -1182, 1314, 2769 }

  19. {818, 226, 620, 116, 642, 861, 212, 388, 497}

    Returns: {0, 0, 2454, -1776, 1182, 942, -198, 1839, -1005, 330, 2166 }

  20. {985, 618, 947, 571, 152}

    Returns: {0, 0, 2955, -1101, 987, 1827, -2358 }

  21. {15, 174, 560, 642, 823, 779, 84, 76}

    Returns: {0, 0, 45, 477, 1158, 291, 1020, 1026, -1794, 996 }

  22. {523, 832, 637, 559, 487}

    Returns: {0, 0, 1569, 927, -585, 1335, 711 }

  23. {374, 940, 777, 33, 622, 271, 920}

    Returns: {0, 0, 1122, 1698, -489, -1110, 3465, -1542, 837 }

  24. {529, 966, 690, 931, 483, 936, 725, 653, 817, 974}

    Returns: {0, 0, 1587, 1311, -828, 2310, -33, 531, 1677, -249, 1023, 2148 }

  25. {849, 22, 590, 248, 216, 354}

    Returns: {0, 0, 2547, -2481, 1704, 1521, -2577, 2118 }

  26. {981, 887, 708, 188, 180, 481, 943}

    Returns: {0, 0, 2943, -282, -537, 1383, -306, 366, 2769 }

  27. {130, 100, 139, 747}

    Returns: {0, 0, 390, -90, 117, 2214 }

  28. {352, 540, 401, 110, 273, 454, 0, 668, 125, 424}

    Returns: {0, 0, 1056, 564, -417, 183, 1053, 126, -1179, 3057, -1503, -282 }

  29. {378, 21}

    Returns: {0, 0, 1134, -1071 }

  30. {42, 143, 185, 756, 523}

    Returns: {0, 0, 126, 303, 126, 1839, -396 }

  31. {205, 801, 791, 831, 506, 540, 464, 577}

    Returns: {0, 0, 615, 1788, -30, 735, 813, 72, 507, 1152 }

  32. {10, 711, 75, 179, 855, 154, 943, 556, 346, 650}

    Returns: {0, 0, 30, 2103, -1908, 342, 4131, -4011, 2709, 2970, -4641, 3621 }

  33. {898}

    Returns: {0, 0, 2694 }

  34. {240, 729, 62, 387, 126, 22, 90, 309, 55, 900}

    Returns: {0, 0, 720, 1467, -2001, 1695, 684, -2313, 1899, 1341, -3075, 4434 }

  35. {315, 244, 627, 917, 751, 547, 154, 563, 593}

    Returns: {0, 0, 945, -213, 1149, 1815, -711, 537, 636, 516, 627 }

  36. {633, 878, 584, 82, 576}

    Returns: {0, 0, 1899, 735, -882, 393, 2217 }

  37. {350, 569, 53, 976, 117, 423, 427, 362}

    Returns: {0, 0, 1050, 657, -1548, 3819, -1920, -630, 3831, -2115 }

  38. {577, 864, 777, 500, 612}

    Returns: {0, 0, 1731, 861, -261, 900, 1197 }

  39. {65, 994, 520}

    Returns: {0, 0, 195, 2787, -1422 }

  40. {924, 472}

    Returns: {0, 0, 2772, -1356 }

  41. {843, 18, 445, 829, 577, 534, 781, 989}

    Returns: {0, 0, 2529, -2475, 1281, 3681, -3231, 1152, 4422, -2607 }

  42. {800, 808}

    Returns: {0, 0, 2400, 24 }

  43. {802, 721, 501, 514, 116}

    Returns: {0, 0, 2406, -243, -660, 2445, -1437 }

  44. {360, 815, 339, 170}

    Returns: {0, 0, 1080, 1365, -1428, 573 }

  45. {23, 601, 100, 687, 470, 962, 471, 1000}

    Returns: {0, 0, 69, 1734, -1503, 1830, 1083, -27, 357, 2670 }

  46. {653, 557, 702, 711, 705}

    Returns: {0, 0, 1959, -288, 435, 1986, -306 }

  47. {986}

    Returns: {0, 0, 2958 }

  48. {193, 843, 695, 293, 41, 790, 269, 555, 494}

    Returns: {0, 0, 579, 1950, -444, -627, 1194, 1803, -2190, 2052, 1620 }

  49. {70, 739, 804, 111, 900, 533, 726}

    Returns: {0, 0, 210, 2007, 195, -1869, 4374, -906, -1290 }

  50. {613, 488, 550, 762, 809, 370, 592, 319, 421, 788}

    Returns: {0, 0, 1839, -375, 186, 2475, -234, -1131, 3141, -1053, -825, 4242 }

  51. {749, 647, 93, 1000}

    Returns: {0, 0, 2247, -306, -1662, 4968 }

  52. {524, 828}

    Returns: {0, 0, 1572, 912 }

  53. {414, 976, 340, 551, 856}

    Returns: {0, 0, 1242, 1686, -1908, 1875, 2601 }

  54. {1000, 0, 0, 1000, 0, 0, 1000, 0, 0, 1000}

    Returns: {0, 0, 3000, -3000, 0, 6000, -6000, 0, 9000, -9000, 0, 12000 }

  55. {1000, 0, 1000, 0, 1000, 0, 1000, 0, 1000, 0}

    Returns: {0, 0, 3000, -3000, 3000, 0, 0, 0, 3000, -3000, 3000, 0 }

  56. {1000, 0, 0, 1000, 1000, 0, 0, 1000, 1000, 0}

    Returns: {0, 0, 3000, -3000, 0, 6000, -3000, -3000, 6000, 0, -3000, 3000 }


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: