Days 1, 2; Preparation, compilation and run scripts; Project structure; Empty sources and data files for other days

main
Der Teufel 2021-12-12 13:39:56 +01:00
commit 5c5cbb98f2
54 changed files with 5617 additions and 0 deletions

7
compile.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
set -xe
marst src/$1.a60 -o c/$1.c
gcc -O3 -lalgol -lm c/$1.c obj/util.o -o exe/$1.exe

2000
data/day01.txt Normal file

File diff suppressed because it is too large Load Diff

1000
data/day02.txt Normal file

File diff suppressed because it is too large Load Diff

1000
data/day03.txt Normal file

File diff suppressed because it is too large Load Diff

602
data/day04.txt Normal file
View File

@ -0,0 +1,602 @@
79,9,13,43,53,51,40,47,56,27,0,14,33,60,61,36,72,48,83,42,10,86,41,75,16,80,15,93,95,45,68,96,84,11,85,63,18,31,35,74,71,91,39,88,55,6,21,12,58,29,69,37,44,98,89,78,17,64,59,76,54,30,65,82,28,50,32,77,66,24,1,70,92,23,8,49,38,73,94,26,22,34,97,25,87,19,57,7,2,3,46,67,90,62,20,5,52,99,81,4
7 42 22 92 60
8 88 99 13 12
16 62 86 24 77
20 57 19 67 46
36 83 54 63 82
7 86 50 78 16
83 45 67 94 58
21 98 99 85 43
71 19 31 22 4
70 51 34 11 61
4 95 84 51 36
43 40 37 23 85
14 90 8 59 99
0 88 68 93 81
25 6 55 19 48
15 39 78 6 13
71 3 81 95 62
22 46 67 72 40
89 69 0 37 41
68 79 58 16 42
63 50 77 34 12
29 42 20 17 47
80 10 30 72 66
5 89 64 25 21
91 88 45 44 37
78 89 32 26 56
8 40 54 25 49
36 30 21 23 3
12 58 2 29 7
33 99 15 84 44
96 68 56 49 43
55 22 16 91 32
2 17 61 12 37
25 72 1 31 88
57 34 42 8 71
18 39 86 94 60
96 85 64 51 28
48 14 23 36 35
6 84 99 90 81
43 41 74 68 32
9 58 60 7 61
96 33 67 0 19
77 2 14 99 79
13 36 90 95 29
86 91 49 72 20
3 79 24 37 97
86 10 77 31 32
48 89 35 73 94
65 21 23 82 36
26 51 69 12 99
66 28 73 6 32
11 30 35 42 76
33 40 25 89 52
46 88 55 50 64
86 71 75 36 80
36 34 35 68 49
61 3 24 84 71
47 42 91 39 80
25 51 38 59 62
90 21 28 52 8
19 93 45 40 55
41 11 79 9 70
16 87 32 22 94
12 4 72 60 0
36 77 78 33 83
43 44 7 39 96
30 75 62 63 8
19 12 40 68 45
50 27 3 52 57
85 67 33 16 36
33 16 66 9 7
93 34 52 31 13
3 49 94 39 37
76 59 78 51 83
40 47 22 42 73
44 60 52 7 38
36 53 79 11 93
46 65 40 68 58
67 73 99 31 87
22 49 33 59 75
83 61 17 60 86
38 33 96 75 22
19 42 76 55 97
93 94 29 50 88
34 16 91 3 40
92 48 40 69 98
12 46 37 25 78
43 11 34 22 32
0 18 17 86 1
89 26 65 76 96
66 48 43 99 98
68 2 51 87 38
72 77 47 20 97
36 18 80 10 96
88 53 30 65 91
10 3 65 38 56
40 14 64 45 23
42 88 31 85 17
19 83 46 51 5
35 47 28 0 50
75 53 9 1 29
92 94 41 82 38
39 70 80 11 56
64 28 27 22 60
66 97 48 65 71
91 17 37 49 83
66 1 79 87 60
78 46 32 30 57
50 56 23 6 24
13 89 42 70 77
59 28 58 56 73
22 4 53 91 23
8 41 36 52 80
30 68 34 70 63
90 3 61 98 1
50 76 99 74 81
57 25 59 69 96
26 15 43 64 44
73 18 61 91 23
87 13 46 90 60
63 1 77 93 47
12 90 56 46 0
57 73 79 87 43
32 13 53 37 14
22 3 23 78 69
49 55 93 57 2
67 12 81 70 79
60 44 94 23 54
48 92 99 1 82
76 36 62 32 98
94 15 97 55 17
39 40 84 92 49
72 45 52 95 96
61 58 88 23 78
80 48 37 35 66
86 88 20 12 7
72 52 95 34 11
1 47 83 63 18
25 35 76 15 92
96 64 82 54 31
61 83 5 24 36
88 80 48 26 85
2 42 70 98 45
27 6 65 94 15
71 73 3 47 38
85 49 19 41 53
4 99 43 93 60
34 28 78 23 50
54 79 35 25 94
27 63 16 51 39
89 49 13 1 32
85 87 8 38 64
14 5 63 16 27
23 76 43 59 94
78 80 83 15 54
26 66 73 74 64
9 81 62 75 25
46 13 55 43 1
0 2 10 58 34
76 11 82 42 16
68 93 18 99 84
96 25 44 69 97
24 80 74 27 6
33 14 54 17 28
10 47 2 63 59
12 56 29 63 0
30 94 5 19 18
9 13 24 72 60
91 46 49 47 51
8 54 26 7 21
36 16 26 97 56
22 86 58 94 89
66 84 50 82 53
87 29 45 95 33
49 61 46 2 52
87 35 65 27 69
12 98 94 18 26
22 79 1 74 84
0 72 29 70 19
96 28 95 25 77
79 95 3 91 44
57 61 77 80 29
6 49 37 62 16
71 73 21 52 48
92 17 32 2 43
29 78 6 94 47
83 63 68 16 56
38 85 92 60 35
81 57 75 79 7
69 22 93 49 4
93 21 2 17 22
76 70 3 80 51
7 88 14 0 61
18 16 29 86 74
65 47 8 45 46
1 20 23 79 14
27 76 3 90 85
88 35 7 10 92
67 97 59 41 8
56 57 65 45 81
57 14 41 89 55
47 75 90 23 94
26 3 40 17 97
65 44 12 4 30
16 81 64 79 13
63 3 22 7 10
36 76 14 77 38
48 27 40 9 60
31 56 75 74 78
86 64 71 90 67
52 28 9 19 66
15 86 61 2 89
93 3 44 46 91
11 7 5 32 72
60 10 92 29 88
88 86 59 8 68
10 48 12 61 21
54 97 45 55 11
67 9 22 64 5
7 34 32 69 44
69 45 14 6 3
16 32 33 26 73
79 30 5 1 72
64 9 60 59 22
23 56 37 41 2
25 65 60 87 39
41 53 24 91 93
43 59 26 78 96
16 33 88 18 7
74 63 34 30 20
38 23 97 73 35
51 31 90 98 80
56 44 60 8 7
71 10 87 0 99
64 30 20 22 18
61 57 31 69 74
94 0 96 90 59
21 3 72 81 4
43 41 58 45 2
62 7 65 71 19
60 20 19 48 11
2 68 58 91 76
57 12 52 29 13
42 53 38 64 81
26 70 16 32 54
15 93 68 77 49
80 64 45 10 94
30 62 5 66 40
46 51 52 22 56
7 90 14 6 47
75 87 31 24 11
47 61 14 69 50
33 44 12 26 58
91 10 35 5 29
99 81 16 92 53
50 37 47 13 83
63 96 30 36 86
72 66 93 73 74
98 60 3 84 28
52 14 70 21 55
65 19 32 28 92
9 8 51 0 98
56 26 53 13 86
2 70 16 52 4
69 10 97 38 79
34 48 46 66 44
59 19 18 20 13
99 26 62 16 2
91 25 11 84 4
52 31 70 71 14
92 1 49 65 77
85 8 27 87 84
41 73 81 15 58
14 93 33 17 52
35 90 37 38 0
11 46 2 20 31
97 50 12 79 96
89 77 57 61 40
65 75 4 33 17
66 81 47 83 98
34 57 44 0 99
32 25 17 48 90
27 73 63 61 81
50 22 4 28 41
6 24 70 13 45
96 18 36 16 10
37 11 50 56 88
80 40 75 90 12
19 43 33 61 58
30 59 99 69 98
31 77 98 90 51
34 10 80 73 97
2 37 33 17 0
59 78 91 87 45
86 7 44 64 1
26 49 66 13 16
95 89 52 88 55
77 60 3 93 73
64 45 98 38 42
34 86 1 71 68
59 71 24 18 99
23 28 88 54 26
90 37 6 76 4
41 64 27 89 67
29 95 82 83 60
8 0 90 41 61
29 66 2 35 13
12 9 5 36 93
67 94 82 77 37
30 42 32 80 78
53 6 23 57 38
8 25 76 18 15
19 17 20 48 72
26 54 64 7 40
50 94 82 67 99
93 5 67 10 4
77 80 97 14 2
34 9 61 24 21
63 89 28 76 62
54 29 38 68 69
72 48 66 89 22
63 39 71 59 68
2 95 94 21 92
6 28 44 62 15
35 78 80 11 91
82 8 59 66 25
84 87 95 60 12
9 52 83 28 49
23 34 85 94 96
43 41 39 2 73
81 56 55 29 70
94 96 7 90 2
95 45 28 75 12
48 83 65 22 91
68 98 5 41 73
36 22 45 14 74
35 60 54 15 30
86 49 27 82 4
87 2 52 50 21
39 62 40 1 19
99 7 85 24 65
26 17 36 35 1
2 62 38 45 48
72 68 32 59 11
28 53 64 21 76
61 63 94 50 55
34 42 39 66 37
22 72 18 89 12
16 23 4 0 41
75 64 3 44 5
87 82 53 5 19
26 54 36 1 38
28 30 48 97 95
34 91 99 23 8
46 35 33 29 66
76 89 94 77 58
24 31 1 40 25
44 71 42 61 8
16 41 28 33 50
6 85 66 43 51
91 28 70 89 43
1 76 26 90 45
24 2 6 82 23
77 68 16 51 81
58 86 52 29 18
95 0 25 19 91
10 65 30 72 42
41 8 77 58 23
94 60 34 11 67
24 1 64 78 44
40 76 21 37 15
44 26 80 77 88
25 72 38 34 9
75 81 43 86 68
59 30 87 61 73
0 63 62 82 93
70 61 14 56 3
54 43 92 78 27
26 7 99 77 73
21 30 44 50 40
2 60 45 17 73
75 67 68 20 18
16 30 24 37 12
79 50 8 65 19
85 95 54 90 47
69 68 54 66 17
39 19 20 33 44
12 27 50 60 36
53 81 8 7 87
82 97 18 4 74
58 63 8 42 28
70 95 39 54 61
30 56 79 37 82
15 32 83 27 45
52 13 90 97 62
11 50 56 66 84
96 94 57 17 49
68 58 90 34 59
81 36 91 8 45
62 35 6 93 48
82 89 54 87 80
94 6 45 53 62
31 34 58 85 77
24 25 91 99 26
41 0 59 37 23
93 41 53 31 87
7 22 39 86 73
71 34 60 57 6
52 64 48 99 90
66 76 62 45 40
5 84 85 67 26
11 1 0 95 21
48 59 43 94 62
22 74 40 49 89
51 20 90 78 96
0 45 43 79 25
41 10 95 86 80
4 60 82 33 75
44 46 38 17 76
22 58 27 73 66
54 50 7 92 79
11 43 38 94 5
63 80 33 58 4
12 91 28 70 97
26 99 41 52 90
23 26 95 8 17
73 77 61 89 82
78 80 64 19 96
81 92 47 44 59
54 24 63 74 32
86 85 37 80 45
47 44 92 29 49
67 48 95 51 88
36 8 56 16 30
0 97 84 24 13
81 61 42 87 92
30 75 17 67 2
83 44 96 52 1
37 78 31 15 19
40 9 72 7 28
10 85 17 38 22
46 35 90 12 27
76 42 7 2 30
55 57 60 9 49
79 73 97 1 21
52 36 11 82 91
22 7 46 21 12
62 42 66 68 10
31 18 76 20 84
28 79 61 39 86
73 99 34 54 45
43 28 18 76 40
57 58 63 9 11
89 65 2 12 90
38 97 49 15 27
28 84 24 17 49
33 69 75 53 92
81 48 89 19 34
59 1 18 72 79
6 22 2 86 85
72 78 30 40 19
54 16 25 81 28
41 99 7 79 14
83 76 29 8 91
5 60 11 51 37
77 78 34 59 29
62 69 54 8 97
80 53 25 66 85
81 90 31 51 52
63 41 57 68 18
43 62 11 41 7
37 44 34 10 51
67 36 61 77 70
59 1 25 42 88
29 71 60 15 24
30 65 57 35 84
34 33 72 73 28
38 51 4 52 14
58 59 85 87 39
88 81 11 93 71
19 5 23 71 75
70 9 57 69 14
49 29 22 28 10
42 48 63 73 6
79 18 4 39 88
16 27 31 88 86
29 40 65 68 39
15 95 93 69 22
66 48 18 84 11
7 51 92 96 99
0 69 51 12 82
4 81 62 2 49
27 66 95 83 70
94 97 99 63 19
87 75 77 73 44
82 83 75 95 53
46 47 31 14 64
71 70 11 51 87
7 16 63 38 29
89 13 33 41 0

500
data/day05.txt Normal file
View File

@ -0,0 +1,500 @@
503,977 -> 843,637
437,518 -> 437,225
269,250 -> 625,250
846,751 -> 646,751
18,731 -> 402,731
749,923 -> 749,986
557,758 -> 557,797
589,54 -> 589,616
20,136 -> 819,935
123,983 -> 12,983
802,624 -> 709,624
600,458 -> 128,458
209,703 -> 459,703
944,415 -> 742,415
270,718 -> 656,332
168,339 -> 283,339
558,172 -> 695,309
519,524 -> 480,524
456,400 -> 134,722
355,961 -> 352,961
757,158 -> 49,866
300,254 -> 618,254
554,275 -> 859,275
47,612 -> 622,37
696,885 -> 696,856
342,803 -> 342,429
830,649 -> 254,73
54,921 -> 958,17
72,691 -> 818,691
80,72 -> 80,546
762,649 -> 762,371
117,39 -> 605,39
778,605 -> 610,773
159,25 -> 67,25
462,825 -> 766,825
295,167 -> 357,167
741,379 -> 11,379
942,230 -> 942,26
802,672 -> 802,311
672,759 -> 330,759
419,97 -> 848,526
244,262 -> 938,956
281,988 -> 281,879
471,451 -> 471,907
238,387 -> 238,665
907,129 -> 907,368
119,734 -> 155,770
306,119 -> 306,568
166,175 -> 166,277
591,32 -> 591,855
779,324 -> 916,324
785,245 -> 884,245
504,884 -> 781,884
405,967 -> 664,967
17,16 -> 989,988
429,944 -> 729,944
15,31 -> 918,934
22,963 -> 971,14
199,280 -> 481,562
792,550 -> 792,485
215,141 -> 215,58
511,560 -> 511,224
940,134 -> 166,908
666,212 -> 666,193
881,514 -> 117,514
271,416 -> 614,73
354,784 -> 354,41
866,152 -> 866,969
75,924 -> 868,131
944,507 -> 944,556
726,315 -> 624,315
195,122 -> 593,520
463,311 -> 946,794
734,698 -> 734,953
520,98 -> 915,98
125,139 -> 616,139
570,841 -> 206,477
430,442 -> 430,893
653,59 -> 653,155
906,883 -> 314,291
932,157 -> 100,989
526,244 -> 362,244
28,837 -> 792,73
386,426 -> 386,673
121,66 -> 203,66
747,121 -> 392,476
590,989 -> 230,989
795,83 -> 795,398
741,522 -> 741,677
142,166 -> 470,166
13,645 -> 493,165
418,567 -> 418,970
94,877 -> 782,189
603,426 -> 603,916
364,304 -> 191,304
754,146 -> 754,507
294,678 -> 438,678
641,633 -> 217,633
31,133 -> 831,933
250,976 -> 250,355
274,558 -> 899,558
818,507 -> 693,507
414,465 -> 924,975
116,729 -> 116,951
960,843 -> 149,32
724,127 -> 498,353
552,43 -> 964,43
224,853 -> 224,363
768,214 -> 768,88
518,414 -> 518,119
917,824 -> 948,824
37,81 -> 882,926
333,390 -> 967,390
175,453 -> 388,240
960,395 -> 960,697
468,37 -> 468,275
745,318 -> 425,318
676,425 -> 903,198
531,663 -> 86,663
557,834 -> 557,967
650,931 -> 383,664
906,197 -> 906,567
675,637 -> 326,288
227,977 -> 51,977
347,524 -> 793,970
778,850 -> 778,342
343,155 -> 343,739
970,167 -> 161,976
800,127 -> 800,667
531,533 -> 193,533
222,776 -> 222,873
922,29 -> 13,938
452,808 -> 452,793
926,142 -> 926,198
940,93 -> 55,978
335,51 -> 938,654
789,352 -> 307,352
457,419 -> 469,419
463,12 -> 463,132
881,95 -> 431,95
531,57 -> 531,40
179,308 -> 516,308
767,907 -> 629,907
362,457 -> 362,262
774,896 -> 154,276
549,243 -> 247,243
130,933 -> 202,933
266,639 -> 189,716
209,717 -> 209,844
625,296 -> 625,575
739,785 -> 873,785
713,857 -> 94,238
97,28 -> 937,868
876,734 -> 344,202
180,608 -> 557,608
669,566 -> 669,389
112,779 -> 267,624
325,669 -> 449,669
102,915 -> 357,915
882,839 -> 882,512
330,699 -> 330,858
773,851 -> 773,429
171,187 -> 450,187
166,726 -> 166,74
15,134 -> 750,869
245,126 -> 245,518
919,484 -> 919,602
918,900 -> 918,372
736,515 -> 708,487
790,777 -> 790,303
479,541 -> 381,541
85,243 -> 317,475
619,441 -> 619,823
688,658 -> 688,404
381,475 -> 891,985
461,529 -> 145,213
833,885 -> 404,885
315,502 -> 315,770
450,934 -> 740,934
634,334 -> 634,202
785,866 -> 785,913
976,627 -> 976,102
65,491 -> 570,491
974,257 -> 503,728
662,938 -> 720,938
232,472 -> 215,472
805,504 -> 805,476
99,909 -> 99,399
64,947 -> 926,85
123,645 -> 153,615
908,10 -> 92,826
49,174 -> 819,944
115,136 -> 863,884
695,91 -> 695,612
715,527 -> 550,362
914,125 -> 914,86
14,980 -> 981,13
14,308 -> 14,355
356,895 -> 766,485
989,10 -> 10,989
833,292 -> 833,184
786,785 -> 733,785
824,53 -> 116,53
349,547 -> 349,66
594,189 -> 636,189
359,399 -> 769,809
600,751 -> 600,46
520,236 -> 228,528
978,610 -> 978,832
689,575 -> 258,575
664,734 -> 850,920
245,672 -> 245,878
337,509 -> 578,509
893,613 -> 380,613
875,608 -> 875,444
264,701 -> 946,19
358,267 -> 358,648
926,61 -> 926,378
46,885 -> 190,885
662,131 -> 82,131
301,53 -> 301,533
21,839 -> 915,839
92,174 -> 113,174
145,680 -> 294,680
268,773 -> 268,193
698,893 -> 809,893
300,512 -> 807,512
749,408 -> 279,408
439,214 -> 439,172
622,740 -> 339,740
400,253 -> 400,486
859,686 -> 387,214
974,485 -> 974,486
70,987 -> 951,106
630,449 -> 630,544
796,212 -> 608,24
835,959 -> 835,725
779,755 -> 96,72
582,778 -> 440,636
350,479 -> 827,479
924,40 -> 605,40
918,832 -> 918,617
669,590 -> 191,112
748,214 -> 748,462
350,703 -> 163,703
393,791 -> 393,240
569,857 -> 569,939
412,375 -> 412,603
488,975 -> 22,509
100,372 -> 100,685
170,669 -> 212,669
546,734 -> 546,274
492,172 -> 492,354
36,134 -> 801,899
501,773 -> 582,773
287,694 -> 287,939
381,988 -> 367,988
609,360 -> 609,478
310,158 -> 25,443
409,716 -> 409,27
655,959 -> 383,687
16,697 -> 611,102
184,290 -> 930,290
580,79 -> 598,97
950,65 -> 777,65
144,288 -> 821,965
986,685 -> 986,412
549,702 -> 549,369
841,148 -> 259,730
958,31 -> 958,810
12,908 -> 856,64
264,793 -> 264,960
249,115 -> 249,935
707,714 -> 108,714
527,192 -> 982,647
703,883 -> 703,580
535,346 -> 543,346
851,185 -> 83,953
984,586 -> 984,681
913,574 -> 350,11
317,221 -> 405,221
398,673 -> 160,435
953,264 -> 547,670
790,115 -> 538,367
943,236 -> 295,884
571,746 -> 571,231
286,318 -> 131,318
143,251 -> 436,544
838,435 -> 793,435
732,782 -> 732,407
244,287 -> 244,335
376,29 -> 75,29
604,732 -> 738,732
730,30 -> 533,30
891,474 -> 891,25
786,140 -> 368,140
951,583 -> 828,460
665,897 -> 44,276
217,905 -> 742,905
745,583 -> 256,583
923,22 -> 23,922
763,336 -> 943,516
755,678 -> 755,101
35,790 -> 706,119
841,658 -> 841,634
986,66 -> 986,412
740,69 -> 740,878
852,733 -> 453,733
657,273 -> 215,715
239,824 -> 239,79
340,482 -> 340,238
969,834 -> 303,168
238,718 -> 931,718
603,63 -> 603,363
596,135 -> 367,135
184,474 -> 184,612
39,60 -> 920,941
456,103 -> 894,541
929,35 -> 738,35
199,528 -> 707,528
649,251 -> 134,766
969,209 -> 719,459
568,45 -> 306,307
259,703 -> 426,536
964,737 -> 342,115
101,890 -> 604,890
57,223 -> 812,978
939,99 -> 167,871
920,438 -> 920,247
185,384 -> 643,384
489,783 -> 121,415
837,938 -> 250,351
63,920 -> 945,38
475,45 -> 510,10
881,872 -> 141,132
24,238 -> 24,468
409,523 -> 409,706
200,309 -> 631,740
586,385 -> 900,385
219,250 -> 219,327
854,526 -> 854,725
946,343 -> 946,267
847,746 -> 717,616
172,203 -> 346,29
693,652 -> 545,652
824,115 -> 192,115
843,908 -> 333,908
769,784 -> 662,784
490,535 -> 490,524
545,699 -> 11,699
792,544 -> 287,39
895,712 -> 895,41
887,350 -> 624,350
614,475 -> 924,165
93,961 -> 265,789
57,71 -> 852,866
282,738 -> 844,176
898,251 -> 898,669
949,872 -> 866,872
765,408 -> 545,408
691,503 -> 235,959
198,491 -> 227,462
973,40 -> 56,957
802,402 -> 752,402
911,60 -> 911,932
545,244 -> 110,244
461,26 -> 461,18
916,308 -> 161,308
368,476 -> 515,476
656,916 -> 409,669
118,950 -> 118,135
963,294 -> 365,294
855,713 -> 323,713
849,930 -> 48,129
36,337 -> 588,889
941,394 -> 941,697
685,170 -> 323,170
423,683 -> 423,152
81,522 -> 121,522
357,598 -> 159,796
211,192 -> 211,50
615,607 -> 270,952
687,384 -> 687,128
81,896 -> 925,52
591,988 -> 20,988
950,740 -> 605,740
818,772 -> 623,772
790,405 -> 790,775
483,34 -> 718,34
309,190 -> 309,894
391,83 -> 483,83
721,201 -> 721,843
990,464 -> 990,171
479,707 -> 688,707
23,775 -> 510,775
783,863 -> 867,779
594,151 -> 208,151
416,936 -> 416,720
981,972 -> 120,111
773,476 -> 138,476
604,900 -> 604,395
824,437 -> 531,437
621,948 -> 32,948
802,26 -> 887,26
836,335 -> 836,784
134,585 -> 634,85
649,87 -> 649,263
756,804 -> 638,804
982,26 -> 21,987
134,976 -> 914,196
612,539 -> 612,141
977,11 -> 22,966
40,80 -> 40,644
725,562 -> 604,562
377,649 -> 352,624
418,146 -> 130,434
848,927 -> 848,970
243,350 -> 342,449
46,10 -> 46,112
800,654 -> 272,126
910,633 -> 910,426
296,619 -> 882,33
75,922 -> 497,500
267,616 -> 864,616
884,694 -> 624,694
13,656 -> 831,656
389,390 -> 389,316
26,24 -> 987,985
193,557 -> 589,161
18,13 -> 978,973
43,951 -> 614,951
581,398 -> 885,94
943,525 -> 279,525
787,83 -> 137,83
729,271 -> 729,18
100,383 -> 100,690
337,266 -> 102,266
106,640 -> 298,832
83,65 -> 543,65
102,872 -> 663,872
921,765 -> 921,782
764,392 -> 471,685
325,987 -> 802,987
983,43 -> 983,852
833,475 -> 416,58
25,270 -> 686,931
145,433 -> 151,433
132,329 -> 973,329
611,494 -> 98,494
401,633 -> 866,168
532,126 -> 532,448
988,894 -> 361,894
249,177 -> 249,133
832,71 -> 832,245
263,70 -> 263,152
548,333 -> 548,748
98,570 -> 438,910
954,41 -> 41,954
336,199 -> 336,843
117,974 -> 845,246
831,456 -> 890,515
690,114 -> 804,114
94,108 -> 94,672
289,104 -> 107,286
248,580 -> 229,580
11,284 -> 885,284
401,802 -> 186,802
359,245 -> 558,46
310,85 -> 310,714
920,577 -> 979,577
492,236 -> 276,452
650,961 -> 49,360
118,705 -> 118,794
970,24 -> 80,914
943,454 -> 943,30
875,935 -> 716,776
241,717 -> 392,717
694,345 -> 620,345
533,435 -> 467,435
827,166 -> 374,166
633,849 -> 884,849
414,640 -> 875,179
240,790 -> 709,321
48,222 -> 104,222
889,897 -> 44,52
980,438 -> 455,963
469,875 -> 469,706
572,869 -> 250,547
834,11 -> 834,188
395,966 -> 395,547
12,681 -> 567,681
268,957 -> 947,957
450,478 -> 893,921
418,707 -> 602,891
404,303 -> 218,489
657,232 -> 657,945
518,392 -> 518,621
268,959 -> 896,331
886,616 -> 841,616
375,503 -> 375,387

1
data/day06.txt Normal file
View File

@ -0,0 +1 @@
3,5,3,5,1,3,1,1,5,5,1,1,1,2,2,2,3,1,1,5,1,1,5,5,3,2,2,5,4,4,1,5,1,4,4,5,2,4,1,1,5,3,1,1,4,1,1,1,1,4,1,1,1,1,2,1,1,4,1,1,1,2,3,5,5,1,1,3,1,4,1,3,4,5,1,4,5,1,1,4,1,3,1,5,1,2,1,1,2,1,4,1,1,1,4,4,3,1,1,1,1,1,4,1,4,5,2,1,4,5,4,1,1,1,2,2,1,4,4,1,1,4,1,1,1,2,3,4,2,4,1,1,5,4,2,1,5,1,1,5,1,2,1,1,1,5,5,2,1,4,3,1,2,2,4,1,2,1,1,5,1,3,2,4,3,1,4,3,1,2,1,1,1,1,1,4,3,3,1,3,1,1,5,1,1,1,1,3,3,1,3,5,1,5,5,2,1,2,1,4,2,3,4,1,4,2,4,2,5,3,4,3,5,1,2,1,1,4,1,3,5,1,4,1,2,4,3,1,5,1,1,2,2,4,2,3,1,1,1,5,2,1,4,1,1,1,4,1,3,3,2,4,1,4,2,5,1,5,2,1,4,1,3,1,2,5,5,4,1,2,3,3,2,2,1,3,3,1,4,4,1,1,4,1,1,5,1,2,4,2,1,4,1,1,4,3,5,1,2,1

1
data/day07.txt Normal file
View File

@ -0,0 +1 @@
1101,1,29,67,1102,0,1,65,1008,65,35,66,1005,66,28,1,67,65,20,4,0,1001,65,1,65,1106,0,8,99,35,67,101,99,105,32,110,39,101,115,116,32,112,97,115,32,117,110,101,32,105,110,116,99,111,100,101,32,112,114,111,103,114,97,109,10,106,684,36,657,427,156,197,56,205,1104,170,307,291,88,330,12,24,1128,440,1099,1523,936,198,266,1257,874,196,912,335,46,320,666,132,1035,145,877,1484,222,690,479,386,59,101,765,506,27,250,478,609,807,1566,317,138,1390,245,1178,211,64,714,510,256,430,371,182,464,398,1749,57,1023,4,891,1177,459,171,236,1,34,106,744,1766,51,8,256,571,290,462,852,56,372,612,2,688,33,452,1182,739,696,123,469,583,77,40,191,416,1470,1153,459,848,228,677,1203,8,70,1302,207,21,913,9,855,47,81,188,354,700,1169,1199,620,197,41,138,1825,466,387,1124,595,457,1231,3,61,292,120,98,846,893,97,142,673,429,797,139,193,83,586,1726,201,365,415,63,525,277,335,1347,304,995,378,1884,185,331,69,351,134,972,262,208,21,108,1385,143,264,287,625,657,90,345,578,569,280,604,335,453,773,39,79,13,431,245,760,433,167,608,409,655,796,611,45,1167,312,439,1106,420,365,431,169,147,567,20,401,699,356,56,35,1233,975,105,29,787,618,404,179,469,284,304,140,50,283,774,957,455,1651,1,308,936,502,313,218,62,51,1,255,224,64,299,546,4,23,100,868,641,331,1810,399,272,105,156,1031,894,783,775,1823,211,209,1375,64,897,1083,367,14,516,311,86,50,716,1671,515,755,83,490,386,1015,359,620,192,921,1257,606,853,1196,1304,92,1442,89,33,689,832,139,308,140,424,300,97,67,1102,138,1166,753,53,274,236,245,567,205,368,1108,253,893,151,211,736,194,779,344,152,533,869,849,259,794,93,1092,301,51,350,909,499,349,242,1014,55,813,613,75,211,1039,1310,626,1440,381,904,25,1625,491,54,584,465,79,1146,60,476,476,111,1350,721,283,1102,276,41,1111,221,890,223,639,571,346,150,399,400,140,720,0,196,128,1125,610,339,1034,490,979,1328,32,505,567,92,76,377,239,62,12,19,1265,857,182,781,834,682,802,201,313,20,165,71,21,108,961,1190,1257,434,1223,208,488,93,19,96,29,205,264,1586,142,818,569,42,79,475,42,1079,303,117,1569,4,422,750,142,454,116,3,1628,933,1408,274,200,393,544,717,382,65,53,522,71,842,971,1288,128,590,46,882,1568,811,134,23,6,562,450,43,821,96,12,771,23,232,720,134,188,1394,4,1365,134,44,1896,1,194,83,474,101,11,429,309,825,80,322,295,1009,142,198,58,13,647,334,382,334,1364,106,206,479,282,683,379,86,381,1407,146,1470,93,465,588,110,750,1118,744,171,103,594,79,1075,0,501,63,792,293,18,1316,1510,143,406,344,453,28,341,178,11,76,1366,1085,32,1536,1722,190,17,378,166,531,818,921,211,130,171,689,170,478,278,587,335,135,652,41,155,715,109,144,867,847,1072,335,537,50,94,168,51,327,78,182,372,115,70,798,473,470,523,271,1028,1048,607,469,40,91,1064,209,1759,38,994,781,602,80,31,387,356,494,373,44,10,379,62,174,96,1628,875,911,6,692,502,161,329,595,368,1697,42,179,987,65,1091,343,657,84,184,98,926,208,728,698,269,165,99,856,410,167,339,884,258,502,50,158,252,331,1653,107,32,382,1140,105,19,1433,32,827,5,826,1,1000,95,562,153,431,158,550,39,294,91,95,165,8,51,243,1087,1290,597,688,839,332,61,41,321,11,217,150,1282,596,577,590,398,383,1875,88,111,1357,315,28,1344,179,1072,161,613,393,222,421,492,445,1090,234,154,78,440,856,492,1517,351,1162,48,220,8,72,597,350,127,562,1510,488,177,547,32,82,111,47,0,137,264,14,327,46,908,505,518,30,866,16,315,58,708,1776,233,604,1364,630,215,1684,1949,628,118,626,33,150,4,1183,533,50,501,942,43,345,52,473,684,69,608,32,38,992,6,751,1106,523,93,418,297,608,378,1846,32,597,1341,89,412,552,265,143,164,113,48,1181,1352,1066,1128,686,670,639,159,177,120,761,632,129,7,1098,623,2,442,276,595,39,314,959,114,1990,235,1025,50,1547,196,23,476,822,365,430,31,759,2,95,27,615,395,814,131,63,79,503,248,261,40,369,1673,53,130,910,573,28,237,1073,133,107,509,222,1517,441,528,727,408,234,216,549,7,345,1557,1194,372,271,219,268,243,478,253,2,209,278,1200,1272,779,8,161,417,263,131,798,791,58,566,464,1109,370,448,1166,452,1248,379,848,1212,280,444,139,145

200
data/day08.txt Normal file
View File

@ -0,0 +1,200 @@
dbc gfecab afcdg dfebcag bd dgbe bcaeg dcefab ecgadb agcbd | acdgb gbcda gdecfba bacge
bacdegf aefbdc ebf fdbcag edbfa gdaeb acfdb cdegbf face fe | ebf ecdabf fcbad afcdbg
cabgde gd becgfd dgfe cebgf gfdeacb fdbac bcgaef bgdfc gdc | cbfad dg dgef ecfbdg
adecgf egfdc cgeadb adbfce dafg bcfeg dge dg fadec dcbegaf | dg dcegf cdgafe gbacfed
badeg gdbfcea acgef fgdc bgcaef cd ebcfda gadce edcgaf edc | dce efcga dbgea dc
bgfec dbfgec ebgafc afegcdb fca af cgdabf aegf badce cfabe | caf ebacf bafgec cbfeag
begacd bd cfadbeg fbecg begfd bgd cdfeag gbaedf fdba agefd | cbgfe fdab efbdg bd
bg gfdebc beg gabd fcbae fgaeb afegd gafdce dacbfge efgbda | gdba dfgae dgba gb
cfd edcfbg abfcg gfdcb gbcefda dgcbe defg df acebfd caedbg | agedcbf dgbfaec gbfecd cdf
bdcag acgebfd eac ae bade abcdgf bdacge bcgea aedgcf efcbg | cfdagb degacb eac edab
ga ebcadgf gdaf bga fgecb dfabcg adcfb gadecb fecdab gbacf | fgda gdaf agb gfda
gbcdaf fabdceg gbe ebfgad bfdga eg cefabg fdge adegb cedba | ge fcaedbg ebg aecbdfg
ab bdeag gbdefc cgafdb fgedb agb befa bagfdec ecgda agfedb | ab aefb abg ab
fgceab fcgdb fdcebg cbf gafbd cegfd bced cb cadfge cbdgafe | ecbagf cbfdeg cb bc
fgb eafdgcb cefg ebdgac fcbged fbade fg gbfed gbecd fcabdg | fg eadfcgb fgcbda gedcb
ecgfda faebc cb fadeb adecbg edfgabc bfgc cab gecaf ecbfag | fcgb bca gbcf cgbf
gfaed cg cgab abdcf fabcgd gcfda fgc fdgacbe cbdaef fcebdg | fgc cfdageb cbfgad degfa
fbacd gedfac fadegbc gbf degb ecgdf gb bdecfg gcdbf efbcag | cgedfb gb bcdfa cfdagbe
dceg deacbg acfbeg egdafbc ebfda dc bcd cgabe gbdafc dbace | cged fabegc febad ebgcfa
gbdcae cfgade dc dgbface fdage cbgfa adc gdafc dcfe gbdaef | fedc adgcf fcde dgacbfe
afdgbe cgfabe dcgeab aef feacb fbgcade bgace cgef bcafd fe | ebacf abfdegc dbfac facgeb
fbeg dgfecba cfgabd eafcb gb edacg gecfab aebcdf ebcag gcb | cfadeb gecda bg gb
bfcaeg gd fbagc fgad fgcaedb fdgbac cdaeb dgfecb cagdb bdg | cbfgda dg afcedgb egfacb
gd dcafgb dacfbe edbgacf gfbdc fbceg dbg dfag bdfca begdac | aecfdb eagdcfb fdcbgea fgdbc
gf dfgc ebfgac bfdace gabfd adgfbc acbfd ecfagbd bgf aedgb | dfgc fdcg gfb gbf
gbdae ebadf dbcfag acfdb dfec feacdbg geafcb dcbafe fe fae | efa bdcfa eaf debacgf
deafgc fbgedca gfd dcga dcgbef aecfg dg agfebc adgfe dfabe | dgf badgcef fgace cabefgd
badcg bagdce bdafgce efgbc df cbgfda cfdbg edgfac fgd adbf | dfcbg df cgbdae bdfgc
dgabe beagc gbd gfcbdae gd bdegfa bgfedc fbcdae bafde fagd | bcdfge bgd bcage dfga
adgf adgfce aecfg cdega dbgaecf abcgfe egd egcdfb dg deabc | cdgae dafg dfag afdg
fbadec afcbg begac be ebcgda dceag edgb efdcga ebdacgf cbe | adfcebg ecafbd debgac edcafg
cbd dcga cagbf dcafb cd cdebfg dgafcb baefd cbfaeg cfdgeab | fcdab geacbf gfbdce dgcafb
becd abfdc cgbaf efcda bd ebdcaf gdfaceb bdf bdgeaf cedfga | ebdc fbd bdf fbgdae
gefacd adcg fedbc cdgfe egd dg dbfega cgbfeda aecfg bcefga | defbcga efcga afgced gdecf
gfacbd fbcgde cefba efdcga bfgcead egcdf gfb gcfbe bg edgb | gb fdegc gfb fgb
ag agfdcb egfad fag adefb fdgec bdfgcae acfegd gebfdc aecg | fga ag egafd fcgebd
cadgbf cd gefbac cdfba fbead cedagb gdcf adc gacbf fgebcda | gcbafd bdcaf gfcd abdfe
fgebda fd afceb fcdeb fcad cgbed gabfcde dcabfe def befagc | eacfb efd efagcb def
beaf gfcaebd fdeag dae acdgeb gcdfa dgabef gbedf ea dcbgef | ae aed ae ade
gb dgeca gecab gcdfaeb ceafb bgc fagb adfceb baegcf gebfdc | fgba bg fecgab bg
daf gbfda afcedg geadfb fbcdg fgaebc ad dbagefc dbae aebgf | aebd eadcbgf dfa beda
dcbaef cabfd efgcba cbdgfa aedfg abecfdg ace cbde dfcae ce | cbefag ebcd cdabgf cbfda
bcgefa bgfcead cd fcbadg bdcga dac gbaed gafdce cfbd bcagf | cbfag acd cfbd bdfc
dgfcb aebgd gadefc bgfdec cbafgd cgbad egbdafc ac acbf cga | ca ac cabf abcf
cgaed gafbdec fgaedc ba baegcd edfbg agcb bcdeaf ebdag bea | gfceda ecabfgd defgacb aeb
cbfag cgdaf dcefab bac ba bdfceg cfgeb eagb cbfgea abcfdge | ba bac gabe cfbeda
efcgd ecbafdg fgabed edb ebcg adcfb be efcdgb dfcgae dbefc | dcgef ebd becg gdfaebc
fgedabc dafeb eg ged aegfbd afbecd fbgdc edfgb egaf dacegb | gaecdb cbegad fega fega
bgfcdae fbcda df eafd gbcaed bdeca gfbac gfdbce bfadce bdf | afcbdeg gabfcde deaf cbeda
fcgebda fcga bgfcd ebdfcg degba baf bafgd dfagbc bfcade af | afb agfc af cfegabd
cbfg bfd eabfdg facbdg edfcgab bf fcabd aedcf ebgdac badcg | eafdc bdf bf fbcg
fbdgce eagbfd dbacfeg dagb geabf cdeaf ebd bd fgbcae afebd | defac bed edb db
aegcd bad gdaebcf cabfg db ecbd gafdce gcabd gbcade faebdg | dab dba dba cgfba
ecdba bedacfg cdgeba dagcb bdge gdbfac fcadeg ced de acfeb | ed badfgc beacf bcgdafe
fg abdeg fgebdca agdceb gfbd gdfae fga cdefa efagbc febgad | fg bgaefc gf bgafcde
beadc gcbfed fdc bacf fc cbadefg feadc dgfea dcbefa dcgeba | cdf gefda dfc fbca
bd bgcedf decafg gafcdb acgdf agbce bafd gaefbcd cdb acbdg | fcdga afbd cbfdeg cafdgb
dabe bgcda egcdb fcdage dcebga bcfge dafgebc gdafcb ed ecd | ebad deba de gcbde
ga gadcb ebcfdg egbcd agebdc eagb afcedg dbfca dfceagb dga | dabgc ga agd adbcg
cbfagde ecdgf eabgfc fbd egbdf fageb edba dacbgf bdaegf bd | beda deab abgfe cegfd
gcdfa gfea ef bdacfeg aedbc efc gfebdc adgbcf fecad aefcdg | feadc fe efc fgcad
gdcae fga af acegfb fbda gfead edfgbc agdfecb dbgafe fdbge | fabd gfaed efgbd dagce
afdebg febc cdbae abe eb dbfcea dabcfeg aecgdf dabgc dafce | cefb cedgaf eab acefd
fgc dcabg gbdefac dfeg ecfdgb bfgcd gebcaf beafdc fg edbfc | cdfeb fcagbe fgbdace febdc
aegfbd gacdeb fdeacgb dea dgcefb faeg bdfac dgefb ae debaf | debfg dea ea ead
acgedb cfgae egfcbda fdeac eacbfd fd bdagfe dabec def fdcb | fed fd fcbd fde
dba bgcfde da cdaf acfbgde fbgdc fgadeb dcbag agbec acgfdb | gacbdef adfgbe bgcad fcdabge
acdfe cfgdab cdgea afgcebd dcgbae daf gfea fa egdfac bedfc | fa fad fa cedga
caedg bafgde egcba dabegc agd fecdbga bcfeag fecdg ad abdc | gad cbeag dag cabd
adfebg fedcagb fagdc gda eadc degcf gdafec ad cdbfge facbg | da aedc cbfgdea ad
ecfdba dg dgafec gcabdfe fbadg fadcb gbdfca gfd bgefa dgbc | cgbd dbcaf cgdb dbgcfa
ebacg eb begd dcebaf cdgea gafdce ecb cagfb bfadcge egcdba | bgdaecf bedacg dbeg cbdgae
ebdagcf cgbea fe agefbc abgdf agfeb egafdc bcef feg deabcg | cegabd ecgafbd ef fe
cd cgebdfa fgeabd cbd cabed gfbdec adcf abgce eafbd fcebad | efabcdg bcefgd baedc abfde
acfg gbacfd edgfabc bdcaf dca caebdg dafbe gbcdf ac dfbgec | bgcfed cda dbgfc acd
agdbefc abdc ecd gfcae aedbf gbcdef ebafdg ecadbf efadc cd | afdeb cde dbafce bfadge
begad de fged gfbea dbe gbdac ebfgdac efgabd cadfbe fegabc | de dgfe cgfaeb gadbc
gefdc gdfb gdbcaef deb ebfcd gcebad bd dacefg gdcbef fabce | gfedabc deb gcfade fdgb
bdec dagcf cefbg bfgace bgedfc edacfbg fgdec fde adgefb de | dbfaegc cedb edfabcg fcdeg
eaf gabed cabegdf fe ecbgaf fadeg gadfc fcdega cfde cbgafd | adgef fced cgdbafe fae
fcbaedg gadce abcg ceb bgedf adfbec decagf bc dbceg eabdcg | ceb bgafecd cabg acefbd
dagb cfgde acgfeb fbgac fcgdb bd dbf cbfagd fcbeda bcefgad | db fegdbca dbceafg aedbfc
edagb da dab fbdge cgdfbe acegb adfe abdgfce dfgeab bfgcad | abd dab gfbead eagbc
bdfega dcbgf efcgabd ce fec fcegd agce fegad daebfc efdcga | ec ecf dgacef bfecad
cdabgef bgdfe aecgb gcfa fc acgebf dcaebf dcbgae cfgeb efc | fc fcga bfecga faecbdg
dfeac gdfcea fcg acdebf cdge cgefa bdcgaf cg fegbdac bfage | cfg cfg gfeca fegac
bfad bcf bedcga cadeb bf bceafd bcegfd dbaegfc ecfga cfbae | efacdb afbd bcf fb
aegfcd bcdeg abcefg gcfea bcgafed bga afbe bagec ab fbdgac | gceba gacbe gbacef gab
dca ebda bdfaceg acgdb gbcdea begcd efbdcg efacgd bfagc ad | adcbeg ad cbfga cfbgeda
fadebc gcfbea becgf gf fgc abfg ecgbd dfecabg fcedag eafcb | ebfgc gaedfc bgcef gedabfc
fadg eafgb gbead bdaec ecagbf dg gdb agfebd aedcgfb cfgbde | bfecdag bgd badce gd
egcd efadb gacbfd bcaeg ecadgb adc bacegf adecb dc agedcfb | fcgabe degc acd cd
bedfcag gc fagdec gfabce bfgec acgb befac gfc bgdef aecfbd | cg ebfdg cfg gc
aegbdf gfabced fadebc gfde ed bcaeg fbgda eadbg fgbacd bde | dbcefag bed afcbged aegdb
agd fagec cfbgda bfceagd fgeacb cdae gdbef dagef da efcdga | edbgf gda gedaf cdgfaeb
fgaec eb fcgbd agfdeb cedb fabcdeg egb febcg dfbgec cdfgab | fgbcde dbeafg egcfdba gcbfd
gfe fdbae ge bfgdc dgfaec cgeb dcfgbe dabfgc fdegb eabgcdf | gebc gceb defbcag afbcedg
dfce cgbed fbcagd bcdgf ged bdfgae ed bdfceg agebc fabdegc | fcde gde gecdbf de
dba dcafbg gcdefb fbged dgeab bfegad gaecd ba aebf egafdcb | beadg cfdbage bgafde acdge
bcgdef cbdgeaf ae fbdace afbde gcdabe gdbfa edbcf fcea bea | dgafb adbfce ea fbdecga
afdg fgebc fdeacbg fd gadcb fdcgb gfacbd gbeacd acdfeb dfc | fd bdcafeg caefbd dafg
dfebag defa bdgfa beafg agbcfd eab cbagefd cfgbe ea acbgde | abdcge abe ae fecbg
ef bgfdeac bdcefg cfdba ecf dgecba gfae abgefc ecbga acefb | debcag afge efag fe
cg gbfc gabcd bgade dgc gbecafd egdfac dfbac abdcfe gabfdc | gcbad degfabc cgafbd adbgcf
edbcgf acgbf fbaedc cbfae gfc agcdb dagecfb fg fcgbea eagf | fg adcbef fbeac fadcgeb
deacg daeb dagbce ecdbgf edc ed bgaefc gecba dagcf abdgecf | cdaeg abcge dec ecd
fcgadb caged bedc cdabeg dfaecbg befag db dgb eagbd gacdef | fecagdb begad dgb db
fbcdga fgcad fecdg gcedab bfca adc ac bfdga dbfega eafbcdg | adc cbgade fgcadb ceabgd
cefdbg gde bgfeac ed begcd cbefg bfde aedcgf cbafegd gacbd | fegbdac gcbefd cbgef bgedc
bfdagc afdc bagcf gbfdc begcd begdaf beafgc dbefgac gfd fd | fcda df dfac dcbfg
gcbfe bfeacg cedbf ge bfcga gfe gfecda ecbgdfa bgfadc bage | feg eagb gef abfgc
bgfec bac abecdfg ab gdcea ebgcfa fagb aebcg caebfd gfcbed | ab ab cba acgbe
gdbcf cbedg ce ceg abcgde adbeg efgcab bdfegac adec adfbeg | gaecdfb bedga cge cead
eafcb cfdbe aeb acfeg ab dcgbfe adfb fgacedb ecabgd fdbcae | fbcde aedfcbg bea edcbf
ebdca egc cgabe fbge cgbfda ge bacfg geacbf afdgec gebacfd | badce cge bgfcea ge
gdfecb bdge gdf dgbcaf aefbgc bfecg fgdec dg ecdbfga deacf | dgf fedcagb gd gcedf
agdeb cfdbag gcabd ed dacegbf gebfa eagbdc acde efcgbd edb | ed eagdb de de
feag cfgbed feacbdg cfgade efcdg fcgdab afd dfeac af abedc | cbagfde dbagfc faeg dgabcf
cdg efgbcd decgfa dcegb dgbf gd ebdcfga adebc gbcfe cefagb | bfecg dgbf gdbf dg
gab dfceag gdcb bg gbead agdefbc gcabef acged efdba agdceb | gdcb bgdc edbfa bag
bgafde afdgc gcafed efgdc ceda gdcebfa gdbacf de gbcef edg | edg gde eadfcbg cade
gdb egcfadb gdef abcfd dg ebfag gadbef abdgf aefbgc cbgaed | fedgba dbegfac bfeagd gefcdba
gad bdcag becdg gceabd dceafbg fgdeca fcgab ad baed dfcbge | cfaegdb gda ad gaedcfb
dafbeg eadgbfc fgd bagcf gedb abdfce gafdb fcdgea gd efbda | gebd fdg gaefcd deagcf
cdbe adefb ecfgbad bfcgad bacdf agcefd efd cdeafb aegfb de | gacebdf bdce fbcagd dcefab
cb acdgbe bce cdegabf bgdefa aegdb cdbg acbde fcebga fdace | ebc abfdecg ceb gbacdfe
cg fcedg edfbag ceag fdbec gdc faedcg bdcefag gbafcd dfeag | geca dgfacb cgd cg
bcafde defac dcage dgfbce gafc cgaedf cgd cg fgcedab gdeab | cdg ebadg aedgcf fagc
bdec dagbf ecagfb decbfa aefdc aeb dcegfa adefcbg ebadf be | cdbe gfadb eadfc dcbe
bcgeda fc badfe gbfdaec fcge cfd bedfc cedbg adfgbc dcgebf | cf ebacgfd fgce fdbceag
gd fgbdea dbg badce gdcab fcagedb fbacg beacfg cgfd dcafbg | fcdg gdcbfa dbg gdfc
cag cdfa cgade edgcbf fcebga begfcad gfdcae egabd defgc ac | ca agc fgbace gac
ecabf geacfb eabdcf dec cd bgecfda gfdbce edcba cdaf adgeb | ced aedfgbc dc gbeda
fbdac ea cadefg fae beag facbe bfgeacd cfdegb bgfec gfecba | agbe ea bafce egbdcf
bdc dbega abcdg gbcfa dc gcde cgbaefd cdfbae eagdbf ebgadc | adefcb agcfb cdb gced
ceb ce debfca abgdfe bdaeg cabegd caeg dbgec dcbfg bdecgfa | ce abegd gdfcb fcbdgae
cafedgb dgf bcfd cgdfbe acedfg gbfed agedb aecgfb bfgec fd | fdgbec feacdg df bgcfe
ef abgfc cagfeb gdebfc fbae bcadfg defgabc feg gefac gceda | degac gfbac gabfc gfcea
bfdeca bd eabfgc degbcfa cgdb gefbc dbf ecfbgd gaedf edgfb | dbfge bdf egbfca db
fac cbdfg eacfbg gaecfdb bacfd bfeda acgd ac gbfecd cgfadb | dagc ac dcga bedfa
egfbca aegcf gdcfab fdc adce fcedg cd cfgead fdebg cedagbf | dcgfe fdgbcea aedc cfebga
da bfged afedcb gcebdf gefda fedbga edgbfca gdba eagfc eda | ead dcfebg defcgb efgbcd
adefgb ecgf gcedb fedacb bec fbecdg cdfaebg gedfb gcbad ce | dcbfeag cfbged efgbad bcdfage
dfec gcd agdbe bdafgc afcbge bgecfad bgcde bgfce bgedfc cd | fbecag beagdfc cgd cedf
edbc agcfbe adefg cd defca gfabdc cad dgabefc dfebac bceaf | dbce ebdc febcdga cdgbefa
ecdb eb acgebdf ebf dcfebg bgdefa fcgbd gcdbaf feacg cfebg | bef ecfbg egdcbfa cdgfb
ebfcgd aefcb bfadge efd ed adfcgb fbgdc bfedagc fcebd dcge | gced fbcgd edgc ed
beagf cefbag ebafc gfce gdfeab fcaedbg ec dfcba ecb gbadec | ce acfdb dbgcafe ec
abegfc fbcged bgfea fecabdg gef ge abdgf gaec afecb cfbdea | cbfaedg bface gfe efabgc
bdg bacd edagb fbegac fgaed bdgcae cgbea dfbegc ecgafdb bd | gdeaf cfdgbe gbcaed bd
fbce fdegca egafb aef egdcfba eabgc fe ecdabg agfbd ecgbaf | fadgb cbage bcgdea abfgec
dbafge fedgcab efgdbc bc fbac fbdea gceda bfceda bdcea ebc | eadcb fcdeab cafb bdecgf
cbgae fec aefgcb acfeg fe efgcbd bgceafd fbea cagbed dcfga | edbagfc acefg gbdface ecf
cbfdga bae ebdf fbadge afdgb gfeac acbdge bdacfeg eb agfeb | edbf bea efdcbag aeb
efdcgab bedgaf aecbgf cgfe gfaeb cbgea ecbfad ec gdcab ecb | cgfe eabfg eabgf ec
bdefa dfebgca bfe eadfcb dcbage bfgad debca cgebaf ef cdfe | gacdbe eagcfbd afcgebd dfgbace
gca ebdcfa fdcgea acedb bdcgf eabg gbacde bcgdeaf ga gacdb | ebag abge gac aecdb
abcgf afgcbe baeg gbc ecdbgf gafce facbd cfgade bg egabdfc | aegb cgb bcdgef abcgf
ecagbf bdfgca ecgfd gbe fecgb dafgecb bacfg bgadec efba eb | geb cadfebg beaf be
agcdb bgcaf bf fadebgc daecbf gbdf fbc ebgcda afegc bgcafd | facgdeb dbfg fb bf
fdbeag cgd bdefcag afegd eacgdf dc dgefc ebcagd gfebc facd | geadf dc dc cdg
adcgfe cgebf acdbf abcedf dgfbaec edba cabef ea afe dfagcb | bfgec bfeca ae deba
adegb bgcd cbdfgea dc cedba cagefd dcbgae gebdaf faebc ced | egadb ced dcbg dc
fdeg gd fdbaec bfacg dgcfa ecfdga fadcegb fdcea dceabg gda | efgd eacdfb bcfadeg dag
af ebgfda ecagdb febgc afe dabce cfda febcda baecf becafdg | fa dbfega fa bfeagd
debagfc cbdgfe dcb fdbeg cegb fbced fcead cbdfga bc fabdeg | dcb efadgb dgcfeab ebafdg
cgfdae bdef becfg gcbefa ed abcdg gedcb cgbdef bdcgefa ecd | cde dec bfed bfcgdea
dcfegab becdg gcaedb egd bcdaef gcfdb eg eafcdg cdeab ageb | ged cegafbd egd eg
ba eafcd fcbegda acfgbd bedcgf ebgcfa fabdc dcgfb bagd baf | ba cafed efdbcag efdac
aebcdgf cd efbgac bfcgd cbfga gbefd bfdcga bcad geafcd dgc | fabcged fgaceb cbda dc
cgbaedf fbceg eafbcd degcf gfdcae gdcfa dbagcf dgae edf ed | fcgeb efd ed gdea
ac agfdcbe gcea dgecf fgdca efgcad dfbeac fca fdgba gcebfd | agbdf ca ac gbdfa
gbedaf dbgfc cbg abdfgc geadbc fecbd ebcgafd cafg gc dafbg | cdbfg gcfbad gcbdea fadcegb
bagfec efg bfcdga egac abfecdg afdbge dbefc ge cgbfe acfbg | fbdeag eg eg cbdfe
edbgcf dgbac bdceag dbagf cgd ecagb bceagf cd adce cgbafed | aecd egdbca gacbe gcd
bgfdc gdfbe afdbgc gc fbdac bacg gbafdec cdg cbdefa defagc | egdfb gcabdef cdbfa dgacfb
adgcfb gcd dfecgb cgebfa bgcaf adgcf cdbafeg dg ecafd adbg | bcgaf fadcgeb gd cgbaedf
bafgd cfaebg cefa cfbgead bcf bgcea defgcb bgacf ebcgda cf | fcbgae adfbg cdfgeb adgbf
becfa bcgdf gbceadf gebcfa defa adbcge de dec cebdf bdefac | faed fdcagbe edc bfacge
ebfgd gabd gd gfbcaed abgfec faegb dge aefdbg agdfec cfebd | faecdg cgaedf baefgd dcfeb
ecabd ged aebgfc ecagd dg fdcegb afgce dgaf dcaegf cedbgaf | edcga gfda gd dge
dfg fg eafdb aegdc faged gfba debafg ebgfcad gfbdce acedbf | fedagb edbfac gf fgd
dbgca fedca bfgcad adgcf agdecb dgf cefdgba bgaedf fcgb gf | acefdgb beafdg gfd cfbg
edgacf adegcb fd dbacgfe fabd dfbce egcfb edfbac cbeda fde | dafb bafd acefbd fd
bcefa gbfd eadcgb bgfdae gedcfa abefd efd df gedba fbdgeac | bfdae fgeacdb bacfe gdceba
bdcefg aefgcd gadcb gfb decbfag dfecg bfdgc defb cefagb fb | defb fbcged dbfegac egfdc
fe cedgab cbfe dacbfge cedba fed gafcd dfaec edbfac efdgab | abgedf efcb bedac gefbad
afcgbe cf fbc cegadb bfcdea fcgabed aebdc adfgb cedf cfadb | dafbc bfeagc bcf deacbgf
ebcafdg ecfbg bae dgcabf bcaedg dfbeca ae ebcag gdacb dage | cadbeg gbacd bfdegca eba
cadbe efgbc feacbg dgfecb bgd dg bgfcad ebdgc dgef gbdefca | aefcgb gd bfagced dgb
edgcfa dgbecfa bgedac dfbaec acgdf dg abfgc egdf adcef gdc | cgd cbgfa eacgdb gcafd
cad cfbead abceg edfa fadbcg becad edgfcb bgfaedc cdbfe da | egcab afde dcabfe ecfabd
fgbdc be egb bcdefag ceba gedbac egcda dcfgae debcg gbdaef | ceba edgac eadcfg bcdaeg
cg adcfgbe edbcga gbead cbdfa cga bgedaf faecdg dbacg cebg | gcdabfe fdacge cga bcgad
gacf gf bgeafd gef gefbc efbagc bdceag fdebc acfbedg gbaec | bcgaedf egf gcefb cafdegb
fgbadce cdbag agcfd faec acfegd fa fag cfged fdabeg dbfcge | agf bagefd edgfc gdbacef
agcdb gcadfb dgfcb gfdbec adebg adc ac cfab beagdcf daecfg | ac ca bedga ca
dfa abdcfg agbf cfabd dacgb dcebf eadgcb fa gbdafce ecfgad | af fa bcdaf bgaf
ebdfc cgbaed eg edabfc gefb adfgc gdfec deg ebdfgc debgcaf | abfcde bfge gde dge
dabfegc dfegb cbgf cf fdebgc dcbaef gcfed adecg fbdgea fce | cf gbfc fgcb begcadf

100
data/day09.txt Normal file
View File

@ -0,0 +1,100 @@
8679876423456789989987898954321012987899875434989895795442356997901987896535698998998765457891256789
6457987567899894679986567895433129876789976549876734984310129886899876789423987797899879378932349892
5356798778979923498998678997654998765678987956985429875421298765679765698909876676789998989545998990
3235679899767939567899989659769878654589999897899319986632987643456984567898765445678987997659897679
4123799998547898978999896539878965433689989789998998996543498788767893456797654326799976899798756567
3249999876335667899998764321989876521599875678997897987654679899879942345679763214898765678987645459
4598899994213456989899895210195998632478934567896456798775989934989321234567985423989654346895532348
5987778965365569875788986791234987543569123459965345679896799129994320123459876439876543235694321257
9896567896878678964597897989545987656789034598954234567989898998998531234667987545987432126789452356
8765436997989989753456789978956799867894145987892135679878956897897692345778998956798974235696543467
9989324989999895642345898867897987998943239876793245789954345976898989659889989767899865345789675598
9998217679998743210156987956789875459654998765689356798765586895899978998999879898934975486998786789
9886504567897654434569896745899976598769876784878969899876678964698869987898965939123986567899997992
8754323456789765567798765634568987899898765443567899910987989643987658976987894321094598998998798993
9865454587899876789899654325999998987999765312476999321998996432198747895436789632989989989987659789
9876575679958989896998543212789879996797887102345678939869987843249656789325896549879867879999545678
9989989789347999945987654104698769865986543215456899995456998967398797993214589697657653468965431734
8990399893276789434598653245789859879897654356768999876329879878979898943203478986543232457894320123
7921234921045678923987654346999943997698867497878987989998765989767999854512567965432101666789434534
6899399763234799101298765677899894989429878998989276799839974399956798765423689876543212345896598765
5678987654365678912349878989956789871012989019894345976729865459969899899434799987675423469998999878
6789098765458989434459989796545898765123499198765566795410976567898910987645678999796564598789891999
7999239876567896545698997654323498764254568999987877989321989989967891298957789234987676987676790123
9898999987678999656997997543215987654366789989098999679452397897654989979968999129998797899545679234
8767988998789998969876889654634598765477899879129988568943986689769878969878978998989899998434569395
7659867899995977899765678995745679889698999768934977456999875567998768954989457897875989986545678979
8543456987654656997643435789899789998789098656899765349889543467899879943399568976564579897756799567
7651568999743249876532124678987993219892197545699983298776532346789989892198679765442456798969895489
8798678999654345997643245679786989398964987636989932109654321236789996793239789654321399899878943298
9999789498765656798655456798675979987979898929879893298743210545678945679959899793210988989989654567
5899893209986769899878567987434567896899759899769789987654332456789434567899998989334977878998767678
6798995349899878968989879876323878935789898798754578998865443767897323456789987678999865467899898989
8987689498778989654399998765218767899894987659865679339876554569965435579899896566987654389996949296
9896569579667899543298997654103656999923496543986789219987665678978557679998765465698766578985432145
8789458998549678954987986543212345689913987332299894398799876789987668989999764324569987678976543034
9698967997434567895976799764323459899899876210123995987645997897898789793987653213498998989988743123
6567899876523498999885679898549568998797965421234579998434598986799895692199866323567939497899984235
7678999887214589998764323987678979987656986432346889989545679965987934889012965459879421345999876346
9889698754323678999896434598899989499869997556577999878987899873296321679229876569989545457899997959
9996529765434567899997576699999992349998998769679876767898968994985442578939987978998676567899879898
9875419889556878998698678789998901298987899898998765658999754329876543467898798989129797698998765767
8954323997667989896569899899987892987695778987999874549698942101987656789923689993239898799249654456
7899934598798996789699999999976799875534569876899943234567893292998967993212598994399969895398932345
6987895789899445678989889998865689754323998765698764345678989989899098977333457989989452976987890156
5456789999973334569976767897653798965419879554459875456989878976789129765444569978979321989876789767
4345678998762123469865456789794987894323965433369986787898956965678998976755998659867990198965678978
6456989999854034599876345679989965789435986521298987899987545894578987897899876545745789987654589989
7598997799543129986989256898877894689949898310397998999875636789699876989999997634634692198995694393
8789345678954298765432123987956943567898765421986329298764125678987545678989876520125891019989989212
9893256989879349877547434976245892468999976539765410198643034599975434345678987434566789198879878901
8932167897998998987656549765126789567899987679887421985432123488954321236789498567879890987764967892
6543019956987987698787697654246897679967898789999439876543434567896543357894339978989991996543456789
7674998969876546549899898775356789989356999899876545998987689678997689458932129899599989875432365692
8989867899995432134989939889768993490245699946988656799998789799298796569549099789439878989821234910
9898756789987543235678923999899912391236789999799767897999999892109987678998987678998964298752355891
8789645699997656349889019761967899989347899987659878966788942943212398789997986569897654129543456789
7673234578998797956992129853459998578998999896542989454567893954336799898786597456789973298757767895
7532145789239989898973439964578987699659498765431094313478999895445899959656454345897654569868878944
8743256992139876799965598765679998789943249876532986324578998789656789743943201235789775699879989432
9854367893298875689876789878789999897893101997679876534689545678967897659853212356899989989991096541
2967478999987654799987897989997896956789212989789989776795434567898998789764323478968999878992297790
1297678998699875698798956992166964349994329878999899897896565678999469898965454589457898765989999989
3398789987545986789679349854345793298789498767989767999987776899878999987899565694346789974767899878
4569893596536598993578998765456789097678997656678979789998897987767789876798976789234599543456789756
9679932987623459219989549986578998986545789547569995698999999876345698765787898892123987654567998746
8989921098434678998898767897679876563235679423459954567899889995467987654386949921012399876789986535
7698792199549789876789989929989765432124795312367893456997768889567898565234939993233456987898994424
4597679987698998954567899939899876554256789423458932349886657678978987432129898989346767898967943212
3976567899987876443456789898789988764345697634569321298795443589989996559998757979958898969349854101
2987788998986543212467898785678999975656896547679490999644312678993987898766646767899999954298765212
0198999987697654401238789654589899876787987769789989898732101289432198998754325456789999832109654323
3239329876559964316345696572476789987898999878999876789543232398991099987656212345678987643219866444
4568939876449876425456789421245789998969643989012965699865353456789987999942101234567898964429977865
7678949767320987434667897910134578989655432397929894989976967898899876798763212347678999896798798987
9899899654321299545878956891549699876543201256898753979989878959978965679854323567899999799897659598
2965698765453987656789345692998989998653213345697642367899989543567894598769434588923987678998543469
1978799876764598997993236989887569998754324457799843456789197654679943459898665678999876567899765978
9899890999865679439874345978765457899979434769987655667994398786999432345999778799789985434569879899
5789921998998789598765469864312356789898945678998769789965459899898764597899899894678954423456998799
4578939896789898679977698753203467999767896789879978899876569988799875989998954923789653210199879689
3457898785878989789988789954365788998956789997965989934989698878679989878987643213568954521989767578
2346798674569878999999896795456899567899898765434599323498987654567899767898642102399767439876543467
3578997523458967899876964987678943467942909876765678999987654532348954457899773213989898998765432457
4679876312567956899985453498789321237891912987876789987698963101237893248999964349878989219984321248
5679765403458946799876312349895430146789899898998899956459854235456799867998765498766578923987432359
6789876564599435679932103468989541236897678789329999843398765346667999878939878987655467899876543767
7899997765789324598965213589978959345999578689210197652139985457788988989123989996544345699989656899
8997999876993212987654325678967998957895436578922398721012496669899777799034992986432234889998789999
9785789987895433498785448789554767898965323467899599432124987898954656678949891093210145678929898989
7644678998999994569876759894323456789984212345678987643245698997653234599769789987623468989212987878
5433567899787889678987898965412356894693203576789999854367789986542123678997649876544567894349896567
4312345789656778989998997986501245793984212456894878965459991098421014569865432997658789965498765456
5323456896547867899989986899312457892975323569923669876567892197532127689998321298979899989987654345
5434677976432356789875465678923578931096467678912456997978989989643234899876432399989999899998543247
7646789984321345679876324789437689542987568989101567898989877878967846789987643987694598799876543056
8769899875432487798765455997659797653497679898913498999598765667899987895699656986533989689965432125
9878949876546798939977686789768898767969898757895989996469654345678998934598799876421264579876654534
9989432987657899424988797892979909879954998768999879875398943234579999323679987653210123499989878679
9894321298767894212599998943989212999863239899398765421267892123589987454567899787332245589991989889
8765210129898965343456789654694329876542145910239865430356942012399876565688921986543345678920199999

102
data/day10.txt Normal file
View File

@ -0,0 +1,102 @@
([<{(<{(({<{{{[]<>}<<>()>}<<()()>[()()])}{({()[]}[<>{}])<(<><>)<[]{}>>}>{{((()<>)<[]()>)[{[]<>}(()[])]
<<[[<[(<[<[[[{()<>}(<>{})]]][{(<{}{}>(<>))[[<>](<><>)]}[({{}<>}<[]()>){<{}{}>[{}[]]}]]><{(<([][]
{<([[[({{(<[([{}<>]<{}{}>)[[<>[]]]]{{(()<>)[()]}}>){((([{}<>]{[]{}})<<[][]><<>{}>>){([[]{}]<<>()>){
{{[{({{(({<[<{[]{}](<>)>][<(()[])(()[])>[[<>{}](<>())]]><<([{}]{{}{}})[{[]}{{}[]}]>[{<()<>><<>>}]>
(<<<[(({[[[{<[{}<>]{<><>}><({})>}{{{()}{(){}}}}][{[({}{})[<><>]]<({}[])[()()]>}(<([]<>)<[](
<[{[((<<[[<[({[]()}{(){}})[{<>[]}<()()>]]>]]<[{{[[[][]]<[]()>][<<>{}><<><>>]}}({[<[]()><{}[]>]{<[]
(({((({{[[(([<[]<>>(())]{{()<>}<<>[]>}))]]([<([{{}()}(<>{})][({}<>)])>](({{<()<>>[{}())}{((){}){[]()}}})
({{({(<<{<<([<{}>])(<[()<>][{}[])>{[()()][{}{}]})>[[[{{}[]}[(){}]][{<>{}}{()<>}]]({<<>[]>{{
<[<<{[(<{[{({({}[])(()[])}[{{}<>}{{}<>}]){<{<>[]}[<>()]>{<{}()>}}}{{{{()()}}[{{}<>}({}<>)]}}}}>{{[[{<[
[{([<{{<<<[([<[]()>])]([{{<>{}}}{(()[])[<>[]]}])><[(<{()<>}{<>}>[([]{})<<>{}>]}([{()<>}({}[])]<<{}[]>({}{}
<([<([{{<<{<(([]<>)<{}{}>)>({[(){}]}((<>[])<{}[]>))}<{<(()[])<[]>>({[][]}(()[]))}(<{()[]}{[]()}})>>[([({()[
{{{[({(<[{[[{{()<>}[<>()]}{({}<>)<{}()>}]{{[()()][(){}]}[{<>()}]}]}]>)(({<<(({{}<>}([]<>))({<>[]}<[]{
({{({<([{[{{[[[]()><{}[]>]({{}[]}[{}()])}}<{[{[]()}[<>]]<[{}<>]<()<>>>}>]{<<(((){}){<>()})[[[][]]]>[([<><>]{
(<[[{{[(([{{<((){}){<>{}}>{<{}[]><<>[]>}}(({<>[]}<<><>>)({()[]}<()<>>))}<{(<()()>[{}{}]){{
{{{[{<<(<<[{({(){}}[{}{}])}[{[<>[]]{()()}}{[()]{(){}}}]]>>)><{((<<{<[]{}>([]{})}{{{}{}}}><([{}[]](()()))>
[<(<<<[(([((<<<><>>>[<[]<>>(()[])])[{((){}){<><>}}<<{}{}>(()[])>]){(([[]<>]<[]>)<{[]}[[]<>]>)<<{{}{}}[[
<(<<({(([[({[[[])(()[])][<[]()>{{}[]}]}{({{}}{(){}})(((){})([]<>))})([[([][])<{}<>>]<<()><<>()>>](
[{[[<{<<{<{<{<()()><{}[]>}([(){}](<>()))>(<{<>[]}([])><[[][]](<>{})>)}(({<[]<>>{()()}}<<[][]>>){({()[]
<([<{((({({[<(()[])[{}]>({[]()})]<<[[]]>>}<[[{[]{}}[{}{}]]([{}[]]{(){}})]({(<>())})>)}({<[{{{}
({{([(<<{({(<(<><>)<{}<>>><<{}()>[()()]>){<{{}()}(<>[]>>}})}>>[<<<{(({{}<>}(()[])){<[][]><{}>})
[<((<<{{<[[[[{[]()}][{[]{}}(<>())]]]]{<<{(()<>)((){})}<[<>[]]{[][]}>>(<(()())(()[])><{{}<>}({}())>)>[<<[(
[(<<(<<[(([{((()())<<><>>}[{()<>}({}<>)]}]{{<(<>[]){(){}}>([<>()]({}{}))}})<<(<[[][]][[][]]>[([][]){(){
<[([[<<[{(<([([]{}){{}<>}][{()}([][])])>)({<({(){}}){[[]{}][()()]}>{{{[]()}({}{})}(<[]{}><<>()>)}}[{[<[]()><
{<{<[[{({<[<<({})<()[]>>((<>{})<[]{}>)>]>})}((<[[(<<{}{}>{[][]}>)<<[()[]]{<>{}}>{{()[]}[()]}>]<({[
[({({(<<<<<[[<[]{}>]{<<>{}><[]{}>}]><<<([]{})<{}[]>><[{}[]][()<>]>>[[<{}[]>{[]}](<{}()>[{}<>])]>>>>{<{([((
<({[({<{[<({{<()[]]}[{()[]}[{}<>]]}{[{()<>}{<><>}]([[][]]<[]<>>)})>[[[(<()<>>({}[]))<[(){}]<<><>>>]][[<({}{}
{<(<<(([[{(<[[()[]]<()[]>]{<()<>><()[]>}><{<[]{}>{()()}}>)([([(){}]{<>{}})[{<>{}}[<>{}]]]<<[[]{}]{()
{[([[{[<[<{(<<[]{}]>({<><>}({})))([{{}<>}]<{()<>}[{}[]]>)}<([(()[])<()()>])<{{[]{}}[{}()]}(<<><>>[()()]
<<[{<[({((<<({{}()}{()[]})>[<<{}{}>{<><>}>]>){{<[{[]()}[[]()]]{[{}[]]}>[{<{}{}>{[]<>}}([{}[]]((){}))]}(
<<{((([[({<{[(()<>)<()[]>]({()[]}({}<>))}{{{[]<>}[{}[]]}[{<><>}]}>}<[[([{}()]{(){}})<({}<>)[[]()
{(([({{(([<{{{<>()}<<>()>}[{<>()}(()())]}>]{(<([()<>]{()<>}){{()<>}}><<{{}}{[][]}>(<(){}><{
{<(({{[<([(<<([][])(<>()]>{{{}{}}{[]<>}}>)[{(<()[]>{<>{}})[{()[]}<[]<>>]}{<{{}[]}><<{}>[{}<>
(<{{([<[[{{[{[[]()][()()]}{<<>{}>}][{{<>()}<()()>}(((){}){<>{}})]}{<(({}()))<[(){}]<(){}>>>(<({}[]>[[][]]>)}}
(({({[({<{{{[[()()]({}())]}[([{}]<{}()>)([{}()]{{}{}})]}[((<{}<>><()()>))]}[{{{(<>{}){<><>)}[<()()
(<({{<([{[([[({}<>)][([]<>){[]{}]]][[<()[]>]])][<{[[{}[]](())]<<()[]>(())>}{<{{}[]}[<>{}]>{<[]<>>
(([[([([<[{[(({}[])<[]{}>)]}][[{({()<>}[{}[]])(([]())(()<>))}<[<[]{}>({}<>)]{{{}{}}{[][]}}>]{{{
<[{[{<<{[[<{(({})(<>{}]){([]())[[]()]}}{(<()()>([]())){([]{})<[][]>}}>]{({[[<><>]{[]()}](<{}[]><[]<>>)}
([{<({{([([[{{()[]}}({(){}}[<>{}])>]({{(())([]<>)}<[()<>][[]()]>}([{()[]}{()()}])))](([[[{<>{}}[<>(
<[[[(<[{{[[{{{<>[]><<>>}[{()[]}({}())]}[<[{}<>]<[][]>>]]]}{{({{{<>()}{()<>}}<<{}[]>({}[])>}[[(<><
[[<[<({<[({{[[<>{}][[]{}]]{<()()>{<>{}}}}[<<<>{}><[]<>>><<{}<>>(()[])>]}){<[(([]())[<>()))[({}[])<
<<(<<<<((([[<<{}[]>(<>())>]]<{{[[]<>]<[]>}{[{}()]{<>[]}}}<[[<>{}]({}())]>>)){{([(({}[])({}[]
([{<([<[[[{[[{<>[]}{[]()}>([[]])]<({{}{}}({}[])){(<>{})<()()>}>}<{(([]()){()<>})[{<>{}}{<>()}]}<(([]
<{[<(({([[((((<>[])[[]{}])({[][]}))(<[()<>]{<><>}>)){<<{<>[]}<<>()}>>{({{}{}}(()()))}}]][{
({<{<<<{{{(((([]())[<>]){<(){}><{}[]>})<{([]<>)[<><>]}[{()<>}({}<>)]>){((<[]()>[<>{}]){<()<>>(
[{<(([(<[((([[(){}]{[]()}])))]>)[<{(<<[<<>[]><()()>]>>){[<{{(){}}({}[])}([{}()][<>])><((()<>)[[]])[[{}()](<>
{<<[<{[(<{<([{()[]}({}<>)]{[{}<>][{}()]})([{<>{}}<<>>])>{(<{{}())<{}()>>(({}[])<<>()>))[({<>()}[()[]])<<{}<>
[<([<<<[({([<<(){}><{}[]>>[[<>{}][{}<>]]]<[<()[]><(){}>]([<>{}][<>[]])>)<<{<[]<>>[[]{}]}<({}(
<[[(<[{[[({{{<<>[]][{}[]]}[[[]{}]]}}){{[[(<>{})(()<>)]({<>()})]({({}{})<[]{}>}[<()<>>])}{<{[()[]]}[<
<(<(<((<[((([[<>()]]){<[<>[]]><([]{})>})[<<{<>()}{{}<>}>(((){})[<>[]])>{[[<>()][{}[]]](([][])([]))}])((
[(<{{<(((<<{[[<>[]]]{([]<>)<{}[]>}}[<{{}{}}[{}()]><{[]()}[{}]>]>{[<{{}[]}([]<>)>[[(){}][()()]]]
<(<(([[{[<<<(({}))[{[][]}]>[[([]{})({}[])]]>[<<(<>[]){<>[]}><[()<>]>)<[{{}<>}(<>{})]{[<>()]{{}{}}}>]>{[{<{
({<({{{[[(([<<()[]><<><>>>])(<((<>()))(<<><>><[]<>>)>)){{({[[]()]{[]<>}}[[{}[]]<[]()>])}({({()()}<[]()
{{{<[<{<{[<(<{[]()}><[()[]]{[][]}>){<<[]>[<><>]>([<>()][<>()])}>)<<<(([]())[<>[]]){[[][]](<>{})}><([(){}]{{}{
<[((<<<({<[((<{}<>>[[]{}})((<>[])))({<()()>{<><>}}{(<><>){(){}}})][[<<[]>>[{<>[]}{[]()}]]([{
(((<<{<({<[[[{()()}(()<>))(<()[]>((){}))][{({}[])[{}()]}<<{}{}>{()()}>]]>})<<{{<[[<>{}]<[][]>]((<><
[<[{[[{{<{[(<<<>[]><{}()>>)({[{}[]]}((<>())<()[]]))]{{({()[]}([]<>)){{<>[]}[[][]]}}}}{({(<<>[]>{[]})[[{}
<<[({[[[[([<(<<>[]>{()[]})>{<[()<>]>[[[]<>]({})]}]<(<{{}}([])>[<{}()>])[{{<>()}<(){}>}<<<>{}}[{}{}]>]
([(((([[<[{({<{}>})<([{}<>][(){}])<<[]()><()[]>>>]{[([<>[]](()()))[{{}[]}[{}<>]]]({({}<>)[<>()]}<{()<>}{[]{
[[<{[{<{{(<(<[<>{}]><([]{})[{}<>]>)>{{[{<>[]}[{}()]]<<()>{[]}>}[[((){})([])]{<<>()>([][])}]})
{<[{{{<{([<[<{{}{}}[[]{}]><{{}[]}>]{(<{}<>><{}[]>)(<(){}><()()>)}>]<<<({{}}(<>()))[<{}[]>(<>{})]>({<[]>{()<
{<[{[<(({[{{({{}[]}[()[]]}}<(([]())[()[]]){(()){<>()}}>}[<<{<><>}>[([]{}){{}<>}]>[{{<>{}}{()[]}}
<{[{([<{<((<[<()[]>{[][]}]<<()[]><<>{}>>><([<><>]<()()>)({{}()}<(){}>)>){<(([][]){[][]})(<[]><{}{}>)>
(([<((((({{{[<()[]]{{}<>}]{<()()>({}<>)}}([[{}()]<<>>][((){})<<>[]>])}}(<{{[(){}]{()()}}}{([{}()
<<<((<[[{[<([<{}<>>(<><>)]<{[]<>}<[]<>>>)>]{([{[[]<>][<>()]}({[]<>}<<>[]>)])[[{{<>[]}(()())}
{<(<<<(({{(((([]<>)(<>[]))))}[(([[[][]][{}()]])<<(<>{}><{}{}>>{(()[])([]())}>)]}([({((<>){[]<>}){<[][]
({(([[[[<{[{(<{}[]>[{}<>])(<[]<>>({}[]))}{([<><>]{{}{}}){{{}[]}[[][]]}}]<[((()[])([]<>))[{[][]
[<([[([[<({({<[]()>}<[[]()]([]<>)>)([[()[]]]{[<>{}][()()]})))>]<({{[{<{}{}>}{{()()}[<>[]]}]{([{
({<<{{({[{[{{[[]<>]<(){}>}<<<>{}>({}{})>}<{[{}<>]}(<[]>[()[]]))]}]<<<<<{(){}}<<>[]>>{<[]{}>{(){}}
(({<([<((<((({{}[]}[[]()])){{[[]()]<[]{}>}(<[][]>{<>})})({{[()()]{{}<>}}(({}{})[<><>])}[[([]{})[
({{[(<{{<<<<[{{}{}}{{}{}}][<[]()>[[]()]]>([{{}}<[]<>>][<[]{}>{()<>}])>[<{({}{})({}<>>}[<{}<>>[<>()]]>]><<
{[((({{(<(<{[{[]()}}<<[][]>(<>[])>}<(<[]()><()<>>){[<><>]<<>()>}>><[{<()[]>}{[{}[]](<>{})}]>)<({<{<><>}>}{
[(([{([<<<([[(()())][([]{})[<>{}]]]({((){})((){})}(([][])[()<>])))[<((<>())[<>{}])>{{[[]<>](
<(({<([(<<<{([{}[]]<[]>)}({{<>{}}[[]{}]}(<{}[]>(()<>)))>>({<{<<>()>((){})}((()())[<>{}])><[<[]()>]{<
[<[{({<[({[(<[{}[]]{[]<>}>(({}{}){{}[]}))(<{()[]}>)]{<([[][]][{}<>])<<<>{}>>>{{((){}){()()}}<{{}}
[<([{<(<(<<{([[]<>]{(){}})((()<>)[[]])}<[<{}()>]<{<><>}<{}{}>>>>([{({}<>){{}()}}]<((()()))<<[][]>
({[{((<{[{([<{()()}{<>()}>[[()[]]]])}[{([[{}]{<>{}}]({[]()}[{}[]]))<{<{}<>>}>}]][[[(<({}{}){{}
[[<{{<{[([(<([[]<>][()<>]))[[[<>[]]]({()()}([][]))])(([[[][]]([]())])<{{{}<>}([]{})}<{[][]}{
<<({<[{[<{<<([<>()]({}<>))][([{}()][{}[]])]>}>]}{[<[[[[[[]{}]<{}>]<<{}()>{()[]}>]][<{({}())
(<<[({[([([[(<<>{}>){[(){}][()]}][[[(){}]{[]<>}]]]<[([<>[]]([]))[{{}<>}{()()}]]<[<{}[]>(()())]<<<><>>{{}[]
{([[[<[(<({<{{{}{}}[[]<>]}<[()[]]{<>[]}>>}<<<(()())<{}[]>>[([][])<<><>>]>[(((){})(()[])){<{}()>(()[])
{[<{[[[((<{[{[[]<>]{{}()}}[{{}<>}{<><>}]][<<()<>>{<>{}}>[{[]{}}((){})>]}(<[<[][]>({}())]<[<>[]](()[])
{({(<<{({({([<(){}>[()()]](<[]><[]<>>))([{<>()}<{}<>>]{<[]<>>[[][]]})})({[(([]<>)[[]])]{([[]{}]{{}()}
{{[<{<<{<{({(({}()))[<<>{}]{()()}]}({{[]{}}([][])}[<<>()>{[]<>}]))}>(<<[{<[]()><<>{}>}]{((<>[]))<(
{{[<[{<(([({([{}{}]({}[]))<<()>(<>[])>})[<<{[][]}<[]()>><{{}[]}<<>{}>>>{{{{}{}}{<>{}}}([{}
[[([(<{{[{{{{{()()}[[][]]}([{}()](<>))}<{<<>[]>[{}[]]}<<{}()>>>}}]<<[{[<{}>({})](<()[]>)}](<<<[][]>(
{<[([{{{((<{((<>())){<[]<>>}}<<{<><>}[<>{}]>{{()[]}(()[])}>>{{{<()()>[[]{}]}[[<><>]<[]()>]}([{{}}{()()}][(<>[
[{<{[([((<(<(((){})[<>]){({}[])<{}<>>}>(((()())([]{}))<[()()]{[]{}}>))([((()<>)<{}()})<{{}[]}<<>
{(({{{<[<({([<{}()>]{<<><>>{<><>}})}){<(((<>[])<[][]>)(<[]<>>{{}<>}))(<{<>{}}<()[]>>[[{}[]]({}())])>
{<([{(<{<<{(<{()}{<>[]}>)([[{}()]{<>{}}]<({}{})>)}[<<<()[]>({}<>)>[<[]>[<>{}]]><(<{}()>[<>{}])>]
<{{{{(({{{[{<[[][]]<()<>>>}[({{}[]}([]<>))({{}{}}{<>()>)]]}}}([{<{{<{}<>><<><>>}}{([{}<>]<<>{}>)
{<[<<{<([[[[[[<>[]](()[])]({{}[]}<{}>)][((()())({}()))<{{}[]}(<>())>]]([<[{}[]][<>[]]>]<{([]{})}{(
{<{[[([<([[[(<()()>({}[]))[{()[]}]]((({}[]><()()>)[({}){[]<>}])]]{<<{<()[]>}{<<>[]>{<>()}}>><[{(()<>)({}<
[[<[[<{{{{<<{{[][]}<(){}>}><{([]())[[]<>]}<<{}[]>(<>())>>>}<{{[[(){}]<<>()>]<{{}()}[[][]]>}}<(<<(
<[[(({({(({{{([]{}){<>{}}}{[<><>]{[]<>}}}}))[({[[({}<>){<><>}]{<<>{}><<><>>}]}[<{<{}<>>(<>{})}(([
({<<([{[<[<([((){})([]())][(()<>)({}[])]){{[{}()]({}[])}[{{}()}{{}()}]}>{{({<>[]}{<>})[<(){}>
<(<{<[<{({{[<{{}[]}{[]<>)>][{[{}{}][()<>]}(<[]<>>[[]{}])]}(([[[]<>]{()()}]<[{}[]]{<>{}}>)((([][]))
<{<(<<((<<[[{<()()><<><>>}<(()<>)({}<>)>>[<<[][]>(<><>)>{(<>[])}]](<{<()[]>([]())}[{<><>}<{}[]>]>)>>{(
{(({(<(<<[[[{<<>()><{}()>}[[<><>]{()<>>]]{[{(){}}]}]]>>)(<<(<({([]())<<><>>}({[]()}({}<>)))>
<{<<[<<{[<([[(()())<<><>>][<<>[]>(<>())]]({<{}{}><<><>>}{[{}]<<>[]>})){[{{[]}<{}[]>}[[(){}]{[]<>}]]
({[[{<[([[[{[[(){}]{[][]}]<({}[])({}())>}{{<()[]>{<><>}}<{<>}>}]{<<<()<>]{<>{}}>[<[]<>>{{}()}]><[<<
<{{{([({<{{([{()}[()<>]][(<>())(())])([({}[])[{}{}]]({{}{})([]())))}{(<[<>()]{()<>}><[()<>][<>[]]
((<[(<[(({{(<<(){}>{(){}}>({()[]}[<>[]]))<(((){})({}()))<<[]{}><()[]>>>}})<[{([<<>{}>]){<{<>{}}{()<>}>}}{{(

10
data/day11.txt Normal file
View File

@ -0,0 +1,10 @@
3172537688
4566483125
6374512653
8321148885
4342747758
1362188582
7582213132
6887875268
7635112787
7242787273

0
data/day12.txt Normal file
View File

0
data/day13.txt Normal file
View File

0
data/day14.txt Normal file
View File

0
data/day15.txt Normal file
View File

0
data/day16.txt Normal file
View File

0
data/day17.txt Normal file
View File

0
data/day18.txt Normal file
View File

0
data/day19.txt Normal file
View File

0
data/day20.txt Normal file
View File

0
data/day21.txt Normal file
View File

0
data/day22.txt Normal file
View File

0
data/day23.txt Normal file
View File

0
data/day24.txt Normal file
View File

0
data/day25.txt Normal file
View File

7
prepare.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
set -xe
mkdir -p c obj exe
marst src/util.a60 -o c/util.c
gcc -c -O3 c/util.c -o obj/util.o

5
run.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
set -xe
cat ./data/$1.txt | ./exe/$1.exe

31
src/day01.a60 Normal file
View File

@ -0,0 +1,31 @@
procedure printresults(r1, r2);
integer r1, r2;
code;
begin
integer result1, result2;
integer x, y, z, t;
integer i, NN;
NN := 1997;
result1 := 0;
result2 := 0;
ininteger(0, x);
ininteger(0, y);
ininteger(0, z);
if y > x then
result1 := result1 + 1;
if z > y then
result1 := result1 + 1;
for i := 1 step 1 until NN do
begin
ininteger(0, t);
if t > x then
result2 := result2 + 1;
if t > z then
result1 := result1 + 1;
x := y;
y := z;
z := t;
end;
printresults(result1, result2);
end

42
src/day02.a60 Normal file
View File

@ -0,0 +1,42 @@
procedure printresults(r1,r2);
integer r1, r2;
code;
begin
integer result1, result2;
integer move, depth, depth2;
integer i, j, NN;
integer inp;
move := 0; depth := 0; depth2 := 0;
result1 := 0; result2 := 0;
NN := 1000;
for i := 1 step 1 until NN do
begin
inchar(0, "fdu", inp);
if inp = 1 then
begin
for j := 1 step 1 until 8 do
begin
inchar(0, "forward0123456789", inp);
end;
move := move + inp - 8;
depth2 := depth2 + depth * (inp - 8);
end move;
if inp = 2 then
begin
for j := 1 step 1 until 5 do
inchar(0, "down0123456789", inp);
depth := depth + inp - 5;
end down;
if inp = 3 then
begin
for j := 1 step 1 until 3 do
inchar(0, "up0123456789", inp);
depth := depth - inp + 3;
end up;
inchar(0, "\n", inp);
end mainloop;
result1 := move * depth;
result2 := move * depth2;
printresults(result1, result2);
end

0
src/day03.a60 Normal file
View File

0
src/day04.a60 Normal file
View File

0
src/day05.a60 Normal file
View File

0
src/day06.a60 Normal file
View File

0
src/day07.a60 Normal file
View File

0
src/day08.a60 Normal file
View File

0
src/day09.a60 Normal file
View File

0
src/day10.a60 Normal file
View File

0
src/day11.a60 Normal file
View File

0
src/day12.a60 Normal file
View File

0
src/day13.a60 Normal file
View File

0
src/day14.a60 Normal file
View File

0
src/day15.a60 Normal file
View File

0
src/day16.a60 Normal file
View File

0
src/day17.a60 Normal file
View File

0
src/day18.a60 Normal file
View File

0
src/day19.a60 Normal file
View File

0
src/day20.a60 Normal file
View File

0
src/day21.a60 Normal file
View File

0
src/day22.a60 Normal file
View File

0
src/day23.a60 Normal file
View File

0
src/day24.a60 Normal file
View File

0
src/day25.a60 Normal file
View File

9
src/util.a60 Normal file
View File

@ -0,0 +1,9 @@
procedure printresults(r1,r2);
integer r1, r2;
begin
outstring(1, "Results are:\nPart 1: ");
outinteger(1, r1);
outstring(1, "\nPart 2: ");
outinteger(1, r2);
outchar(1, "\n", 1);
end printresults;