about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2022-12-02 16:33:53 +0100
committerLeah Neukirchen <leah@vuxu.org>2022-12-02 16:34:48 +0100
commit3569846dad2bae95412762363ff9301f0540ab62 (patch)
treedecf8a3acda957acfb51198da576be834287ae27
parent37c6618115dc8d028b0e62dc11149973d733ef7c (diff)
downloadadventofcode2022-3569846dad2bae95412762363ff9301f0540ab62.tar.gz
adventofcode2022-3569846dad2bae95412762363ff9301f0540ab62.tar.xz
adventofcode2022-3569846dad2bae95412762363ff9301f0540ab62.zip
day01
-rwxr-xr-xday012248
-rw-r--r--day01.k1
-rw-r--r--day01.mew9
-rw-r--r--day01.rkt10
-rw-r--r--day01.zig33
5 files changed, 2301 insertions, 0 deletions
diff --git a/day01 b/day01
new file mode 100755
index 0000000..0b42199
--- /dev/null
+++ b/day01
@@ -0,0 +1,2248 @@
+5794
+5879
+4899
+6777
+5845
+1303
+6761
+1814
+6605
+4715
+2264
+2789
+
+4684
+6694
+5840
+2705
+7269
+2127
+4265
+3944
+1134
+2623
+5617
+7191
+
+5293
+6742
+4208
+3218
+5967
+1617
+5433
+2938
+6337
+6694
+1597
+5727
+1734
+
+1745
+15953
+3781
+
+18680
+3460
+21833
+
+7434
+7346
+1116
+4079
+5013
+4597
+3730
+3660
+1595
+4501
+5908
+4847
+
+4357
+5306
+4632
+4808
+7222
+2487
+3772
+4656
+2316
+1876
+3029
+6280
+
+5298
+15504
+5338
+15522
+7264
+
+4253
+6912
+8254
+8559
+6364
+
+9485
+12425
+10047
+2934
+6686
+11651
+
+7701
+4660
+3241
+10868
+7111
+7973
+6048
+
+1549
+4669
+4199
+6211
+5297
+5535
+7972
+1615
+8711
+3803
+
+2562
+3344
+6535
+4892
+5025
+1972
+1734
+2671
+3380
+3682
+3990
+3602
+6649
+
+1641
+3404
+4608
+10732
+2157
+3435
+4416
+6776
+
+5487
+8946
+7325
+9531
+4851
+4976
+9406
+4848
+9058
+
+1883
+7711
+9300
+5638
+8096
+2885
+4520
+3024
+
+6044
+3910
+5663
+5250
+13826
+1469
+
+56667
+
+2437
+4404
+6875
+4034
+3906
+7256
+1054
+1436
+7231
+3858
+6880
+6449
+
+4737
+1421
+3682
+1389
+4492
+4821
+3875
+2907
+4357
+3759
+3224
+5005
+5712
+3098
+5864
+
+2407
+4258
+7987
+2085
+1802
+2838
+5100
+5815
+4602
+1617
+8058
+
+13874
+16855
+12120
+12266
+
+16448
+
+1693
+5327
+1443
+3932
+4648
+2142
+6757
+5190
+2704
+4759
+2954
+4681
+2702
+
+1525
+4403
+6818
+6125
+2535
+3955
+1859
+2265
+5915
+3137
+1961
+6610
+2133
+
+8152
+10276
+10852
+10244
+1459
+8134
+6686
+
+1807
+3470
+3171
+8803
+6592
+6954
+3109
+3305
+2393
+8381
+
+1688
+4232
+5952
+4896
+5610
+3247
+3249
+2628
+3325
+1628
+4876
+3829
+4656
+2871
+3571
+
+4133
+1826
+8072
+9227
+
+5784
+6032
+1491
+3691
+1206
+4398
+4794
+5852
+3215
+1779
+2362
+2175
+3580
+1929
+5469
+
+7469
+4215
+7364
+4310
+5277
+4668
+1030
+6087
+7521
+2959
+2878
+
+1672
+6020
+6047
+3580
+5766
+5859
+3605
+5630
+6545
+3512
+2841
+7216
+
+4731
+9911
+11359
+13234
+11676
+8120
+
+6618
+24252
+
+1530
+5230
+7254
+8009
+9010
+9620
+5119
+4598
+9687
+
+5159
+5686
+1788
+5088
+1938
+4131
+4612
+6038
+4220
+4521
+1550
+4918
+2501
+2504
+3077
+
+4439
+5145
+10897
+5844
+3709
+4495
+
+4139
+5134
+5328
+5474
+6064
+2589
+2809
+1653
+1494
+3337
+5593
+2546
+2905
+1093
+
+6920
+4134
+3878
+2094
+2573
+3692
+1148
+2302
+5412
+3658
+3024
+4709
+3181
+
+24826
+21716
+12659
+
+5770
+7224
+5016
+6369
+5626
+2550
+7297
+4664
+4919
+2545
+6251
+3846
+
+7482
+7360
+8577
+5502
+2145
+3763
+6408
+4769
+6610
+
+5739
+2098
+2385
+5588
+2409
+3387
+3623
+1372
+4403
+6322
+6026
+4003
+2653
+1568
+
+66601
+
+3188
+13831
+10244
+1496
+12540
+11285
+
+5301
+17714
+18376
+
+4464
+4720
+4548
+1519
+1955
+1675
+3495
+6326
+3434
+2450
+1450
+6297
+2557
+
+5980
+13288
+1545
+12018
+7961
+6012
+
+7880
+4981
+9901
+7816
+3172
+9490
+10029
+8410
+
+12095
+10481
+10933
+4235
+1106
+9284
+3133
+
+7579
+6723
+4875
+6147
+2017
+2566
+7641
+5163
+5477
+1134
+1661
+
+7135
+1013
+3218
+2549
+7639
+7299
+3924
+1942
+3199
+7851
+1217
+
+2512
+4356
+2482
+1178
+4521
+3400
+4333
+1726
+6308
+6277
+1143
+4962
+2837
+6507
+
+1305
+6109
+3115
+1205
+2172
+3416
+5558
+5227
+6017
+4503
+3088
+1560
+5945
+3679
+5448
+
+2977
+9069
+4530
+12642
+1821
+
+4452
+19214
+14527
+19883
+
+6361
+5748
+5999
+2580
+6697
+5402
+2422
+3183
+5503
+5993
+2567
+4208
+2004
+
+22562
+
+2656
+1112
+5664
+5517
+1301
+2184
+1646
+2851
+4817
+5350
+4074
+2133
+6169
+
+3933
+8419
+7256
+6770
+3469
+1438
+11003
+
+1456
+5635
+1933
+1196
+6686
+3245
+2141
+6819
+5743
+3614
+2485
+6829
+5244
+
+10649
+30106
+
+4766
+4779
+4134
+3761
+3088
+5477
+1892
+3585
+5867
+2566
+1960
+1922
+1577
+2091
+
+19270
+29017
+
+3108
+10282
+4623
+10377
+3570
+6322
+6958
+7057
+
+35355
+25911
+
+31705
+
+12443
+2062
+1464
+8206
+3083
+13052
+
+19188
+16088
+3927
+11479
+
+2421
+5453
+2946
+3118
+2456
+5152
+5604
+2909
+2020
+5040
+7498
+
+10666
+5120
+10166
+6616
+2151
+6102
+
+4463
+32308
+
+6447
+6712
+1183
+4264
+1824
+1533
+1403
+7320
+2204
+1865
+1887
+
+13860
+5324
+10272
+10859
+1615
+1345
+
+21147
+20301
+24255
+
+57301
+
+16407
+9592
+3822
+11186
+9812
+
+2436
+9609
+5163
+6263
+4182
+10301
+
+22997
+3077
+15477
+
+2379
+5970
+5429
+1283
+4580
+4126
+2592
+6285
+2669
+1612
+6320
+5087
+2941
+6433
+
+33200
+
+6861
+9236
+1301
+12712
+14165
+
+8933
+5205
+11578
+1523
+10091
+7515
+
+2376
+11526
+15587
+13513
+12834
+
+4796
+2358
+6422
+4603
+6920
+3971
+1899
+7821
+3885
+1718
+8039
+
+16063
+
+4537
+6714
+1857
+5871
+6182
+9996
+4217
+6483
+
+5059
+4145
+3818
+3898
+3896
+3085
+4477
+1476
+6014
+3545
+5200
+5363
+5866
+3218
+2466
+
+5648
+4125
+4125
+4912
+3651
+6606
+2230
+6221
+6480
+7240
+7302
+5600
+
+2273
+3832
+3343
+2207
+1359
+5842
+5131
+4928
+3466
+6427
+3191
+6623
+1885
+
+1158
+1687
+6243
+8632
+2634
+9070
+4482
+3477
+8077
+
+1593
+1220
+2601
+3283
+5779
+5161
+6210
+4752
+1137
+7443
+3161
+5268
+
+8847
+3825
+5688
+6218
+4998
+10218
+9792
+
+3549
+1562
+11437
+6479
+4094
+1537
+11888
+
+7069
+4924
+7235
+7244
+4942
+6144
+5175
+1472
+5395
+1776
+6968
+6417
+
+5962
+5599
+11740
+3693
+11159
+9934
+10682
+
+6246
+23393
+3247
+
+64480
+
+28558
+23959
+
+4732
+4052
+4660
+2032
+2537
+6107
+4976
+1510
+2342
+2037
+1961
+2120
+3331
+5388
+2840
+
+4738
+4435
+9965
+10755
+9136
+2779
+3494
+7568
+
+11962
+12956
+12901
+1053
+15933
+
+8344
+4378
+4982
+8580
+5246
+4652
+1197
+1209
+4898
+2905
+
+7828
+2797
+6653
+3897
+11216
+4896
+5650
+
+5060
+5783
+1814
+4749
+1884
+2609
+6175
+5615
+6674
+4203
+6060
+1345
+5485
+
+6323
+5968
+3726
+3863
+2986
+2218
+2389
+6289
+4369
+2472
+5961
+4442
+4902
+2875
+
+5480
+2082
+1907
+3069
+6594
+6621
+6692
+3164
+4281
+5764
+2844
+5682
+
+4652
+3059
+1388
+7547
+7804
+5770
+4792
+4181
+5903
+6609
+4468
+
+5470
+1039
+13220
+6244
+12612
+6790
+
+3762
+1435
+6236
+5328
+5577
+4420
+5485
+6727
+3656
+3583
+1089
+3468
+4795
+
+19632
+
+10092
+3698
+4674
+10270
+4097
+8378
+9019
+2101
+
+4001
+7242
+7841
+7903
+8072
+2704
+3750
+1335
+9390
+
+5466
+8448
+4827
+3673
+2489
+7995
+3362
+6592
+1453
+2353
+
+10382
+15140
+10465
+7746
+
+1061
+3623
+9453
+8621
+10641
+8431
+9650
+8132
+
+13431
+4971
+
+10121
+9985
+8609
+5410
+9424
+1115
+8339
+1319
+
+1991
+5002
+6099
+3845
+5373
+5072
+6950
+7134
+4229
+6917
+2796
+3188
+
+6805
+2159
+1436
+6231
+1280
+5023
+3806
+3864
+1801
+5281
+3623
+3162
+6226
+
+14847
+1007
+1553
+15502
+5373
+
+6737
+6519
+1991
+2974
+5339
+1614
+4366
+6332
+4183
+5651
+4116
+4057
+6751
+
+6117
+5537
+4339
+5262
+5216
+3861
+1269
+6111
+4720
+3285
+3533
+4639
+1602
+2301
+1684
+
+13962
+4475
+7421
+5710
+
+1842
+13774
+7371
+5183
+
+15576
+10011
+21697
+
+1703
+6327
+1474
+2647
+2047
+1994
+5821
+5290
+5378
+3163
+6715
+1462
+5716
+
+6500
+4135
+15482
+16325
+7377
+
+4911
+3898
+7024
+4504
+8418
+3523
+7429
+1875
+1080
+3896
+
+2364
+3213
+7568
+3554
+7065
+2300
+6145
+3674
+2579
+
+6046
+2600
+3260
+1078
+4308
+5966
+4546
+2863
+4482
+5451
+5083
+1346
+6098
+5558
+3886
+
+7594
+4850
+7782
+4683
+3996
+5939
+5193
+1411
+5856
+6158
+4151
+
+9371
+7675
+4379
+4898
+6149
+7880
+4419
+3487
+3022
+
+5027
+10030
+6295
+6916
+6102
+11647
+
+2305
+7373
+2844
+5653
+2048
+2659
+7491
+
+6571
+6102
+1435
+1680
+7241
+2643
+5597
+2855
+6189
+4513
+1702
+5352
+
+3268
+4805
+3361
+4880
+2674
+7713
+7487
+8168
+1734
+7110
+
+8153
+2756
+3447
+6789
+7761
+4724
+7481
+1835
+7373
+1573
+
+6151
+6557
+6501
+1718
+4891
+4249
+1061
+2182
+6793
+5499
+5558
+5594
+6515
+
+9371
+1943
+5818
+4018
+2133
+5379
+1396
+4527
+4334
+
+27222
+
+7807
+4918
+13254
+5437
+1057
+11915
+
+50918
+
+17389
+8573
+6769
+3223
+
+6566
+7265
+7661
+2280
+2889
+6519
+7076
+5678
+4216
+3959
+5216
+
+14059
+21822
+
+16926
+5947
+15846
+
+1421
+7117
+3267
+5141
+3504
+6315
+6485
+5849
+6779
+7299
+7087
+6235
+
+5454
+6529
+6087
+8667
+7271
+6205
+3395
+7376
+4309
+
+13097
+10266
+10587
+8406
+5973
+
+31623
+19233
+
+48107
+
+4736
+1411
+3464
+2467
+3720
+5645
+6533
+1354
+4376
+5188
+1840
+1109
+2649
+
+4624
+3867
+4932
+4705
+4752
+6636
+6935
+1763
+6683
+3182
+1279
+
+4190
+1834
+4102
+2157
+1314
+4346
+4749
+4598
+2664
+5343
+1153
+2883
+2176
+2972
+5991
+
+41319
+
+10951
+3590
+3511
+10163
+
+5379
+5046
+6185
+3099
+1479
+5463
+2003
+5895
+7133
+2941
+2377
+5604
+
+1988
+3312
+4445
+6210
+4515
+1936
+1028
+3815
+7004
+6010
+3296
+6532
+
+10653
+13005
+6246
+5002
+11939
+2610
+
+2542
+1469
+4189
+5227
+2742
+3595
+1098
+1684
+1866
+2099
+3674
+3253
+1097
+4537
+5492
+
+2503
+2386
+6625
+6206
+3044
+6910
+6005
+3726
+6556
+2116
+3373
+6039
+
+5253
+2117
+7428
+2920
+3028
+6779
+5893
+2150
+5131
+3665
+4618
+6213
+
+23441
+14459
+
+3721
+7052
+5815
+5578
+7148
+2382
+4461
+5179
+3268
+7011
+4608
+5815
+
+1426
+3853
+2734
+2087
+3561
+5430
+3453
+2662
+3850
+4482
+5771
+3764
+3698
+4567
+4285
+
+6201
+23437
+21958
+
+45685
+
+1018
+4012
+2564
+1444
+6782
+2350
+5347
+2245
+6350
+1964
+6361
+3612
+
+25442
+30894
+
+7174
+6713
+7375
+1569
+6526
+5476
+6307
+1437
+3142
+1224
+2845
+4229
+
+17039
+22539
+14263
+
+5261
+6706
+18415
+
+9354
+
+2060
+5488
+5252
+4729
+1494
+1468
+1770
+6272
+4686
+1550
+2431
+3345
+
+4333
+2475
+5919
+3201
+4253
+5595
+3763
+3299
+4557
+2466
+3908
+3506
+3666
+6102
+3271
+
+2526
+6329
+4580
+6450
+3137
+3627
+2978
+1763
+3776
+4012
+3483
+6696
+6715
+
+20837
+
+6938
+4996
+2997
+1959
+4351
+2683
+6707
+6776
+7725
+
+7454
+5422
+1719
+3273
+1263
+5817
+7068
+4047
+6591
+5467
+
+25504
+13811
+1728
+
+7332
+7843
+4698
+6364
+4560
+4973
+1579
+7189
+7706
+3898
+7777
+
+2498
+3156
+2239
+5544
+5429
+5064
+3026
+3912
+5425
+2800
+2690
+3519
+1680
+4607
+5627
+
+2848
+4523
+3083
+4742
+6058
+7632
+5695
+5896
+4150
+
+7436
+7171
+6346
+6022
+3973
+7600
+6350
+2170
+2330
+2961
+2807
+
+11194
+5672
+8861
+3820
+2318
+3608
+2535
+
+4356
+1035
+2326
+2168
+4696
+3235
+3912
+3714
+2892
+1505
+2985
+3962
+5379
+5869
+2468
+
+6176
+19825
+12752
+1789
+
+6406
+4926
+2937
+5045
+6899
+6051
+6029
+4221
+6758
+3748
+2254
+5546
+6196
+
+4197
+6095
+4615
+12118
+4239
+11880
+
+5962
+6436
+2413
+1834
+3428
+2752
+3426
+2443
+2117
+4483
+3577
+2703
+4323
+2041
+
+4511
+11096
+3091
+5826
+6323
+11881
+8688
+
+3772
+5248
+3519
+1105
+5984
+1610
+5661
+1737
+2428
+2766
+1534
+4456
+1735
+1924
+4874
+
+10428
+10725
+4803
+6867
+8574
+8520
+5612
+5855
+
+28835
+18115
+
+1549
+8536
+5806
+2597
+3777
+7724
+5803
+1500
+3754
+
+17046
+19405
+3079
+
+18363
+14060
+7675
+2603
+
+2739
+2195
+1068
+4517
+5300
+4683
+6321
+6529
+3037
+
+12958
+2464
+10649
+10001
+5557
+13397
+
+6673
+3375
+9252
+9005
+3761
+9191
+7424
+7279
+8629
+
+26298
+8367
+
+3330
+4691
+6352
+7291
+2422
+1107
+3173
+5061
+4711
+4706
+4300
+3218
+
+26181
+
+2972
+2339
+9322
+1076
+2682
+4852
+7622
+
+5641
+19288
+2918
+6314
+
+3951
+2584
+5634
+1905
+5291
+1157
+3181
+1818
+3722
+4802
+4111
+2522
+3001
+4358
+2120
+
+1077
+5533
+6400
+5381
+1006
+3449
+3155
+5997
+5918
+5556
+3050
+5280
+4295
+3936
+
+9584
+8280
+6414
+2734
+7417
+4789
+6142
+8495
+8052
+
+1327
+2087
+4527
+1098
+7191
+5222
+2375
+4037
+3780
+5426
+7144
+3261
+
+37178
+
+8043
+5217
+3272
+7191
+7990
+4697
+5140
+4541
+1169
+6205
+
+6475
+12269
+8879
+18444
+
+3075
+6082
+6593
+3094
+7802
+1862
+1994
+
+10270
+7508
+14080
+5226
+11093
+
+4093
+1046
+3565
+6243
+3054
+2416
+5708
+4547
+4317
+4341
+5802
+1029
+4809
+
+12551
+
+1105
+2947
+1508
+3953
+5390
+5139
+2045
+2040
+2028
+3621
+3594
+5765
+
+4868
+5464
+4166
+1186
+1258
+5494
+1170
+2962
+4244
+2177
+5152
+4306
+5704
+2623
+5144
+
+3933
+2777
+4077
+1728
+2543
+5292
+5055
+3498
+4288
+1910
+3631
+3266
+1959
+3334
+2893
+
+12920
+36997
+
+15084
+8596
+1619
+10189
+3402
+
+5283
+2209
+4246
+1049
+7820
+1955
+1352
+6554
+7904
+6596
+3101
+
+1732
+4551
+2842
+3485
+7432
+3587
+6443
+2499
+6964
+2325
+2001
+3936
+
+2065
+11158
+3711
+7948
+1256
+
+4646
+1220
+2075
+2517
+1612
+5728
+7408
+4255
+6139
+7265
+2205
+
+20078
+12781
+15413
+
+32493
+
+12425
+5567
+1944
+
+20490
+6224
+6355
+
+2558
+3063
+4979
+4005
+4809
+1217
+6848
+6919
+6050
+1764
+1266
+1167
+1613
+
+17719
+26741
+
+5544
+13291
+2641
+12677
+14592
+
+12413
+7876
+16123
+
+8473
+9063
+2322
+6576
+12504
+
+5141
+8613
+10753
+9990
+2696
+8297
+10125
+
+8306
+6741
+8581
+6900
+4450
+1230
+6466
+1410
+6566
+
+1735
+6150
+4168
+8651
+9338
+6301
+2437
+7349
+7270
+
+5556
+5479
+4120
+2487
+4016
+5148
+4606
+3867
+5898
+5437
+3614
+2078
+2827
+5082
+4730
+
+5361
+2506
+6122
+8706
+4328
+3030
+5801
+5956
+6575
+3166
+
+5822
+2501
+3165
+5617
+2996
+4302
+4263
+5136
+6668
+3181
+1277
+1575
+
+6963
+5403
+5751
+4803
+12025
+1235
+8890
+
+2986
+3255
+5464
+3489
+3015
+6330
+5748
+2278
+5330
+1435
+5005
+3697
+1570
+6487
+
+2381
+4178
+7190
+1615
+4813
+7485
+5712
+3673
+6748
+6428
+
+6701
+15260
+16317
+3748
+
+5146
+3783
+9166
+13869
+6908
+
+7106
+9860
+2413
+6842
+8605
+11235
+4771
+
+6745
+6142
+6972
+3538
+2115
+4595
+9610
+
+7403
+7136
+2601
+6422
+2010
+2244
+8805
diff --git a/day01.k b/day01.k
new file mode 100644
index 0000000..454dea7
--- /dev/null
+++ b/day01.k
@@ -0,0 +1 @@
++/'1 3#\:a@>a:+/'{0^(&^x)_x}`I$'0:"day01" / 67016 200116
diff --git a/day01.mew b/day01.mew
new file mode 100644
index 0000000..4dffbfa
--- /dev/null
+++ b/day01.mew
@@ -0,0 +1,9 @@
+(op=> (lines "day01")
+      (gmap string->number _)
+      (gsplit-on not _)
+      (gmap (inject +) _)
+      (into #() _)
+      (sort! _ >)
+      ,(juxt (fun=> (get _ 0))
+             (fun=> gen (gtake _ 3) ,(inject +)))
+      prn)
diff --git a/day01.rkt b/day01.rkt
new file mode 100644
index 0000000..0576f02
--- /dev/null
+++ b/day01.rkt
@@ -0,0 +1,10 @@
+#lang racket
+
+(define ordered-food
+  (sort (for/list ([para (string-split (file->string "day01") "\n\n")])
+          (for/sum ([line (string-split para "\n")])
+            (string->number line)))
+        >))
+
+(first ordered-food)                    ; 67016
+(apply + (take ordered-food 3))         ; 200116
diff --git a/day01.zig b/day01.zig
new file mode 100644
index 0000000..a12204c
--- /dev/null
+++ b/day01.zig
@@ -0,0 +1,33 @@
+const std = @import("std");
+const data = @embedFile("day01");
+
+var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{}){};
+const gpa = general_purpose_allocator.allocator();
+
+fn moreThan(context: void, a: i32, b: i32) std.math.Order {
+    _ = context;
+    return std.math.order(b, a);
+}
+
+pub fn main() !void {
+    var pq = std.PriorityQueue(i32, void, moreThan).init(gpa, {});
+
+    var lines = std.mem.split(u8, data, "\n");
+
+    var food: i32 = 0;
+    while (lines.next()) |line| {
+        var x: i32 = std.fmt.parseInt(i32, line, 10) catch {
+            try pq.add(food);
+            food = 0;
+            continue;
+        };
+        food += x;
+    }
+
+    var max3food: i32 = 0;
+    max3food += pq.remove();
+    std.debug.print("{}\n", .{max3food});
+    max3food += pq.remove();
+    max3food += pq.remove();
+    std.debug.print("{}\n", .{max3food});
+}