Xah Talk Show 2025-12-09 Ep721 Wolfram Language, Advent of Code 2025, Day 1, Problem 2

xah talk show ep721 2025-12 20d71
xah talk show ep721 2025-12 20d71

Video Summary (Generated by AI, Edited by Human.)


(* The current number. *)
c = 5;

(* The rotation number, E.g. L6. *)
n = 5;

newC = QuotientRemainder[c + n , 100]
(* {-1, 99} *)
Clear[xOperation]

xOperation::usage="xOperation[currentNumber, rotateN]
returns a list
{c,d}
c is the number of times it passed 0.
d is the new index number.";

(* this function is incorect.
when, currentNumber is 0 , and the result index number is also 0.
in this case, the returned value First Part sould minus 1.
 *)

xOperation[currentNumber_, rotateN_] :=
QuotientRemainder[currentNumber + rotateN , 100]

xOperation[0,0]
(* {0, 0} *)

xOperation[0,5]
(* {0, 5} *)

xOperation[0,100]
(* {1, 0} *)

xOperation[0,101]
(* {1, 1} *)

xOperation[0,-100]
(* {-1, 0} *)

xOperation[5,0]
(* {0, 5} *)

xOperation[5,-4]
(* {0, 1} *)

xOperation[5,-5]
(* {0, 0} *)

xOperation[5,-6]
(* {-1, 99} *)

xOperation[5,-99]
(* {-1, 6} *)

xOperation[5,-100]
(* {-1, 5} *)

xOperation[5,-600]
(* {-6, 5} *)

xOperation[5,5]
(* {0, 10} *)

xOperation[5, 600]
(* {6, 5} *)
initState = {0,50};
xinput = {-68, -30, 48, -5, 60, -55, -1, -99, 14, -82 }

Clear[doRotate]

doRotate::usage="
doRotate[{previousZeroCount, prevNumber}, rotateN]
returns a new {newZeroCount, prevNumber}.
where newZeroCount includes if current number is 0.";

doRotate[{previousZeroCount_, prevNumber_}, rotateN_] :=
Block[{xquotient, xremainder},
{xquotient, xremainder} =
QuotientRemainder[prevNumber + rotateN , 100];

Print[ {previousZeroCount,  prevNumber},{xquotient, xremainder} ];
{
previousZeroCount +
 If[ xremainder == 0,
  If[ prevNumber == 0, Max[Abs[xquotient] -1, 0] , Abs[xquotient] ],
  Abs[xquotient]] ,

xremainder}

]

Fold[ doRotate , initState, xinput ]

FoldList[ doRotate , initState, xinput ]
(* brb 5 min *)
initState = {0,50};

xinput = {20, 10, -11, 45, 13, 32, 46, -20, -1, -26, -33, -6, -34, 50, -41, -8, 16, -20, -39,
40, 30, 47, 20, -44, 16, -1, 50, -23, 32, -2, -1, -10, -28, 13, 46, 39, -17, 44,
24, 32, 18, -41, 11, -48, 7, 1, -21, 37, -43, -71, -50, 84, -36, 66, -64, -5, 34,
32, -61, -14, 83, -69, 94, 17, -11, -63, -37, -25, 70, 48, -1, 5, 29, 87, -49, -96,
88, -56, -76, 37, -73, 49, -93, 56, 79, -79, 85, -79, 70, 24, 38, -88, 46, 76, -72,
64, 83, 53, -36, 38, 41, -60, -234, -35, 948, -176, -86, 97, -52, -31, 65, -513,
234, -47, -84, 38, 93, 43, -43, 36, 64, 47, -84, 637, -39, -528, -48, 54, 21, -431,
371, 92, -601, 65, 44, -401, 57, -320, -924, 88, -2, 2, 52, 45, 12, -9, 26, 937,
74, 63, 44, -86, 342, 72, 438, 41, 20, -71, -64, 44, 27, 10, 83, -96, -501, -303,
83, -83, 57, -89, 60, -10, -18, -78, 23, -819, 18, -68, 93, -65, -22, 64, -346, 74,
-97, -77, 90, 99, -89, -358, -24, -18, 19, 902, 18, 42, -16, -67, 7, -61, -44, 58,
56, 86, 77, -197, -48, 276, -82, -65, -45, -44, 12, 835, -719, 47, -35, 988, 6, -92,
-196, 82, 36, 95, 69, -52, -17, -531, 13, 87, -69, -31, -17, -66, 83, 10, 85, 5,
543, -1, 55, -646, -47, -50, 7, -719, 673, 85, 399, -13, 86, -60, 788, -605, 5, 872,
24, 54, 86, -47, 74, -63, -72, -28, -579, 81, 98, 79, -1, 722, -48, 6, 41, -99, -26,
26, 64, 50, 88, 520, 57, -779, 83, -71, 399, 89, 92, 68, 940, -44, 44, -151, 15,
70, 566, 79, 6, -85, 958, 79, -54, -42, -159, 52, -93, 50, 48, 83, 78, -36, 36, -77,
77, 24, -61, -12, -19, -232, 36, -36, 12, -85, -27, 65, -65, -16, -51, 67, -78, -87,
71, 94, -217, 11, 779, -98, -68, 14, 16, -95, -42, 80, -830, 50, -51, 51, 93, -438,
-783, -28, -44, -64, -45, 809, -26, -274, -56, 97, -88, 75, 4, 3, -27, -12, 4, 41,
8, -46, 85, -888, 47, -8, 824, -67, 58, -177, 723, 44, 56, 70, 30, 97, 43, -39, 99,
-78, -196, -87, -39, 42, -528, 86, 20, -920, 916, -16, -19, -92, -17, 38, 43, 90,
-57, -58, 72, -54, -26, -9, 66, 41, 74, -86, -6, -39, -72, -5, 17, 99, -3, -50, 7,
-56, 2, 15, 18, -60, -73, -980, -20, -69, -31, -998, -16, 29, -15, -136, -71, 7,
59, -19, -40, -56, 60, -97, 93, 87, -587, -1, 1, 99, 5, -4, -89, -70, -62, -559,
-50, 88, -58, 23, 77, 406, 22, -28, -455, 55, 15, 43, 62, 686, -6, 19, -19, 44, 34,
40, -348, -294, 92, -342, -92, 918, 48, -24, -76, -865, -59, 13, -89, -6, -79, -105,
-71, -39, 226, 274, -35, 61, 33, 5, -64, -88, 24, -731, 53, -58, -87, -85, 72, 67,
4, 86, -288, 721, 87, -77, 88, 14, 98, -744, -656, 81, -81, -93, -974, -25, -453,
31, -14, -72, 43, 45, 18, -881, -25, 82, -184, 99, -181, -55, 39, 80, 320, 686, 6,
64, 483, 22, 19, 88, 73, -33, -8, 89, -89, 13, 32, -45, -72, -93, -535, 36, 24, 47,
593, 25, -72, 447, 17, -17, 23, 1, 53, 23, -75, -95, -13, 5, 18, -13, -6, -21, 64,
-304, -160, -509, 509, -98, 579, 19, 76, -7, 331, -99, -1, -222, 72, 50, -8, -88,
96, -84, 84, 690, 37, -27, 452, 80, -43, -85, 96, 10, 33, 57, -70, -30, 19, -183,
52, -349, 888, -27, -821, -18, -66, -95, 23, 977, -18, -811, 47, -18, -76, -24, -78,
-22, -29, 29, -42, 22, 96, -76, -47, 47, 128, -28, -56, 56, -82, -48, -50, 88, -916,
-9, 1, -32, 48, -356, -85, 51, -70, 24, -98, 34, 124, -58, 60, 526, 948, -90, -68,
-42, 972, 28, 23, 77, -83, -637, 52, -132, 57, -957, -88, 88, -179, -921, 10, 90,
-12, -88, 2, 98, 956, 44, -4, 59, -55, 89, -51, -41, 54, 55, -6, -27, 27, -53, -47,
-98, -228, 35, 11, 35, 33, 12, 39, -238, -1, -94, 51, 543, 15, -937, 92, 20, -12,
21, 87, 14, 45, -745, 70, 59, -52, 31, -8, -7, -898, -78, 83, -6, -88, -260, -413,
-76, -98, -359, 19, -51, -68, 76, 424, -23, 75, -249, -3, 63, -263, -21, 21, 75,
-915, -60, 147, -63, 48, -95, -931, 94, -86, 32, -46, -26, 43, 813, -30, 71, -70,
-1, -51, 16, -855, -360, 60, -26, -8, -559, 183, -21, -72, -7, -195, -72, 67, -63,
63, -7, -66, -727, 55, -66, -889, -68, 25, -321, 7, 48, 59, 60, -72, 19, -57, 59,
-56, -28, -186, 11, -53, -342, -50, 4, 41, 2, -8, 906, 6, 42, 60, -90, 82, 24, -60,
-64, 50, -50, -3, 85, 68, -850, 74, -93, -614, 55, -22, -52, -2, 6, -201, -18, 81,
-514, 61, -77, -955, 71, 47, 78, 375, -760, 60, 54, 395, -55, -94, 794, -94, 47,
44, 402, -42, 564, 85, -18, -99, 12, 63, 7, -65, 83, -36, -47, 267, -58, -9, -97,
41, -44, -55, 55, -58, 6, -61, -187, 66, 41, -64, -88, 5, 63, 42, 509, 77, 540, 98,
-51, 99, 63, -62, -66, 28, -96, 56, -20, -40, 17, -282, 65, -8, 8, -15, 15, 38, 84,
78, 73, 27, 32, 59, -10, 19, 49, 51, 89, -55, -65, 76, -6, 11, 50, 99, -36, 37, -7,
-614, -25, 31, -585, 56, 36, -92, -56, -383, -79, 55, 63, -52, -748, -41, 860, 82,
-98, 897, 75, 26, 1, -81, 17, 760, 31, 9, 62, 43, 43, -82, 96, 3, 76, -79, 87, -334,
84, 14, 30, -81, 2, -788, 86, 74, 26, -941, -4, -55, 8, -478, 20, 83, 19, 48, 69,
-488, -44, 55, -92, -78, -75, -47, -95, 62, -234, 67, 70, -35, -40, -13, -32, -950,
59, 62, 275, 4, 672, 93, -6, 23, -382, -278, 110, 68, 35, 43, 96, 604, 408, 14, 108,
33, 59, -19, 19, 85, 24, 15, 14, 62, -49, 83, -551, 17, -4, -63, 38, 95, 34, 59,
-695, 636, 19, -98, -30, -691, -147, 8, 9, 732, -2, -47, -53, -64, -36, 24, 40, 99,
27, 410, 83, 14, -524, 27, 72, -64, 92, 69, 323, 49, 56, 3, -54, -81, 82, -47, 28,
96, -6, -653, -36, 413, -19, 15, -352, -26, -63, 622, 13, -51, -81, -68, -32, -55,
55, -98, 49, -54, 48, 46, 9, -34, -15, -19, 273, 695, 43, 492, 38, -473, -13, -89,
-83, -5, 90, 68, -706, 106, 8, 84, 30, -190, 91, -55, 64, 85, -85, -57, -17, 74,
-82, 82, 826, -37, -32, -36, -66, -21, 82, -16, -27, 77, 46, -989, 9, -63, 47, -89,
-76, -740, -49, -46, -52, 86, 8, -85, -27, -430, 40, -40, 34, -34, -89, -41, 98,
32, 31, -13, 553, -71, 20, -948, 28, -86, 186, 5, -5, 96, 59, -55, -32, 26, -70,
-24, -677, -244, 13, -92, -999, -97, 96, -606, 6, 4, -4, 47, -30, 83, -141, 947,
-78, -913, -15, 68, 7, -75, -18, -82, 15, -73, -42, -13, -684, 97, 47, 53, 24, 38,
23, -51, 39, -73, 35, 22, 14, -71, -47, 58, -30, -81, 28, 731, -27, -38, 6, 96, -51,
55, 65, -49, -1, -95, -534, -86, -40, -42, -70, 50, -98, -59, -95, -35, -9, 16, 682,
-997, 218, 530, -48, -551, 48, -43, 43, -80, -792, 29, -22, -82, -76, -52, 75, -29,
71, 593, -39, -596, 71, 89, -27, -33, -77, 59, -76, 67, -426, -389, 90, 74, -22,
-49, 101, -52, 34, -69, -13, 92, 810, 688, 58, 614, -14, 77, -47, 70, -40, 840, 91,
54, 14, -258, 99, 84, 67, 62, -64, 48, -197, -20, -74, 74, -880, 10, 55, 35, 68,
-774, -44, 875, 63, 807, 13, 92, -392, -74, -34, -66, 44, 120, 802, -29, 6, 23, -492,
-8, 83, 80, -5, 42, 92, 77, 24, 77, -2, 32, -12, -88, 97, -85, 88, 57, -957, -68,
-40, 56, 452, 47, -47, -610, -90, -92, -808, -62, 94, -20, -68, -17, -177, 563, -13,
-89, 71, -282, -41, 548, 87, 26, -92, 695, 67, -10, 20, -81, 37, 44, 317, 83, 39,
168, 93, 89, -26, 19, -19, -44, -19, 227, 30, -79, 5, -83, 9, -19, -90, 525, -42,
65, 87, -35, -68, -119, -53, 40, -47, -453, -71, -29, 1, 80, -25, 9, 24, -89, 12,
88, 44, -44, -36, 80, 32, 24, 86, 6, 11, -66, 63, -110, -90, -69, 369, 49, 65, 82,
-96, 85, 15, -10, 210, -355, 55, 51, 31, 30, -64, 752, 17, -87, -30, 79, 718, -897,
-66, -634, 138, 62, 96, -96, -122, 18, 88, -29, 44, 430, -45, -97, -51, -76, -60,
-66, -34, 992, 25, 69, -52, -534, 72, -71, -1, -30, -70, 55, 45, 1, -19, 3, 53, -15,
94, -391, -84, -20, -408, -14, 19, -29, -60, 46, -76, 26, -785, 59, -45, 13, 32,
71, -23, -9, 61, 414, 22, -24, 104, -5, -311, -14, -750, -36, -755, 55, -95, -39,
46, -40, 28, 5, 77, 18, 11, 60, -71, 13, 32, 55, 823, 89, 88, 49, -65, 3, -87, 98,
-32, 86, 87, 57, -71, 44, 99, 364, -49, 20, -8, 9, 607, -62, 51, 923, -41, -99, -953,
-8, 52, 426, -48, 303, 45, -49, -51, -22, -3, -10, 11, -81, -471, 76, 50, 750, -41,
-79, -23, 13, -4, -57, 91, -89, -369, -42, -39, -86, -56, -719, 345, -45, 28, 72,
-92, -47, 85, -49, -97, -78, -822, 11, -63, -48, 11, 544, -55, -24, 62, -38, 50,
50, -46, -32, -21, -74, -35, -10, 43, -84, -8, -833, 40, -82, -78, -16, -73, 9, 965,
-65, 41, -941, -77, -76, 53, -37, 1, 36, -41, -281, 22, 911, -11, 822, 460, 18, -70,
-74, -443, 922, 65, 34, -34, -544, 84, 80, -120, -543, 49, -99, 42, 751, -25, 825,
48, -97, -60, 28, 81, -43, -818, -25, 86, -21, -547, 71, -3, 54, -54, 8, 692, 85,
-85, 629, 86, -79, 6, -626, 3, 97, -16, 84, 87, -471, -96, -704, -31, -33, 13, -77,
28, 57, 67, -974, 38, 8, 17, -336, -77, -75, 61, 14, 34, 19, -52, 27, -228, -605,
73, 32, 90, 10, 34, 48, 18, -59, 789, 70, 7, 83, -7, 17, 54, 42, 363, 793, 48, -91,
-9, 49, -28, 79, 43, 28, -62, -80, 4, -33, 59, -19, -232, 192, 47, 17, 36, -24, 18,
6, -286, -25, 11, -67, -79, -1, -19, 66, 26, 423, -205, -92, 448, -33, 41, 12, -60,
-43, -95, -795, -36, -20, -69, 72, -74, -95, -79, 80, 94, 95, -13, 78, 19, 21, 43,
17, -27, 66, 50, 370, 34, -53, -60, -93, -47, -14, 2, -88, -33, -354, 48, 59, -20,
-96, -36, 60, 72, -287, -1, 94, -99, 29, -36, -2, -998, -39, -78, -51, -39, -9, 51,
51, 88, 422, -120, 3, 21, 84, 75, 83, 468, 90, 30, 593, 77, -71, 71, -61, -39, -491,
54, -76, -383, -4, 42, 58, -70, -98, 12, -44, 12, 88, 731, -94, 912, -81, 372, -40,
82, 45, 62, 11, -195, -31, 26, 80, 20, -176, 76, 96, -96, -58, -12, -558, 28, 91,
-91, 65, -34, -52, 21, 64, 96, 28, -88, 93, -33, -53, 93, -390, 44, -92, 65, 39,
34, 56, -62, -78, -28, -32, 2, -347, 58, -990, 21, -78, -50, 28, -80, -70, 50, 4,
-282, 78, 41, -70, 342, 18, 69, -55, 55, -51, 12, 839, 51, -782, -69, 86, -78, 921,
-43, -74, 88, -655, -80, 231, -59, -925, -39, 981, -79, 76, 949, 99, -63, -36, 25,
93, 297, -79, 22, -58, 162, -73, -789, 665, -93, 37, 12, 88, 4, -621, -92, 86, 14,
31, 409, 60, 43, -90, 47, -56, 556, -22, 64, -50, 66, -58, 584, 14, 2, 21, 79, -134,
-66, -93, 23, -52, 87, -49, -916, -47, -766, 72, -9, 57, -5, 198, -69, 59, 10, -79,
33, 46, -58, 83, -49, -98, -43, -51, 76, 929, 85, 26, -16, -253, -31, 18, -732, -86,
-68, -69, -58, -5, -82, 31, -835, -14, -19, 919, 860, -660, -20, -50, -30, -28, -674,
47, -45, -71, -37, 78, -70, 92, 8, -46, -35, -19, -44, -46, -878, -95, -37, -31,
-34, 78, 61, 26, -57, -57, -124, -10, 48, -81, -1, -42, -16, 61, 4, 11, -936, -67,
905, 62, -64, -498, 85, -231, 62, 87, -363, 741, 11, -133, -290, 396, 45, 71, -25,
6, 115, -15, 16, -78, -50, -72, -99, 60, 23, -42, 43, 39, -91, 552, -630, -80, -921,
22, -62, 36, 99, -65, 32, 68, 17, -560, -16, 64, 56, -34, -91, 529, 48, 42, -43,
-53, -94, 96, -63, -284, 86, 16, -16, -57, 23, -66, 40, -40, 145, 59, -304, -196,
21, 193, -98, -820, -93, -632, -75, 33, -33, 74, 1, -75, -872, 72, -61, -94, -64,
-81, -96, -4, 3, 97, 17, -40, -877, 81, 99, 14, 37, -63, -86, -33, 46, -95, -81,
81, -50, 50, 38, -68, -298, 6, -812, -77, -64, 75, -23, 723, 36, 64, -29, 988, -59,
-20, 103, -83, -14, 74, 44, -95, 689, 29, 16, 57, 15, 985, -22, 66, -58, -16, 30,
764, -59, -71, -273, -59, -73, -42, -674, 27, -940, -24, -415, 39, -319, -281, -82,
-53, 333, 2, 1, 99, -50, 886, 18, 89, 57, -859, -20, 79, 21, 79, 8, -780, -28, 572,
-72, 32, -870, 91, 45, 965, 99, -62, -417, -73, 90, -697, 270, 812, -94, 54, 99,
-44, -53, -66, -81, 80, 20, 94, -72, 78, 35, 565, -64, 98, -34, -246, -10, -46, -5,
-486, 93, 96, -14, -82, -46, 78, -54, 97, 41, -19, -97, -832, -862, -85, -8, 87,
-54, 992, 62, -681, 85, 98, -743, 10, 31, -6, 87, 58, 87, 92, -87, 53, -134, 50,
528, -53, -53, 78, 716, 81, -97, -593, -62, -396, -70, 3, 41, -23, 85, -57, -13,
-38, 71, 28, -876, 297, 73, -806, -632, -32, -14, -69, 83, 63, -676, 13, -76, 713,
13, 83, -15, 531, -27, -84, -17, -121, -909, 9, 27, -28, 960, 183, -42, 50, 50, -7,
-87, -62, 26, 30, -28, 28, 81, 42, 56, -28, -814, -74, 37, -97, -203, -70, 57, 413,
-658, 208, -50, 72, -816, 967, -38, 315, 646, 27, -82, -22, -33, 638, -8, -24, -42,
85, 16, -921, -280, -59, 46, -61, 227, -23, -28, -2, -49, -77, 8, -81, 52, 29, -282,
349, -28, 86, 880, -87, 591, -37, -738, 9, 75, 37, 63, -287, -13, -2, -98, 64, -64,
-89, -60, -51, 82, 18, -45, -13, 17, 4, -84, -86, -12, 46, -27, -6, 98, -73, 2, -62,
10, -328, -85, -45, -680, 35, 825, 17, -850, -34, -56, -311, 43, 60, -382, 11, -89,
511, 60, 29, 54, -54, -50, -34, 25, -30, -11, -57, -48, -50, 12, 77, 66, 311, 89,
-92, -8, 9, -9, -857, 57, 45, -90, 14, -269, -47, 147, -40, 40, 64, 58, 1, -23, -68,
-24, 392, -511, -89, -877, -82, -44, 75, -18, -72, 418, 77, -68, 49, 42, -84, -16,
94, 6, -72, -10, 82, 32, 368, 73, -44, -29, 220, 80, 45, -45, -530, 30, -62, 7, 355,
84, -388, -96, 45, -32, -313, 40, 50, 56, 27, -73, 12, 18, -287, -95, -48, -80, -778,
5, -47, 25, 33, 3, -10, -39, -567, 72, 58, -95, 6, -86, -93, 93, -31, 31, 86, -86,
-92, -3, 77, 37, -865, 46, -44, 39, -95, 82, -6, 24, -279, 22, 26, 431, -68, 68,
-865, 65, -393, 894, 23, 76, 35, 20, 43, 79, -36, 60, -52, -91, 42, 97, -697, 550,
82, 68, -98, 98, -8, -59, -51, -78, 10, -31, 917, -508, -92, 63, 19, 93, 25, -20,
88, -68, -2, 702, -69, 69, 34, -34, 8, -8, -15, 53, 62, 85, 815, -62, 93, -76, -65,
-67, -123, -18, -82, -22, -577, -42, -57, 73, -75, -25, 25, 171, 29, 87, 56, 57,
-11, -89, 55, 38, 68, 965, -19, -32, 466, -15, -16, -69, 59, -53, -90, 1, 99, -16,
24, 93, 62, -6, 86, 15, 85, 399, -60, 38, -56, 620, 59, -673, -613, 843, -57, 20,
-10, -10, 663, -11, -52, 156, 44, -23, -42, -22, -213, 7, -7, -19, -632, 51, 71,
-71, 91, -97, -94, -70, -6, 76, 71, -43, -34, -1, -93, -91, 33, 30, 28, -14, 91,
-319, -87, -71, 86, 997, -83, -289, -68, 73, -16, 69, 51, 17, 63, 656, -5, -2, 48,
-81, 77, -70, -423, -57, -43, -35, 98, 77, -86, 2, 44, -56, 356, -16, 363, 98, 55,
-17, 28, -564, -4, -743, 2, -2, -9, -21, 897, 353, -27, -83, -440, -70, 155, 53,
292, -56, 56, 76, 224, 63, 937, -13, 13, 79, -79, -89, -19, 48, -40, 32, 37, 31,
-8, 875, -67, 27, -9, 92, -883, 224, 75, -26, 74, 90, -16, 874, 99, -21, -840, -60,
-71, -15, 86, 445, 55, 94, -7, -50, 80, -87, 70, -79, -17, 996, 86, 214, 29, 71,
63, -63, -22, 2, 50, 69, 86, -585, -28, -52, -418, 2, 750, -645, -72, -848, -428,
-61, -16, -84, 16, 261, 530, -75, 625, -3, 46, -31, 39, -723, -85, -56, 21, 35, 83,
90, -86, -33, -54, 77, -865, 114, -293, -39, 88, -81, 59, 740, -64, -30, -7, -99,
695, 61, 88, -99, -96, -892, 10, 33, 25, -25, -147, 47, -76, 83, 93, -36, -846, -618,
-59, -32, -20, 11, 95, -83, -110, -96, -6, 189, 6, 17, -12, -80, -20, 49, -67, -82,
167, 33, 3, -3, -12, 15, -26, -97, 20, 74, -74, 73, 27, -47, -153, -502, -13, -95,
10, 63, -63, 92, 8, 708, 89, 546, 357, -474, 89, 85, -18, 82, -664, 712, -28, 98,
-5, 11, -62, 674, 63, -63, -263, 5, -6, -55, -63, -18, -20, -743, -89, 52, -99, -1,
65, 82, 81, 72, 56, -454, -627, 25, -75, 80, 814, 81, -263, 61, 2, 31, -18, 48, 36,
96, -8, 115, -77, 855, -578, -69, -31, -14, 14, 96, -196, 96, -396, -11, -78, -11,
-74, 441, 27, 6, -84, -33, -83, -32, 68, -851, 58, 30, 94, -934, -269, 737, 15, -16,
-122, -94, 16, 34, 2, 64, 81, 91, 87, -105, 46, -618, 62, 780, -24, -61, -86, -73,
-80, -99, -1, -81, 81, -60, 60, -66, 10, 56, -84, 84, -605, 27, 78, -333, 133, -395,
95, -11, 146, 91, 74, -82, -18, 83, -71, -845, 59, -37, -28, -27, -34, -76, 54, 15,
63, 20, 18, 87, -64, 99, -16, -3, -28, 502, -71, -55, -57, 19, -7, 32, -2, -24, -6,
8, 92, -11, -89, -16, 692, 50, 73, 11, 187, -63, 63, 3, 83, -83, 98, 778, -2, -86,
35, 57, -85, -95, -2, -61, 63, 94, 6, 142, 24, 11, -57, 60, -80, 886, 151, 16, 47,
-975, 75, 98, 82, -31, 49, 2, -89, -11, 62, 38, -27, 21, 406, -342, 53, 18, -113,
23, 77, 84, -64, 64, 325, 84, 91, -36, 76, -49, -91, -74, 3, 71, -25, -42, -833,
-197, -47, 44, 88, -7, 372, 19, -72, 54, 50, 67, 579, 50, -219, 19, 65, -94, -16,
-63, 89, 19, 432, 2, -34, 90, -889, -361, 635, -75, 44, -251, -38, -67, -24, -86,
41, -4, -23, -92, -35, 590, 45, 61, -99, -601, -438, -29, -16, 34, 88, 30, 492, -292,
26, -88, 17, -85, 67, -976, -41, 479, -629, -391, -21, -34, 46, -511, 50, -44, -617,
22, -401, -50, 51, 20, -536, -73, -36, -675, -42, 87, 255, -35, -20, -445, 22, -69,
-175, 22, -12, 86, 26, -79, 314, 38, 28, 899, -88, -62, 50, -86, -486, -79, 50, -875,
-59, -65, 27, 53, 20, -28, -72, -98, 7, -30, 21, -821, -79, 503, -83, -10, 35, -8,
366, -43, -36, -24, -115, -85, -30, 69, 21, -60, -30, -99, -21, 50, -35, -65, -647,
-113, -120, -20, -34, 84, 3, -53, -743, -751, 694, -342, -87, 11, -82, 36, 34, -75,
-5, -73, -17, -88, 39, -49, -2, -9, -891, -43, 760, 83, -388, -12, -1, -72, -18,
34, -26, -17, 16, 998, -14, 48, 52, -21, -56, -27, 86, 45, 73, -27, -56, 83, -13,
13, -20, -241, -439, -814, 35, 79, 12, -99, -94, 51, 353, -753, 30, -45, 45, -41,
-78, 19, 4, -4, -6, 70, 12, 425, 85, 67, -51, -757, 55, 95, 38, 67, 65, -99, -111,
-49, -6, -52, -3, 35, 26, 97, -3, -143, 43, -44, 44, 37, 35, -72, -59, -860, 19,
38, 62, 97, -53, -544, -57, 57, -89, -97, 786, -82, -99, -23, 569, -76, -55, 97,
17, -48, -316, 8, -60, 60, 15, 93, -53, -23, 36, -60, 94, -369, 383, 92, -132, 80,
-762, 57, 34, -77, 74, -21, -14, -10, 71, -36, -8, -77, -979, 21, 979, 280, -91,
11, 79, 21, 54, -67, -21, 66, -32, 24, -313, 136, -52, 777, -72, -80, -40, 44, -813,
6, -56, -50, 55, -66, 710, -430, -5, -66, 262, -682, 87, 643, 19, 80, 467, 15, 773,
-55, -18, 58, -427, -61, -229, 59, -18, -20, 20, 14, 4, -97, 34, -268, -69, -45,
88, 392, -35, -41, -59, 526, 1, -11, -515, 29, 75, 94, -99, -69, -33, 2, -63, 1,
-38, 28, 53, -72, 8, 54, -51, 71, -61, 84, 86, -37, -29, -54, 620, -5, 5, 69, 831,
-36, -31, -33, 1, 29, 70, -15, 78, 79, 58, -555, -59, -46, -40, 47, 53, 66, 34, 89,
-769, 19, 8, -47, -5, -495, -49, 46, 3, 58, 42, 89, -60, 65, -250, -44, -26, -43,
69, 49, 23, -72, -11, -89, 882, 3, -35, -612, -38, -876, 17, -420, 73, -98, -51,
-82, 40, 39, 53, 5, -58, -642, -1, -299, -814, -86, 59, -71, -489, -99, 55, -55,
91, -63, -14, -71, 70, -190, -23, -28, -72, 33, -69, -64, 3, 35, 19, -540, -51, -18,
52, 6, -247, 73, 733, 80, -45, -329, 48, -97, -22, 59, 41, 1, -14, 44, 56, -87, 965,
51, -6, 5, 79, -93, 51, 50, -2, 628, -88, 60, 34, -915, -19, 55, 745, 67, -75, -92,
-98, 871, -75, 3, -19, 18, 62, -92, -32, 85, -23, -92, -26, 18, -40, 40, -86, 86,
-59, 32, -93, -32, 78, -45, -70, 89, 908, -45, 68, -26, 63, 32, 58, 86, -46, 2, -19,
19, 847, 59, -5, 90, 72, -63, -19, 19, -859, -16, -25, 59, -59, 39, -39, 431, -58,
27, -49, -29, 78, -42, -91, -67, 86, -786, -50, 570, -42, 5, 984, -76, -60, -25,
56, 98, 55, 85, 677, 93, -70, 83, 317, -471, 55, 16, -448, -155, 64, 339, -41, 173,
-20, -72, -20, -520, -24, -76, 89, 35, 13, -759, 624, 98, 37, 563, 99, -99, -703,
-57, -32, 61, 31, -630, -70, 60, -91, 250, 6, -25, 30, -69, 38, -42, 43, -9, 9, -927,
40, -76, 253, -619, -271, -425, 21, 99, 76, -71, 284, 93, 311, 790, -32, -46, 90,
-52, 62, -45, -76, 21, -91, -30, 221, -787, 81, 59, -53, -39, 12, -573, -27, -873,
87, -587, 8, -240, 431, 617, 92, -8, 7, 93, 57, 58, -41, 16, -78, 80, -92, 36, -536,
-80, -70, -27, -74, -82, -18, 51, -576, 7, -14, 83, 522, 878, -55, -60, 15, -79,
75, 4, -44, -1, -13, -8, -94, -13, -727, 40, 10, 91, 59, 19, -63, -56, -93, 93, -99,
56, 31, -51, -37, -30, 290, 40, 94, 254, -48, -15, -95, 86, -41, 35, 45, 19, 66,
532, -738, -50, -18, 89, -15, -22, 79, 90, -18, 953, -49, 83, 84, 357, -540, 37,
246, -70, 48, -78, -11, -77, 59, -71, 30, -77, 47, 61, 36, 68, 35, -64, 64, -76,
-79, 55, -95, -76, 671, -21, -28, 1, -452, 47, 85, -731, 99, 88, -569, 50, 40, -9,
-31, 17, 57, 651, -27, 33, 40, -51, 43, 12, 56, 93, -789, -79, -12, -13, -263, -937,
653, 39, -43, -49, 23, -23, -42, 789, 2, 251, 70, 99, -658, 89, 691, -427, 36, -57,
-50, 75, 332, 33, -1, 168, -929, 29, 53, -2, -51, -52, 52, 89, -24, -65, 65, 35,
822, -87, -75, -32, -668, -408, 114, -366, -27, 15, -46, -42, 14, -52, 90, -52, -83,
16, -906, -25, -97, -205, -27, -121, -52, -99, -1, 310, 90, -61, -39, 4, 81, 15,
187, 13, -84, 66, 51, 67, -656, 35, -48, 89, -606, 786, 73, -14, 41, -18, 818, -73,
73, 14, 18, 27, -81, 49, 1, -93, -33, -8, -694, -31, -83, 414, 60, 40, 88, 46, -34,
-451, -5, -86, 90, 52, -61, 47, -86, 5, -953, 418, -70, 696, 1, 69, 296, 38, -69,
69, 89, -989, 173, 42, 585, -638, -54, -29, -569, -10, 14, 47, 95, 99, -62, 807,
27, -24, -94, 63, -72, -74, 74, 458, 89, 953, 25, 89, -77, -47, 36, -133, -93, 21,
-21, -397, -3, 25, -340, 94, 7, 45, -31, 85, 88, 94, 933, -59, -292, -449, 28, -28,
-163, 645, 18, 11, 89, -4, 760, 79, -35, 55, -55, -10, 5, 809, -4, -51, 18, 28, 29,
-24, -53, 176, 25, -48, 41, -62, -74, 357, -84, 3, 29, -10, -71, -65, -26, -37, 56,
74, 16, -47, -4, -226, -60, -3, 27, 66, -81, 781, -61, 567, -673, 367, 22, 78, -955,
-207, -85, 768, -5, -37, -79, -60, 960, -93, -1, 47, 47, 43, -43, -62, 192, -85,
55, 36, 433, 731, -576, -824, -860, 162, -30, 46, 28, -46, 724, 48, 18, -790, -85,
-15, 50, 50, 97, -10, -87, 93, -46, 53, 82, 39, 79, 96, -96, -30, 84, -54, -2, -16,
60, -42, 88, -888, 63, 919, -82, -34, -64, -2, 4, -504, 66, -66, 73, -4, 72, 59,
-74, -26, -87, -210, -49, 66, -22, -98, -45, 64, -19, -64, -36, 94, -874, 880, 9,
-44, -291, 26, 53, 47, 86, 38, 97, -484, -145, -48, 31, 66, -41, -44, -44, 55, 10,
-77, 594, -94, -32, 24, 81, 192, 87, -952, 73, 73, -83, 37, -83, 83, 818, 82, -62,
62, -99, 42, 46, 2, -91, -18, 77, 41, 27, -27, 25, -25, -84, 80, -96, -117, 17, -329,
-71, -689, 89, 66, 352, 74, -60, 15, 53, 33, -33, -3, -95, 98, 53, 91, 1, -70, 91,
-66, -30, -10, 79, -3, -27, -35, 26, 94, -94, -88, -29, 83, -66, 50, -50, 26, 75,
-1, -84, -28, 84, -56, -16, 55, 22, 23, 95, 15, 90, -64, 64, -90, -93, 87, -4, 3,
-63, 69, -9, -37, -2, 10, 22, 39, 49, 33, -13, 36, 44, 13, -42, 2, -23, 36, 13, 35,
-32, 48, 3, 28, 20, 2, -12, 44, -35, -34, -25, -36, -5, 42, 4, 3, 24, -2, 38, -9,
43, -13, -32, 15, 8, -27, 7, 40, 13, -22, -22, -34, 36};

Clear[doRotate]

doRotate::usage="
doRotate[{previousZeroCount, prevNumber}, rotateN]
returns a new {newZeroCount, prevNumber}.
where newZeroCount includes if current number is 0.";

doRotate[{previousZeroCount_, prevNumber_}, rotateN_] :=
Block[{xquotient, xremainder},
{xquotient, xremainder} =
QuotientRemainder[prevNumber + rotateN , 100];
{
previousZeroCount +

 If[ xremainder == 0,
  If[ prevNumber == 0,
     Max[Abs[xquotient] -1, 0] ,
     Abs[xquotient]] ,
  Abs[xquotient]] ,

xremainder}
]

Fold[ doRotate , initState, xinput ]

FoldList[ doRotate , initState, xinput ]

Advent of Code 2025