tangled
alpha
login
or
join now
benharri.org
/
aoc
0
fork
atom
my advent of code solutions
0
fork
atom
overview
issues
pulls
pipelines
2024 day 1
benharri.org
1 year ago
4d7affc2
bf349ab9
+1054
4 changed files
expand all
collapse all
unified
split
Solutions
2024
Day01.cs
input
2024
day01.in
test01.in
Tests
Test2024.cs
+32
Solutions/2024/Day01.cs
···
1
1
+
namespace Solutions._2024;
2
2
+
3
3
+
/// <summary>
4
4
+
/// <a href="https://adventofcode.com/2024/day/1">Day 1</a>
5
5
+
/// </summary>
6
6
+
public sealed class Day01() : Day(2024, 1, "")
7
7
+
{
8
8
+
private List<int> _list1 = [];
9
9
+
private List<int> _list2 = [];
10
10
+
11
11
+
public override void ProcessInput()
12
12
+
{
13
13
+
var l = Input.Select(line =>
14
14
+
line.Split(' ', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries)).ToList();
15
15
+
_list1 = l.Select(line => line[0]).Select(int.Parse).ToList();
16
16
+
_list2 = l.Select(line => line[1]).Select(int.Parse).ToList();
17
17
+
}
18
18
+
19
19
+
public override object Part1() =>
20
20
+
_list1.OrderBy(c => c).Zip(_list2.OrderBy(c => c)).Sum(i => Math.Abs(i.First - i.Second));
21
21
+
22
22
+
public override object Part2()
23
23
+
{
24
24
+
var grouped = _list2.GroupBy(c => c).ToDictionary(c => c.Key, c => c.Count());
25
25
+
26
26
+
return _list1.Sum(i =>
27
27
+
{
28
28
+
grouped.TryGetValue(i, out var c);
29
29
+
return i * c;
30
30
+
});
31
31
+
}
32
32
+
}
+1000
Solutions/input/2024/day01.in
···
1
1
+
85215 94333
2
2
+
24582 34558
3
3
+
98037 94333
4
4
+
75786 66247
5
5
+
45656 85863
6
6
+
70998 87003
7
7
+
30367 62007
8
8
+
81780 23161
9
9
+
90260 65786
10
10
+
24710 86514
11
11
+
14018 34310
12
12
+
43565 47888
13
13
+
59781 79173
14
14
+
47761 71538
15
15
+
85892 22181
16
16
+
25701 61839
17
17
+
18264 33438
18
18
+
33747 43258
19
19
+
39697 94333
20
20
+
61838 37358
21
21
+
70437 22496
22
22
+
23562 26799
23
23
+
11216 34419
24
24
+
63191 11393
25
25
+
88615 31544
26
26
+
93481 62720
27
27
+
29534 40919
28
28
+
29935 18758
29
29
+
95190 87857
30
30
+
51306 33515
31
31
+
30938 29652
32
32
+
77253 30646
33
33
+
66807 67041
34
34
+
75203 67041
35
35
+
15696 61800
36
36
+
73541 29496
37
37
+
52063 51002
38
38
+
55826 40919
39
39
+
79183 35633
40
40
+
77348 44025
41
41
+
65423 33750
42
42
+
65816 10624
43
43
+
52110 89611
44
44
+
18201 22051
45
45
+
27748 66807
46
46
+
92259 42784
47
47
+
14988 33500
48
48
+
58623 64359
49
49
+
88260 90432
50
50
+
62079 77685
51
51
+
45698 40919
52
52
+
91705 64359
53
53
+
53661 73356
54
54
+
93541 28465
55
55
+
76689 96938
56
56
+
60498 93056
57
57
+
25784 65786
58
58
+
32811 24732
59
59
+
62264 72520
60
60
+
41995 43258
61
61
+
38545 84426
62
62
+
19555 72520
63
63
+
73703 78074
64
64
+
86068 72520
65
65
+
25850 87009
66
66
+
49433 10684
67
67
+
74291 61839
68
68
+
40711 10516
69
69
+
37728 82526
70
70
+
80842 40919
71
71
+
24677 23062
72
72
+
29575 52605
73
73
+
20692 77673
74
74
+
82910 68845
75
75
+
33830 62419
76
76
+
68434 73604
77
77
+
62401 84426
78
78
+
82646 70854
79
79
+
38398 56339
80
80
+
79408 51171
81
81
+
63734 27770
82
82
+
13556 24577
83
83
+
75123 37015
84
84
+
61363 69734
85
85
+
95609 86251
86
86
+
88545 27770
87
87
+
50893 74026
88
88
+
14882 87009
89
89
+
91379 33438
90
90
+
60224 52605
91
91
+
72679 47888
92
92
+
75505 59781
93
93
+
10186 62720
94
94
+
88379 64359
95
95
+
90496 67041
96
96
+
73586 93056
97
97
+
95670 63191
98
98
+
87141 59781
99
99
+
13919 74934
100
100
+
98555 74846
101
101
+
87897 32687
102
102
+
21880 62687
103
103
+
29658 50213
104
104
+
96248 83521
105
105
+
15492 86906
106
106
+
29496 53112
107
107
+
25334 27594
108
108
+
20643 86251
109
109
+
56611 39477
110
110
+
29416 24577
111
111
+
74832 63164
112
112
+
43193 43258
113
113
+
81875 75725
114
114
+
61800 61927
115
115
+
24065 94333
116
116
+
83853 31467
117
117
+
17180 10130
118
118
+
43720 37354
119
119
+
65647 45425
120
120
+
51476 10461
121
121
+
57574 93056
122
122
+
31072 83739
123
123
+
75113 19490
124
124
+
79797 26799
125
125
+
72214 11294
126
126
+
13116 48228
127
127
+
93787 33438
128
128
+
46134 19254
129
129
+
40985 28931
130
130
+
25988 11393
131
131
+
23062 59151
132
132
+
79383 11393
133
133
+
75339 89198
134
134
+
79708 29496
135
135
+
13058 61839
136
136
+
16278 45698
137
137
+
80414 14142
138
138
+
16351 40919
139
139
+
54813 43258
140
140
+
81250 87434
141
141
+
50921 61839
142
142
+
53645 43258
143
143
+
70432 22523
144
144
+
81070 32306
145
145
+
38985 31359
146
146
+
19798 99501
147
147
+
92509 43258
148
148
+
25063 66000
149
149
+
44665 33438
150
150
+
64806 93056
151
151
+
74946 26300
152
152
+
48029 30646
153
153
+
77560 83292
154
154
+
82468 95064
155
155
+
29223 71914
156
156
+
87584 63191
157
157
+
93056 26799
158
158
+
55648 29949
159
159
+
14352 48844
160
160
+
49873 34111
161
161
+
56227 45698
162
162
+
67703 63191
163
163
+
68135 30646
164
164
+
44722 90812
165
165
+
65476 78955
166
166
+
82704 47888
167
167
+
50424 23079
168
168
+
51796 70111
169
169
+
85079 22013
170
170
+
61910 66098
171
171
+
84132 89544
172
172
+
47927 62720
173
173
+
61766 78856
174
174
+
38484 42757
175
175
+
57255 93056
176
176
+
48855 78836
177
177
+
73127 78836
178
178
+
21236 61839
179
179
+
15138 94333
180
180
+
26829 65786
181
181
+
48823 93140
182
182
+
28401 63191
183
183
+
75082 42757
184
184
+
41215 26799
185
185
+
67176 19254
186
186
+
13673 78836
187
187
+
53842 26386
188
188
+
41964 59781
189
189
+
46737 21097
190
190
+
52719 29652
191
191
+
20212 76559
192
192
+
89201 82291
193
193
+
98568 63191
194
194
+
55425 93322
195
195
+
69878 63283
196
196
+
36501 27429
197
197
+
16724 47888
198
198
+
61592 81085
199
199
+
41114 93056
200
200
+
44198 47888
201
201
+
47061 86251
202
202
+
45289 56992
203
203
+
47597 15576
204
204
+
18834 66807
205
205
+
31018 40919
206
206
+
40775 78266
207
207
+
25185 76021
208
208
+
48462 64359
209
209
+
26799 32811
210
210
+
37199 19555
211
211
+
94411 77560
212
212
+
45846 48696
213
213
+
16862 77508
214
214
+
77988 94333
215
215
+
89121 66807
216
216
+
41240 94333
217
217
+
88088 59151
218
218
+
52125 29652
219
219
+
12932 13054
220
220
+
61211 28578
221
221
+
26024 87009
222
222
+
26312 55718
223
223
+
14585 45698
224
224
+
65939 91730
225
225
+
68138 59781
226
226
+
70317 78836
227
227
+
83217 78836
228
228
+
22036 26799
229
229
+
63215 66807
230
230
+
54110 21264
231
231
+
12981 33069
232
232
+
61857 29652
233
233
+
54637 94333
234
234
+
15241 93056
235
235
+
19897 33438
236
236
+
77229 86251
237
237
+
55685 37316
238
238
+
30161 66807
239
239
+
61780 14101
240
240
+
19289 17661
241
241
+
48121 51324
242
242
+
99355 72435
243
243
+
62767 32811
244
244
+
98670 19490
245
245
+
85332 31012
246
246
+
92588 18461
247
247
+
67574 94379
248
248
+
90643 66607
249
249
+
95487 66807
250
250
+
33530 46429
251
251
+
87009 23062
252
252
+
61978 27770
253
253
+
53891 19254
254
254
+
64426 58297
255
255
+
70651 61800
256
256
+
40653 40474
257
257
+
45888 33438
258
258
+
55241 44527
259
259
+
11126 42398
260
260
+
92609 93056
261
261
+
21760 22129
262
262
+
72079 51542
263
263
+
41177 26196
264
264
+
67610 68036
265
265
+
62720 45698
266
266
+
38295 64359
267
267
+
69482 93056
268
268
+
24219 66807
269
269
+
69511 45698
270
270
+
30242 24577
271
271
+
46626 18573
272
272
+
36316 80909
273
273
+
40214 72520
274
274
+
16785 10921
275
275
+
27770 11393
276
276
+
70571 43258
277
277
+
50406 30875
278
278
+
76411 98707
279
279
+
75186 77560
280
280
+
80536 11587
281
281
+
74209 78836
282
282
+
20188 72520
283
283
+
30587 57435
284
284
+
44135 58144
285
285
+
29251 46185
286
286
+
73362 45698
287
287
+
52443 53860
288
288
+
61094 46357
289
289
+
12167 47231
290
290
+
51846 62720
291
291
+
75168 23761
292
292
+
97509 65786
293
293
+
29546 42330
294
294
+
83531 35185
295
295
+
67737 19555
296
296
+
85592 61105
297
297
+
11431 29868
298
298
+
38480 45698
299
299
+
42360 17615
300
300
+
14648 34009
301
301
+
32741 52605
302
302
+
97324 51113
303
303
+
79881 77560
304
304
+
71771 32811
305
305
+
18334 52605
306
306
+
68130 61839
307
307
+
61546 47888
308
308
+
14960 52980
309
309
+
18988 99079
310
310
+
30289 23062
311
311
+
75930 29652
312
312
+
21257 44357
313
313
+
36448 47888
314
314
+
86654 93056
315
315
+
11876 43258
316
316
+
66255 40252
317
317
+
92074 36869
318
318
+
29648 32811
319
319
+
17522 72850
320
320
+
52479 93056
321
321
+
95416 73490
322
322
+
69033 62720
323
323
+
60062 92471
324
324
+
67751 61800
325
325
+
32285 41674
326
326
+
14164 61800
327
327
+
84112 78836
328
328
+
28620 16338
329
329
+
93425 19490
330
330
+
25079 43258
331
331
+
63507 30646
332
332
+
25390 43258
333
333
+
32858 23009
334
334
+
95361 16283
335
335
+
94333 74724
336
336
+
40395 72462
337
337
+
43206 62720
338
338
+
92330 29652
339
339
+
84078 24447
340
340
+
72161 64359
341
341
+
63204 75725
342
342
+
16143 33438
343
343
+
71756 69784
344
344
+
27041 11228
345
345
+
84087 94333
346
346
+
17409 59151
347
347
+
51792 14329
348
348
+
52746 17484
349
349
+
74015 23504
350
350
+
59054 67041
351
351
+
29297 19555
352
352
+
84657 86854
353
353
+
32609 23062
354
354
+
17060 44956
355
355
+
25874 78836
356
356
+
58302 54942
357
357
+
80865 36577
358
358
+
26487 84426
359
359
+
66212 63915
360
360
+
15758 94333
361
361
+
89851 47888
362
362
+
76509 18449
363
363
+
82093 86251
364
364
+
59990 86771
365
365
+
10461 26799
366
366
+
63653 10461
367
367
+
61308 26799
368
368
+
89327 86251
369
369
+
14989 22847
370
370
+
17367 33851
371
371
+
86991 51588
372
372
+
41601 19490
373
373
+
44063 92877
374
374
+
65372 61839
375
375
+
64013 61800
376
376
+
53989 52845
377
377
+
87917 19555
378
378
+
54951 77327
379
379
+
49657 40919
380
380
+
37242 69223
381
381
+
10122 67041
382
382
+
20118 86251
383
383
+
94367 70551
384
384
+
23209 24123
385
385
+
55363 19555
386
386
+
65064 52605
387
387
+
12293 61429
388
388
+
90625 71173
389
389
+
75864 59052
390
390
+
75980 74726
391
391
+
82806 77560
392
392
+
50840 17142
393
393
+
22139 64359
394
394
+
56146 10907
395
395
+
68559 63191
396
396
+
15717 32811
397
397
+
18446 64359
398
398
+
32393 85038
399
399
+
38555 78836
400
400
+
92877 27770
401
401
+
52476 51588
402
402
+
22255 79119
403
403
+
57023 75570
404
404
+
89712 52605
405
405
+
47141 10226
406
406
+
98051 77560
407
407
+
69509 53053
408
408
+
51468 15072
409
409
+
83074 61800
410
410
+
78836 34010
411
411
+
32010 77560
412
412
+
82768 59151
413
413
+
80962 17192
414
414
+
37056 61800
415
415
+
55438 60664
416
416
+
24160 67041
417
417
+
79310 59781
418
418
+
36425 63941
419
419
+
41091 19348
420
420
+
47905 12402
421
421
+
41536 44084
422
422
+
29509 27770
423
423
+
54028 18938
424
424
+
20625 28465
425
425
+
71827 20910
426
426
+
47338 26799
427
427
+
10967 33904
428
428
+
75725 27770
429
429
+
95800 59781
430
430
+
64759 75725
431
431
+
37476 63745
432
432
+
78412 65786
433
433
+
28130 33021
434
434
+
83725 99593
435
435
+
53024 29496
436
436
+
45967 45698
437
437
+
56671 26688
438
438
+
41707 55835
439
439
+
77665 64081
440
440
+
48546 27175
441
441
+
16309 17752
442
442
+
16089 81097
443
443
+
76903 57741
444
444
+
31304 65786
445
445
+
45381 47888
446
446
+
61640 21302
447
447
+
55671 38075
448
448
+
91121 39769
449
449
+
48837 84153
450
450
+
68378 92214
451
451
+
77462 59495
452
452
+
36188 31985
453
453
+
60269 25406
454
454
+
78335 19555
455
455
+
74685 98007
456
456
+
16866 98832
457
457
+
72995 52118
458
458
+
26388 66807
459
459
+
36575 45698
460
460
+
46928 70337
461
461
+
65265 88675
462
462
+
84605 93056
463
463
+
42658 49345
464
464
+
56818 78302
465
465
+
51576 61800
466
466
+
95552 52605
467
467
+
84846 84426
468
468
+
52027 32811
469
469
+
28477 19490
470
470
+
64359 81028
471
471
+
47203 15754
472
472
+
52605 20196
473
473
+
95437 70612
474
474
+
72068 51272
475
475
+
59641 67041
476
476
+
24867 29652
477
477
+
32292 21462
478
478
+
67584 23062
479
479
+
35182 57668
480
480
+
19538 30815
481
481
+
32007 12078
482
482
+
92975 32366
483
483
+
30032 66807
484
484
+
41113 19555
485
485
+
73576 24441
486
486
+
26722 61839
487
487
+
54882 40919
488
488
+
99164 94333
489
489
+
24703 55316
490
490
+
68050 35855
491
491
+
60454 22975
492
492
+
27190 47888
493
493
+
49592 33438
494
494
+
56765 94333
495
495
+
49584 40919
496
496
+
40545 51588
497
497
+
13088 65786
498
498
+
92702 19555
499
499
+
25522 98561
500
500
+
70502 49926
501
501
+
92893 40919
502
502
+
11623 94333
503
503
+
84426 72520
504
504
+
12731 67041
505
505
+
92300 66281
506
506
+
21625 93056
507
507
+
26632 86251
508
508
+
28475 77846
509
509
+
75712 50243
510
510
+
75879 65786
511
511
+
69842 32598
512
512
+
95243 90308
513
513
+
44031 63191
514
514
+
63456 62720
515
515
+
47057 90323
516
516
+
32649 80072
517
517
+
30244 85267
518
518
+
18656 11393
519
519
+
70657 89691
520
520
+
59827 54749
521
521
+
21580 17319
522
522
+
34612 19555
523
523
+
71392 19254
524
524
+
66944 33438
525
525
+
75302 38740
526
526
+
35677 61839
527
527
+
66839 28758
528
528
+
43839 86251
529
529
+
33590 11393
530
530
+
70339 43258
531
531
+
73961 84251
532
532
+
39874 75536
533
533
+
83280 13458
534
534
+
76702 23062
535
535
+
38544 19490
536
536
+
50441 53429
537
537
+
42757 61839
538
538
+
67041 78836
539
539
+
12497 25094
540
540
+
42768 65593
541
541
+
12205 19555
542
542
+
95448 94430
543
543
+
32384 40613
544
544
+
21279 78836
545
545
+
17428 65786
546
546
+
10614 62720
547
547
+
61245 59781
548
548
+
17235 93810
549
549
+
16999 31069
550
550
+
63526 86251
551
551
+
39490 65786
552
552
+
95242 25169
553
553
+
66925 87755
554
554
+
22315 55633
555
555
+
56338 64359
556
556
+
20318 17296
557
557
+
87536 71404
558
558
+
76054 14998
559
559
+
51588 61800
560
560
+
13119 27770
561
561
+
34345 10279
562
562
+
20023 81145
563
563
+
37131 19490
564
564
+
42337 47888
565
565
+
89951 61839
566
566
+
79435 65253
567
567
+
13465 45698
568
568
+
29793 92877
569
569
+
27722 15909
570
570
+
86832 11477
571
571
+
81965 78836
572
572
+
20918 11393
573
573
+
75215 96512
574
574
+
85783 19555
575
575
+
90525 59151
576
576
+
15127 56714
577
577
+
76419 66807
578
578
+
45429 63191
579
579
+
40503 51588
580
580
+
77472 66807
581
581
+
24459 64359
582
582
+
39273 52605
583
583
+
65912 29652
584
584
+
41919 27969
585
585
+
38024 62720
586
586
+
79322 87432
587
587
+
43054 33081
588
588
+
23682 19254
589
589
+
12316 67030
590
590
+
34222 45698
591
591
+
98966 78166
592
592
+
34564 64359
593
593
+
32039 19295
594
594
+
39662 45698
595
595
+
77296 62861
596
596
+
11982 65786
597
597
+
85184 27770
598
598
+
23308 48241
599
599
+
87694 79043
600
600
+
65053 65212
601
601
+
95042 94333
602
602
+
63925 27924
603
603
+
61794 47888
604
604
+
46414 12815
605
605
+
74588 34197
606
606
+
29733 59781
607
607
+
32203 95057
608
608
+
82698 70210
609
609
+
16989 92877
610
610
+
79186 51588
611
611
+
47914 52605
612
612
+
49915 10461
613
613
+
18124 37893
614
614
+
12186 68323
615
615
+
80439 26799
616
616
+
91196 78836
617
617
+
65806 66807
618
618
+
64937 77371
619
619
+
39013 97072
620
620
+
35793 78836
621
621
+
86223 67041
622
622
+
68919 86251
623
623
+
16242 61839
624
624
+
26757 69116
625
625
+
62000 65786
626
626
+
91400 30878
627
627
+
43258 66741
628
628
+
74293 19490
629
629
+
36472 17183
630
630
+
72537 29652
631
631
+
79963 73712
632
632
+
89591 42757
633
633
+
46045 59313
634
634
+
55267 83489
635
635
+
11274 29652
636
636
+
46293 59781
637
637
+
13186 63191
638
638
+
31736 47888
639
639
+
17707 51784
640
640
+
11755 96140
641
641
+
43161 51588
642
642
+
16657 19490
643
643
+
13779 86544
644
644
+
77770 78265
645
645
+
43502 61800
646
646
+
26568 53664
647
647
+
16788 47888
648
648
+
92875 91405
649
649
+
99320 66415
650
650
+
19490 78836
651
651
+
38003 28554
652
652
+
12296 77560
653
653
+
98989 40919
654
654
+
90146 21633
655
655
+
11563 97245
656
656
+
52578 66743
657
657
+
65786 44135
658
658
+
68704 19490
659
659
+
69963 19555
660
660
+
16787 45698
661
661
+
38189 14942
662
662
+
79734 63191
663
663
+
40154 35300
664
664
+
57993 51909
665
665
+
56091 64832
666
666
+
28153 63191
667
667
+
88207 15883
668
668
+
57286 63191
669
669
+
72520 26705
670
670
+
50122 62720
671
671
+
95885 14865
672
672
+
25183 75725
673
673
+
28985 52605
674
674
+
81747 84420
675
675
+
50078 35018
676
676
+
76112 98498
677
677
+
27757 75725
678
678
+
56391 87304
679
679
+
58234 61800
680
680
+
90999 19597
681
681
+
25733 19254
682
682
+
65607 19490
683
683
+
62203 99203
684
684
+
59085 19490
685
685
+
20052 72751
686
686
+
28344 19008
687
687
+
58344 93056
688
688
+
34019 33438
689
689
+
24970 43258
690
690
+
72586 14704
691
691
+
12892 11393
692
692
+
67070 19555
693
693
+
38881 43258
694
694
+
16457 17416
695
695
+
15116 59120
696
696
+
91678 75725
697
697
+
80586 19555
698
698
+
33881 42757
699
699
+
61688 71092
700
700
+
69315 56598
701
701
+
53321 93224
702
702
+
59151 28716
703
703
+
87226 19254
704
704
+
73486 94333
705
705
+
27149 79695
706
706
+
44397 63191
707
707
+
86370 66807
708
708
+
28465 70737
709
709
+
67420 94333
710
710
+
97544 33438
711
711
+
11326 32811
712
712
+
65808 52518
713
713
+
51991 51637
714
714
+
38955 38228
715
715
+
40299 86251
716
716
+
98792 59151
717
717
+
98158 27770
718
718
+
15911 64175
719
719
+
33107 29652
720
720
+
91713 47922
721
721
+
53452 81046
722
722
+
31259 30646
723
723
+
61299 62720
724
724
+
68294 65343
725
725
+
30551 93056
726
726
+
35457 66807
727
727
+
73631 11393
728
728
+
30456 28781
729
729
+
30406 27172
730
730
+
61078 10461
731
731
+
72853 63191
732
732
+
11693 23540
733
733
+
56942 43258
734
734
+
36376 11728
735
735
+
45741 65210
736
736
+
37009 63191
737
737
+
87300 23062
738
738
+
61087 75044
739
739
+
47331 46996
740
740
+
47888 86249
741
741
+
91532 29496
742
742
+
70212 65786
743
743
+
24577 94333
744
744
+
26505 67442
745
745
+
93930 20914
746
746
+
21051 94088
747
747
+
56106 33438
748
748
+
47059 52605
749
749
+
39701 27851
750
750
+
76753 98828
751
751
+
80218 65786
752
752
+
15008 60952
753
753
+
20406 30646
754
754
+
19425 61800
755
755
+
41697 59781
756
756
+
77797 85385
757
757
+
86369 60589
758
758
+
15816 12411
759
759
+
12414 75725
760
760
+
91988 58454
761
761
+
15219 43258
762
762
+
92982 45698
763
763
+
71767 21358
764
764
+
78447 30646
765
765
+
42788 19254
766
766
+
19254 56308
767
767
+
54247 27770
768
768
+
64860 48561
769
769
+
25737 75409
770
770
+
13014 51764
771
771
+
68315 75543
772
772
+
89552 51588
773
773
+
92384 77560
774
774
+
12292 94277
775
775
+
55549 54939
776
776
+
90489 26402
777
777
+
23051 47888
778
778
+
87275 77315
779
779
+
90750 49201
780
780
+
19383 75055
781
781
+
26480 52605
782
782
+
11456 90963
783
783
+
24861 66890
784
784
+
45105 51719
785
785
+
88412 93056
786
786
+
41192 51588
787
787
+
10159 24577
788
788
+
22941 19555
789
789
+
47473 93056
790
790
+
38267 93056
791
791
+
24304 10531
792
792
+
86270 44766
793
793
+
91359 33763
794
794
+
35745 19254
795
795
+
35994 32620
796
796
+
35989 59781
797
797
+
24968 73146
798
798
+
33438 78836
799
799
+
84317 59781
800
800
+
16694 84697
801
801
+
50035 43258
802
802
+
46849 36981
803
803
+
21158 10033
804
804
+
38659 59151
805
805
+
66814 99698
806
806
+
62569 29496
807
807
+
26374 85324
808
808
+
17282 10461
809
809
+
58720 69625
810
810
+
67926 19490
811
811
+
32437 47132
812
812
+
87668 25151
813
813
+
39798 36163
814
814
+
65779 63191
815
815
+
36260 41236
816
816
+
80381 34952
817
817
+
90225 94977
818
818
+
66679 47888
819
819
+
88157 47888
820
820
+
13264 26799
821
821
+
64409 51715
822
822
+
93067 19254
823
823
+
30142 52910
824
824
+
42595 27572
825
825
+
85722 93056
826
826
+
30646 99178
827
827
+
53833 17578
828
828
+
38303 64359
829
829
+
44152 61839
830
830
+
91913 29652
831
831
+
73350 31975
832
832
+
99275 71900
833
833
+
15131 25667
834
834
+
61889 45155
835
835
+
18935 66807
836
836
+
41834 29496
837
837
+
18515 26799
838
838
+
31759 87780
839
839
+
40919 64359
840
840
+
20301 66807
841
841
+
32312 51588
842
842
+
73708 60185
843
843
+
95227 93335
844
844
+
92281 83328
845
845
+
30610 76311
846
846
+
74684 58155
847
847
+
59712 72520
848
848
+
65683 13851
849
849
+
30738 36443
850
850
+
31859 34438
851
851
+
82346 86251
852
852
+
46263 65786
853
853
+
13554 19555
854
854
+
67042 52605
855
855
+
61839 29496
856
856
+
75364 19490
857
857
+
58929 59151
858
858
+
66416 31691
859
859
+
88263 79906
860
860
+
78356 61800
861
861
+
57336 19486
862
862
+
53785 72520
863
863
+
16902 45698
864
864
+
61032 38568
865
865
+
48258 19254
866
866
+
73802 43258
867
867
+
94584 74739
868
868
+
40440 30646
869
869
+
30176 66807
870
870
+
70136 19254
871
871
+
25421 64359
872
872
+
57645 66829
873
873
+
16176 33438
874
874
+
20419 96424
875
875
+
51694 66807
876
876
+
42302 61839
877
877
+
68569 45698
878
878
+
93917 77560
879
879
+
69691 20005
880
880
+
53629 91608
881
881
+
57088 67261
882
882
+
71814 67923
883
883
+
93253 86251
884
884
+
17098 42479
885
885
+
47293 19490
886
886
+
81492 33438
887
887
+
12600 53176
888
888
+
22912 20117
889
889
+
76064 42701
890
890
+
44694 57113
891
891
+
96409 19490
892
892
+
61518 29936
893
893
+
41719 56821
894
894
+
80558 63191
895
895
+
29918 61800
896
896
+
51778 86034
897
897
+
21399 64587
898
898
+
84781 95919
899
899
+
13131 53727
900
900
+
17389 59781
901
901
+
45549 97315
902
902
+
85797 11393
903
903
+
87747 96380
904
904
+
32160 44227
905
905
+
17589 63044
906
906
+
15753 67638
907
907
+
75220 40577
908
908
+
40166 43258
909
909
+
94668 65786
910
910
+
59922 92500
911
911
+
10582 52605
912
912
+
79962 67041
913
913
+
86178 45698
914
914
+
74569 61475
915
915
+
94528 38255
916
916
+
59272 59781
917
917
+
60494 81215
918
918
+
60692 68282
919
919
+
37369 71278
920
920
+
26980 83758
921
921
+
51039 35517
922
922
+
75162 63191
923
923
+
81331 65786
924
924
+
29652 27770
925
925
+
98663 19490
926
926
+
43026 60359
927
927
+
14599 58212
928
928
+
13011 27770
929
929
+
50257 94333
930
930
+
13018 47888
931
931
+
40970 29652
932
932
+
46679 71924
933
933
+
32462 75725
934
934
+
81209 37345
935
935
+
64600 43258
936
936
+
96685 92198
937
937
+
14635 24577
938
938
+
66344 23062
939
939
+
93459 11393
940
940
+
49013 11393
941
941
+
15256 97630
942
942
+
52161 47888
943
943
+
66454 19490
944
944
+
78139 47888
945
945
+
73936 19254
946
946
+
43733 19555
947
947
+
35548 94333
948
948
+
11626 85812
949
949
+
11393 15495
950
950
+
58006 52605
951
951
+
92271 56010
952
952
+
31512 98555
953
953
+
11545 62220
954
954
+
66798 22932
955
955
+
13234 29652
956
956
+
70506 72520
957
957
+
36041 79205
958
958
+
78007 10461
959
959
+
59850 67041
960
960
+
77378 67041
961
961
+
34128 94333
962
962
+
31147 33438
963
963
+
45913 33438
964
964
+
97727 61839
965
965
+
25073 25778
966
966
+
86251 43258
967
967
+
58420 55502
968
968
+
43354 78836
969
969
+
68038 86251
970
970
+
67290 33438
971
971
+
90859 59151
972
972
+
67710 66807
973
973
+
48934 16778
974
974
+
22667 86065
975
975
+
72666 22924
976
976
+
77601 64359
977
977
+
20458 10777
978
978
+
99233 89451
979
979
+
54526 13900
980
980
+
79270 75407
981
981
+
51276 23062
982
982
+
54733 98555
983
983
+
60594 40919
984
984
+
61152 92938
985
985
+
74123 42757
986
986
+
13243 19555
987
987
+
55324 20819
988
988
+
55894 23062
989
989
+
16368 34399
990
990
+
16600 74703
991
991
+
59353 72520
992
992
+
19565 11393
993
993
+
71782 87009
994
994
+
31511 86251
995
995
+
83349 96101
996
996
+
23853 40439
997
997
+
53938 19555
998
998
+
18254 32811
999
999
+
86817 33438
1000
1000
+
78957 74568
+6
Solutions/input/2024/test01.in
···
1
1
+
3 4
2
2
+
4 3
3
3
+
2 5
4
4
+
1 3
5
5
+
3 9
6
6
+
3 3
+16
Tests/Test2024.cs
···
1
1
+
using Solutions._2024;
2
2
+
namespace Tests;
3
3
+
4
4
+
[TestClass]
5
5
+
public class Test2024
6
6
+
{
7
7
+
[DataTestMethod]
8
8
+
[DataRow(typeof(Day01), "1319616", "27267728")]
9
9
+
public void CheckAllDays(Type dayType, string part1, string part2) =>
10
10
+
Common.CheckDay(dayType, part1, part2);
11
11
+
12
12
+
[DataTestMethod]
13
13
+
[DataRow(typeof(Day01), "11", "31")]
14
14
+
public void CheckTestInputs(Type dayType, string part1, string part2) =>
15
15
+
Common.CheckDay(dayType, part1, part2, true);
16
16
+
}