my solutions for advent of code 2022
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.

2238 lines
10 KiB

3120
4127
1830
1283
5021
3569
3164
2396
4367
2821
6118
4450
1300
3648
1933
4841
6135
5806
8128
4069
6511
3601
4786
2739
2663
2678
1627
7779
7845
9191
9656
1372
11432
14854
15168
3789
47972
5109
4118
3399
6468
6900
4742
4196
6590
7327
6828
2253
7055
1698
5601
1983
6931
6010
4091
6881
2372
6531
4825
3918
8481
8321
1703
7251
2360
10719
5468
6503
12835
11545
3650
11065
6817
6491
4285
4831
2392
8103
8243
8753
3725
1857
1969
4278
4922
2667
2613
4720
4729
5696
3067
2409
2223
5378
3349
3952
4250
2250
5073
5893
3740
2037
4679
1331
3881
5751
3255
3155
4582
1844
3164
5935
4702
1774
2285
4800
3721
5674
3830
1556
4464
2235
1241
1132
6506
6818
2822
6006
5073
2663
4829
5705
2684
2043
7070
3439
2189
3869
4747
2191
6208
3109
3615
8081
3981
7432
1515
3560
3750
4290
5798
5477
2027
1826
6339
6664
2071
5611
4009
2165
4424
3220
3006
5249
1427
4691
2417
1468
2435
2430
4560
1767
1661
5351
3480
9752
11520
7189
11440
7516
6962
6318
6796
7039
6509
3035
4551
6494
4699
6092
7734
5614
7858
1785
5830
2645
4232
7573
6542
4971
5849
5288
2492
4213
3903
6472
3900
3325
5947
4029
2288
3069
3046
2633
5082
1525
9159
10607
13000
4914
2232
4661
3575
3938
5334
3065
1005
2386
3748
2592
2502
4334
20639
30326
7479
6661
2626
7142
4469
6912
1665
7263
3952
7861
2736
2311
6735
3624
5175
6522
1370
2008
3647
6857
3264
2862
4427
6413
2325
7237
1523
2625
1816
1628
8418
5434
6124
3137
2878
4949
2218
5941
3051
4939
7147
5603
5609
1478
5494
7949
3597
1882
2633
2471
6944
3760
3944
2543
6706
6896
6667
1352
2139
4534
7162
6233
3012
4319
4610
2912
4899
5222
5082
3670
6363
12651
9158
34492
15407
9599
18253
12367
3870
12469
20949
5006
12672
2312
5001
1740
12492
6497
5827
5872
3269
5344
2235
6482
1593
2136
5270
1039
6375
8497
3530
7100
6449
9897
9576
5508
1430
8102
3020
4959
6561
3947
3397
8462
1859
9481
11044
1287
12137
6366
1835
10500
6763
2213
4026
3648
7894
7334
1905
1484
2804
4801
3715
3925
10274
6920
1395
5990
2321
7620
1539
2537
6440
1734
1023
1523
1111
2041
5669
6787
7176
7221
2735
1989
1682
3892
3203
3088
4199
2010
2167
2106
3411
2219
3033
4214
2096
3487
5061
1978
1889
4055
2352
4377
3200
3479
1656
4387
3323
1550
3072
5438
4884
1663
1029
2037
5546
4006
6645
6535
1348
5422
2353
6384
1405
5372
4213
1216
4205
3752
5457
4208
3019
5619
4602
3656
3403
5994
2017
15645
11147
10332
9869
6370
13474
2178
7461
18692
10232
4148
2647
66855
4985
9276
9301
4837
8248
8191
3237
4567
2816
55407
6350
5061
3654
4514
6197
3986
3601
4421
6166
3973
2375
1214
5203
5738
21949
20967
3232
6276
3937
5900
2079
6475
2119
5981
2392
2731
2076
4051
2328
3004
3329
1709
4125
4397
1742
5775
3256
2705
1018
1169
2266
3767
4683
6014
2537
2800
1115
3066
2741
4514
3184
2034
5565
2245
5884
3200
5808
4964
1710
5711
2095
4311
3685
3035
1710
4369
2817
5836
3210
1356
4734
10244
9347
8073
8412
9912
8438
9189
4677
4477
5287
6898
7699
4302
6294
7022
8700
6850
8672
7889
6263
8775
5103
6364
6343
2250
5207
3257
3149
17552
10109
7831
4342
1258
11359
12821
3614
6672
3389
10580
11163
11630
2352
11490
6340
5541
7827
4328
2481
2375
8011
4105
2983
2734
2851
1877
22845
27767
32945
7892
13869
8411
12957
1888
2491
6461
4240
6319
4607
1596
7757
3117
1662
2630
2818
5349
3397
2467
2993
5613
1894
5570
4646
2143
5724
6325
6070
5724
2587
2366
2066
6543
10590
9360
7985
7172
9598
9400
6918
9103
5804
2533
4371
2137
4962
4289
3282
4165
5751
1374
2383
2506
5695
3244
7079
6767
3159
1301
10045
10545
5331
2043
4977
4624
5544
3247
1114
1463
4170
2919
2311
5368
3044
1942
1391
2344
2101
4414
4349
4279
3368
3300
5830
1944
3557
6110
3964
2169
4995
5143
9050
5601
3903
3468
4814
3322
8735
3494
1879
3757
3842
1795
1158
7008
6778
7222
6034
6320
6633
7869
3994
7917
9658
9222
5030
2083
5702
2086
3860
1142
5361
3812
2735
2673
2015
1615
4579
5090
5747
1426
2139
4786
3362
6320
2031
7282
5106
3031
1295
6365
3799
3081
6241
1998
8620
5326
8573
5232
8508
5911
7057
1924
2393
8446
3384
5126
3747
5523
2345
3816
3246
5073
5778
1747
5777
5864
5261
5132
3841
11806
11670
13208
8744
5434
4319
10397
4910
16337
16444
6959
18421
7156
7004
2915
6754
5386
6922
7586
7935
2972
6049
7286
3422
2031
6399
7510
6281
5004
2836
4253
2891
2127
4416
1465
1106
6829
4371
2090
4556
2544
3936
6469
1781
6885
1049
8295
9647
3617
4504
3286
9503
17536
2797
4305
9965
34414
28940
25883
25422
5584
18095
18098
16278
3140
3833
3988
6018
4838
3941
4805
5494
2431
5925
2085
5465
4449
1745
1687
1249
9174
11930
5039
4455
10089
5806
7405
1383
5761
6448
7787
1568
4287
3567
5213
1026
4037
15317
19135
2237
1097
9281
3625
10282
2191
7404
5671
9749
5436
5129
1903
2407
3301
3048
4309
1119
3447
6443
3705
2274
5059
4889
5281
8052
5260
3031
4004
5858
5628
1547
3900
4101
6481
21678
7776
3296
3667
2475
6045
1103
3614
6180
8898
1775
3177
5633
2228
3745
1418
5908
5257
1145
2975
4887
4950
3936
2556
3659
5236
2034
6929
8174
10306
8178
2452
10055
10123
2581
5182
3548
3783
2933
5747
5932
2296
4418
6076
1532
4055
3802
2080
3476
3467
18594
8059
11553
3109
1978
1921
2031
3589
4463
6735
3305
7795
5659
5990
3344
6281
10312
4107
1507
2358
9048
1620
9125
14678
50634
10561
4145
1105
5400
3889
5475
4716
3577
2445
2775
6190
3839
1909
2971
3239
3157
1457
2411
2437
1383
4673
4692
5324
2086
4390
6159
1901
3446
2139
3226
3313
2041
5980
1880
5717
2596
3221
2366
1878
2706
3439
3657
4891
5871
4063
3575
4158
6690
2276
3013
4190
6737
7188
3900
6369
3554
1762
6451
4430
6042
4443
3249
4430
1693
1379
4927
3209
2244
4654
6231
3907
2329
6999
3963
5830
2714
6924
6928
2620
10463
4092
4551
9847
5709
7949
4759
10519
3485
2738
5282
5662
3048
5871
5223
5294
2208
4959
4648
3344
5938
2695
5668
2447
9093
6948
9235
9037
1295
1117
6304
7714
2764
5092
3646
1528
4235
3410
5870
6712
6243
4167
5546
5677
4051
4126
1518
3038
5074
2996
4713
5615
3713
5353
1705
7258
2081
4789
1086
3383
1063
1272
7377
1083
2340
1857
6148
8793
15899
16615
1016
1652
10136
4173
10159
7453
8870
7846
3170
6604
4405
7236
5404
3844
4443
6335
5523
7522
4969
3700
5325
2257
5105
4279
3467
5370
2312
4560
5890
2856
5023
2711
6053
1527
6966
6543
2763
3654
6555
4079
3391
1850
5381
1137
7077
1526
43329
5367
3412
3096
3796
2692
5915
5300
1995
2768
6016
3345
5212
3014
1795
5710
1287
3572
3548
3941
6918
1907
4922
6715
5074
6559
6356
1331
4828
1361
3299
4490
6031
2418
2283
6857
4058
6626
3136
6850
1425
3941
53967
58538
7984
2826
7426
3537
2456
7891
25266
4701
14944
3558
9316
10321
4597
4734
7240
4556
1901
2009
6461
2494
3910
2772
3528
5806
1551
10440
4519
4482
7547
3291
1752
7160
6988
2307
7645
2942
2957
8326
5863
8334
5512
6792
9597
12957
2425
9649
3041
8391
5211
6638
3594
7878
6074
5116
2396
1394
8778
8682
5906
4944
4143
1250
7992
7520
7240
1872
8574
9482
7326
10291
3034
2239
4823
4580
6076
2542
4594
2248
2461
2693
3203
6884
4034
6445
6790
8420
2488
6755
15375
5449
2644
2023
8574
10409
4154
10484
9064
9238
5727
6658
6015
1146
5883
16027
11778
4640
15162
4828
3197
7744
1794
5587
4922
3452
2913
29520
6131
3539
2434
6159
1779
2633
1647
6215
1171
1833
6559
4319
9549
2983
1479
3661
6460
9129
7436
3481
21517
2874
6860
6916
7812
1637
5712
8484
7285
3058
2628
2570
1659
3146
1841
5757
3450
1746
1008
5645
1850
6996
1300
1900
2701
9850
2463
6510
16313
7957
9451
13258
5356
13211
11193
2334
19295
10196
1819
5791
5682
5106
3888
3749
7422
9829
10153
3769
5615
1416
3701
3686
3348
3161
3176
2473
2517
2736
1782
5781
3103
5582
10766
8454
1262
10836
8468
7489
2256
3382
4322
2129
1781
2384
6900
3331
4913
3546
6154
4587
4720
6739
2343
6147
3297
5561
6439
5630
1130
5046
5767
5422
5927
1029
5227
3286
5217
1993
2879
4557
4175
2828
3793
2557
2892
7300
3365
3756
7648
2537
4011
7480
6709
4010
1344
6729
1596
2230
7942
10493
3295
10888
3992
3165
7898
3801
3385
4875
2519
4350
2260
3989
5977
3755
7303
1874
3718
5448
2208
3884
7157
4885
5042
5099
2005
3179
3429
4146
2125
4488
6368
3732
2031
6317
5670
4167
4032
7665
1611
1561
8937
4986
2676
7514
3211
5627
3639
1219
4932
3339
4567
2280
1420
1215
4449
3371
1656
5555
3381
2957
5513
11756
4472
4661
11770
2478
9185
5443
6055
4317
2557
2921
3833
7765
1688
4767
7302
11400
7038
11848
5810
4024
8708
9815
5844
8109
9288
5487
4463
4964
8004
3623
5724
55875
7214
6283
6962
4385
8165
9330
4506
6456
3249
24141
17839
2814
3522
3834
5491
1959
1653
4548
3150
1922
4649
6544
5722
6447
8079
2292
1218
1530
6004
6519
8616
4716
5361
3212
1483
6032
1168
4369
2808
5251
5770
3025
6059
3971
5611
6900
6349
6359
3559
6089
2025
5909
2623
4366
3829
2205
6696
3958
6196
2973
3056
2921
4351
3940
2188
4689
3217
1877
4609
6174
1043
8572
10692
4142
3022
3764
10663
1347
6173
1618
9886
7620
9968
1839
3526
3621
8521
8813
11132
15555
5470
1312
4025
7513
2082
2426
3542
7940
4392
2387
2528
1031
4693
12069
2956
3424
9052
10365
7715
6014
4190
1926
1571
4337
3544
5594
4324
2836
2075
1644
3130
4123
2728
5682
11910
3177
6967
10603
5430
2105
10866
6804
6925
7798
10432
8296
5642
8469
5896
5141
6586
5742
9623
8271
21333
13036
11736
9354
6388
9104
7534
11007
9054
5503
8509
3348
1887
9859
7303
10324
10723
3345
4989
10727
9831
6278
2447
7489
2763
6210
5940
1997
7499
1136
2913
5045
11549
15174
6691
2272
7002
3091
3492
2790
5359
5071
1177
3777
4431
3524
16104
7757
15578
8940
1139
9935
10083
3451
7287
6594
3007
1491
2604
3108
4882
5901
3393
1665
7819
7221
1593
4645
1365
11628
8502
9468
8638
8219
8880
2937
13922
2323
5126
3722
6835
1108
1336
5054
9811
3846
2925
1268
4398
6669
8740
10287
4969
13246
6402
8076
1010
4392
2101
4365
2139
7963
6078
1122
4123
13473
4701
14157
17539
15944
17893
8376
68056
5208
4934
5001
5758
1447
2272
3586
3761
2012
2663
5023
4671
1296
6055
5198
1295
4069
2210
5072
3547
4437
5520
5498
4907
5945
4221
1405
4506
2862
4030
8962
2658
5362
4213
7268
2284
5226
8628
10535
5284
12189
6523
8336
8105
5094
6885
7406
7252
9332
9597
4504
2108
3800
5986
1793
4395
5762
4297
1900
6256
1205
3552
4270
2859
2140
2161
8356
7062
6218
7964
7875
3891
4178
7126
2369
2077
6348
2757
5734
1632
6196
3700
5385
2898
2310
5376
4158
2413
8368
3632
8981
10269
5839
2386
5302
2194
13530
6742
2611
7395
7424
3719
6504
8396
4896
6918
8754
3316
2712
4870
5014
2195
4629
2415
6338
5244
6682
5050
1141
3762
6459
17272
18789
6571
3488
2091
3800
3821
4206
5993
6173
5600
1670
4492
4136
5512
3093
1954
5637
1637
5661
1053
1728
3798
7454
5787
6616
5415
5393
2181
4290
5407
3608
1568
6300
1619
1006
4916
6100
5025
2718
4054
2302
5513
6726
2804
2655
6385
4049
2492
4405
2569
6428
3742
5037
6014
3531
4133
1549
9146
8227
5186
5159
1952