You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
advent-of-code/2024/ruby/day_01.rb

1015 lines
14 KiB

input = DATA.read.chomp
.lines
.map { _1.split.map(&:to_i) }
.transpose
.map(&:sort)
a, b = input
# pp a.zip(b).map { _1 - _2 }.map(&:abs).sum
b = b.tally
pp a.sum { _1 * b.fetch(_1, 0) }
__END__
84283 63343
35360 98209
17841 84541
22035 44413
43645 22440
45290 95042
47251 69434
39300 96178
19278 89783
85842 65775
35833 86545
83505 46651
84748 99338
89475 33222
42161 58577
44380 60478
71528 39698
70514 65226
44413 43676
33787 32152
90737 63686
37294 68183
75263 59626
60662 72213
84705 69756
21217 99901
72906 34754
93885 69920
95413 90232
15097 99343
51861 30403
86779 81128
89053 71770
91473 84748
42848 83319
75389 16660
79784 77290
93069 79793
47264 51397
27695 54288
92063 39301
39085 15346
51201 25788
17981 36723
32685 56814
98625 47590
69815 20602
93402 99803
72880 15499
97907 62268
76481 85794
44842 69492
80295 16660
97958 94756
89545 16660
73090 77911
72433 16911
85972 27192
10582 69368
22334 16852
43360 63474
79393 86545
42302 14040
61177 58936
49655 42875
72005 33787
58727 43007
37514 33044
99443 33020
52137 58953
49038 71779
94756 37855
62268 44413
27702 33097
98521 65775
61583 12043
22777 65011
18614 58936
38328 73771
15249 75263
33863 40144
46651 46651
61084 82666
39251 68710
22781 42030
53976 41887
35530 66749
25493 10759
20353 17588
84109 65785
83893 32822
30896 10671
97083 33787
73752 61585
67790 86677
79260 34669
65897 82748
44296 15919
21934 96178
77571 39195
56142 75263
57117 97137
23301 98209
73163 86545
91882 82221
95331 31680
59289 77212
15754 71947
46398 88874
10667 15893
69601 15499
11225 22506
98793 43676
97146 65775
86898 27456
50178 43676
19563 96178
37236 83319
48110 15099
87813 83628
45147 28949
18308 15320
83455 62844
31167 94756
57734 78110
28433 71843
17114 50003
30689 83319
32142 84973
75022 97137
37954 58936
87682 71077
75831 51397
15774 31580
97448 70574
11672 91230
65732 47962
42222 62092
80590 69230
58007 43676
51361 81128
77212 95485
97079 80445
14347 51648
60311 82950
91345 94033
98757 43676
17921 10573
66116 44413
51094 90107
67373 80341
79628 16066
69987 96086
27839 76671
18904 76136
87664 15499
34757 65775
59509 77212
36746 29953
49422 90054
15204 94756
76707 10470
57263 81128
24221 15499
66460 34853
26979 24071
50113 51397
27576 18881
10024 58690
94266 44338
53098 15499
49708 26678
45448 14024
71075 86545
70967 16660
79261 17794
10368 47000
52272 44413
99474 63493
62001 62268
13025 58936
44750 31131
53413 78110
29540 86516
67424 93231
19550 58936
47390 36675
26625 78110
53218 44473
96391 67378
99990 86545
15308 36723
65730 71355
65789 52609
87805 42937
29236 78110
31771 94756
18987 59217
64300 10605
78147 86545
48116 86545
92646 31914
65185 75151
19530 78110
52051 95575
85748 46024
79421 44413
80422 93619
29790 89448
55576 47590
49121 38714
72333 55404
65315 65775
90550 75308
31131 70078
24074 84512
25162 11398
75109 71691
43749 47992
75832 80252
65214 63054
39525 97845
63454 51633
51736 56796
35556 54493
21880 78110
65295 85023
92624 63420
40519 60621
17223 26035
58997 82029
96291 43676
18878 17802
83923 86545
39873 52247
11656 18538
70458 98474
84033 62268
39535 40947
32254 83944
61992 45922
29791 65458
54348 50197
19270 33788
85744 13744
96599 86043
30579 51397
45856 97022
50586 39670
23436 21616
60158 69962
60361 46651
78825 65775
10426 94756
96035 97582
15499 52076
20954 57704
22388 51397
81163 58840
91634 62284
32022 60129
91628 83319
62766 39021
69120 52720
90633 86545
10409 56735
12777 48223
34714 75263
79836 42421
10520 75263
62340 75043
39720 26790
46519 39888
61520 65775
33304 22157
36117 47033
70466 26469
64757 58936
21216 65775
18545 47590
93089 12789
93798 86967
82130 93561
25802 82666
84789 53152
40909 51397
71607 63580
58121 46248
96176 83150
57256 56877
45369 81128
14089 80671
62274 58936
93696 30843
87893 11107
70203 33787
64881 41883
25012 88519
61533 26411
42375 15214
71157 31131
83004 53943
91731 20072
80380 32606
84931 93116
84992 82666
18938 85274
53302 66304
54031 25703
53733 82087
70053 16035
94922 46651
51039 15775
95907 25691
48755 86545
71863 52366
26925 57806
78898 70700
42515 82666
73641 13915
76761 68975
81003 64780
78110 93231
43324 32347
21609 82998
82606 47590
81882 81455
33483 15499
94856 96178
83072 91213
95776 15752
49704 67234
38311 59510
18526 73415
34486 49323
86291 95736
48231 48723
58843 94756
39909 96229
48028 97137
56310 29503
99185 24905
17336 82666
92522 85585
13402 73819
32705 81018
48232 69309
57780 67505
81213 58936
98451 82666
99334 65775
20346 83118
23437 66474
10188 47428
36257 54877
56471 83319
16660 96178
67004 82666
42043 25942
73986 23575
22940 75135
14788 90530
17351 83319
93467 47590
45821 68349
50930 64681
97634 35360
43212 31098
74266 69116
54839 31433
21639 25809
46195 44054
51737 84748
42702 86545
33691 77212
27068 16406
82599 15400
39389 67976
20089 57521
43676 38333
40624 36299
69489 65775
57102 86545
85599 98399
28855 77212
61910 71149
72866 85822
89253 93951
92040 90428
79472 18069
86424 58936
37352 44413
85210 94311
89903 78875
80026 60474
88961 99820
38159 81128
35620 38529
93003 52573
48646 58936
44325 13961
82076 24493
74069 81128
18067 28571
99684 10225
21031 82452
90638 86545
57199 31313
82205 13207
71149 73214
58191 81342
47303 65775
36022 37220
72656 49204
55308 53561
19095 65493
46635 71555
15506 64319
40226 49581
25646 79607
44326 44382
74259 78110
83125 44570
85377 51736
49474 81128
77096 66424
32334 82666
88697 91300
13865 11138
48113 75493
15017 81128
61694 93132
27654 65809
79058 86545
32035 84748
20212 22750
51434 35768
89681 75874
38356 91593
40535 30523
35913 51397
20493 78110
65172 84035
20026 74404
74410 30968
63206 31719
39064 41786
57312 85504
42601 93207
56746 31131
13866 83100
56073 86545
89828 68239
43617 80074
68234 40950
17714 96178
91242 93460
61907 51622
45542 54328
56287 98209
33780 54835
81704 17337
95069 45562
54245 83519
10776 92714
15551 83089
47590 46303
71220 47329
20160 28184
93991 88224
59450 97215
71333 84428
42520 48130
54366 15499
31338 44103
94941 86108
13396 81924
74187 93231
10131 47816
34774 44413
36723 91465
45677 34269
13499 35048
15009 58120
84895 90143
74165 83319
18259 46651
98209 87849
80104 96178
69709 96178
68814 62370
97541 29548
73729 39436
72978 62854
58000 84748
63119 81674
40369 44413
90150 95171
52608 92615
71077 38291
31624 93044
38760 77212
91176 58936
63143 40887
91823 16660
34818 44413
59892 11840
17484 36429
30905 54199
32038 17281
36181 79577
61442 58936
52676 92055
84219 94756
66449 58936
22863 73911
23017 89669
79892 94756
82803 51397
83319 65016
30234 42381
73499 45602
46440 44587
95631 44461
81128 76437
74448 46651
14447 52123
32611 24331
57781 22177
64820 65775
68420 84266
47754 67988
34335 71149
29717 64219
89191 64088
82795 57333
16549 22484
82556 77514
99163 23617
18471 93880
56195 44413
89300 85985
46990 17063
81806 15499
38774 57907
75955 45074
56634 53662
14693 31131
53016 52394
73961 91020
62726 10077
73112 92012
95820 81782
89033 43179
18786 68422
37161 54313
65250 96178
37464 43676
86725 79195
85011 26319
67737 69409
98362 54308
34884 44086
32918 45910
44619 52487
80495 81128
55837 51397
60689 40038
44176 54195
39854 12679
13045 94621
40466 56205
97137 77870
19527 69865
88017 39180
31622 21522
79812 11165
55320 85476
99675 95829
10226 39512
58609 56835
92126 77212
85290 36723
79783 51199
93581 47590
90551 41001
40558 11266
39089 24707
32385 66290
16747 34912
20505 78110
70730 52705
48459 15541
66724 82666
26340 71149
11972 70352
85523 91638
76588 87532
15882 85803
84892 71074
17238 46651
72970 40619
63431 71149
90427 85393
57232 69012
64933 35643
56557 86545
89980 84682
39968 59407
22733 20816
64872 58936
58936 26119
75725 37733
28054 15499
72081 31664
25950 98957
35455 33324
61813 15499
41704 25493
79271 86494
23953 51653
46535 41106
63102 96797
30834 94721
64012 91509
68305 51458
94295 72833
40622 63182
91004 79623
64037 88188
11981 71149
94012 17064
78178 71465
61342 12008
46974 58318
57688 78663
64308 23440
44044 46651
36812 12527
46898 96178
37454 45987
96884 43676
52528 43676
56661 72213
91311 58936
94931 38918
87647 17588
57203 46651
21346 42051
61629 21742
93631 48556
81359 34333
66314 90524
13411 62864
15431 82666
62759 80050
84813 65775
71791 51397
83838 16358
90129 99706
98160 31885
33794 77212
71088 93454
85754 75521
85337 36180
54712 43676
43618 58936
25861 51397
59485 84700
20950 98209
59143 36723
19018 96178
99973 62268
35822 38826
31306 99043
92941 31131
92804 77212
62182 15499
93200 39106
79238 66201
56028 97137
26131 41721
55412 86233
40092 64847
89193 97749
84584 44413
58395 69675
70934 42497
27303 24086
41447 95939
15725 64142
69760 58936
81266 53614
95326 57234
89236 97137
45408 99439
65803 58102
23823 89352
82448 83319
12317 15499
63704 31229
31591 46651
60656 40668
84397 86629
15943 71628
69553 40846
67670 20397
29623 41118
45656 11366
57563 57937
35401 33787
29524 92772
10799 77212
20503 81128
31145 97137
24662 17588
88787 42052
77284 27806
81111 13760
96401 77212
45881 84748
14096 91121
31716 44830
96178 97137
11460 79257
22663 64393
17066 53398
48248 17099
47906 13089
60675 18687
14382 86545
62222 70385
99668 63170
16029 71024
20810 82413
11971 63222
70446 98209
95100 19344
81776 14882
56409 90152
78955 66877
15972 35794
82762 57101
40585 43676
82715 32513
13035 12929
41208 43676
75405 51397
52968 37848
89777 77408
47910 41390
17844 92716
78842 71149
96933 78110
84401 86308
22335 83319
38772 39043
10235 91837
64002 91515
97099 72526
19165 32320
94851 53321
11044 81516
30088 31131
92285 19663
90624 43676
54999 90850
56563 61111
93006 42621
77028 44413
63496 93231
59288 16304
19260 82666
65456 78110
76020 47590
71510 78110
38373 15499
95329 77350
81785 15499
73967 65024
55970 81128
75253 51397
67687 97112
26178 22355
31644 43676
85675 51397
98065 65775
47206 22445
68588 67760
81859 34895
81781 96369
12100 17237
76959 12327
62721 92743
47728 82465
80148 57620
36073 81128
77828 43217
60402 51397
20533 67838
67535 65775
86024 93819
45988 74424
79733 90048
36916 67049
91726 78110
89614 77956
91991 61361
48407 44413
41683 34105
61197 72068
23055 75738
76099 31131
34782 29960
79495 96116
56038 77059
75701 79362
90211 35325
91105 59877
26571 55619
70643 23825
96461 86872
97211 33461
83364 41646
37258 39006
76258 43478
77897 78110
90589 15499
53899 94756
59814 91161
99348 15499
45978 88916
21550 44413
28503 44413
70361 93856
38176 77212
27681 42058
34616 32695
63530 77048
93477 33487
38551 85570
30281 56360
85761 86914
54185 81927
34284 21499
90875 28296
50159 22467
73017 44413
70427 75581
13241 73319
43718 84796
58491 55625
61676 44413
59141 99602
68941 47529
99683 74769
11312 96178
12988 13264
58625 54979
38011 19401
31122 43676
72187 60980
83040 16660
35538 72268
26926 14779
20473 71077
65791 97137
90431 75263
44240 65302
68127 31131
88606 59555
82666 84748
63367 65186
66772 36723
34590 91525
10183 17103
54013 72306
88038 86803
85275 51830
29557 85444
91185 61242
91026 98854
47846 50418
58439 13040
17800 79381
50614 23120
20747 99140
50825 19555
92963 46049
86545 64971
32892 59315
41415 49777
52966 15575
94229 46570
24717 15057
90893 73249
91788 31131
20609 58936
83204 92333
25338 93231
51397 58936
93636 88577
37898 88541
93231 74087
74840 87061
50972 56483
24441 62016
45678 16300
74739 43676
40860 67689
30257 10504
62026 74316
55422 82666
78640 31557
34047 41209
72688 25384
71214 58936
29061 25473
81733 25169
30705 54797
45282 97408
70052 68168
85605 83319
67848 15499
29579 11173
21750 37393
44657 35203
14712 43246
66229 51397
69289 43240
74346 78110
63305 48302
35229 43676
99323 96098
17588 81128
17774 30312
89787 71712
41204 73470
62131 77212
43849 47590
39529 83224
40983 34788
24893 43702
45386 94505
56318 41455
68530 55855
25873 42309
94040 79923
36153 86545
88010 54142
79130 78110
71226 10679
29354 70963
87872 74238
27909 65520
99432 27102
10868 48012
26181 51794
11684 81810
93130 78110
63372 55575
78345 69499
75999 96178
87508 35360
79511 85378
51818 64013
79942 38589
84855 88979
87913 96178
47101 12601
50727 16660
20430 78110
74052 10988
63972 58139
32279 32116
83960 82666
57325 44413
91674 17561
78735 86390
72213 15499
65775 74982
78046 31131
92992 19498
61673 58879
90012 91669
73742 23296
64602 10252
34277 19600
38771 62538
83906 75263
54798 39169
48992 86743
39017 27160
17400 97272
48587 46651
37271 78110
59764 98477
63559 55088
21472 92869
70180 11171