diff --git a/2022.csproj b/2022.csproj
deleted file mode 100644
index 9c5e18c..0000000
--- a/2022.csproj
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
- Exe
- net6.0
- 2022
- enable
- enable
-
-
-
-
-
-
-
-
-
-
- Always
-
-
- Always
-
-
- Always
-
-
-
-
diff --git a/Advend Of Code Runner/Advent Of Code Runner.csproj b/Advend Of Code Runner/Advent Of Code Runner.csproj
new file mode 100644
index 0000000..8a96168
--- /dev/null
+++ b/Advend Of Code Runner/Advent Of Code Runner.csproj
@@ -0,0 +1,15 @@
+
+
+
+ Exe
+ net6.0
+ AdventOFCodeRunner
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/Advend Of Code Runner/Program.cs b/Advend Of Code Runner/Program.cs
new file mode 100644
index 0000000..931cf16
--- /dev/null
+++ b/Advend Of Code Runner/Program.cs
@@ -0,0 +1,6 @@
+using Day_03.Day_03;
+
+byte[] dataArray = File.ReadAllBytes(Day03.InputPath);
+
+Console.WriteLine($"Max value: {Day03.GetPart2(dataArray)}");
+Console.ReadKey(true);
\ No newline at end of file
diff --git a/Day 01/Day01.cs b/Advent Of Code Library/2022/Day 01/Day01.cs
similarity index 85%
rename from Day 01/Day01.cs
rename to Advent Of Code Library/2022/Day 01/Day01.cs
index e3ef23f..638ebeb 100644
--- a/Day 01/Day01.cs
+++ b/Advent Of Code Library/2022/Day 01/Day01.cs
@@ -1,29 +1,29 @@
-namespace Day_01.Day_01
-{
- internal class Day01
- {
- private static string inputPath = "Day 01/day-01-input.txt";
-
- internal static int GetPart1()
- {
- return File.ReadAllText(inputPath)
- .TrimEnd()
- .Split(Environment.NewLine + Environment.NewLine)
- .Select(s => s.Split(Environment.NewLine)
- .Sum(Convert.ToInt32))
- .MaxBy(v => v);
- }
-
- internal static int GetPart2()
- {
- return File.ReadAllText(inputPath)
- .TrimEnd()
- .Split(Environment.NewLine + Environment.NewLine)
- .Select(s => s.Split(Environment.NewLine)
- .Sum(Convert.ToInt32))
- .OrderByDescending(v => v)
- .Take(3)
- .Sum();
- }
- }
-}
+namespace Day_01.Day_01
+{
+ public class Day01
+ {
+ private static string inputPath = "Day 01/day-01-input.txt";
+
+ public static int GetPart1()
+ {
+ return File.ReadAllText(inputPath)
+ .TrimEnd()
+ .Split(Environment.NewLine + Environment.NewLine)
+ .Select(s => s.Split(Environment.NewLine)
+ .Sum(Convert.ToInt32))
+ .MaxBy(v => v);
+ }
+
+ public static int GetPart2()
+ {
+ return File.ReadAllText(inputPath)
+ .TrimEnd()
+ .Split(Environment.NewLine + Environment.NewLine)
+ .Select(s => s.Split(Environment.NewLine)
+ .Sum(Convert.ToInt32))
+ .OrderByDescending(v => v)
+ .Take(3)
+ .Sum();
+ }
+ }
+}
diff --git a/Day 01/day-01-input.txt b/Advent Of Code Library/2022/Day 01/day-01-input.txt
similarity index 82%
rename from Day 01/day-01-input.txt
rename to Advent Of Code Library/2022/Day 01/day-01-input.txt
index c2ef22a..51d7adf 100644
--- a/Day 01/day-01-input.txt
+++ b/Advent Of Code Library/2022/Day 01/day-01-input.txt
@@ -1,2255 +1,2255 @@
-5104
-6131
-3553
-4496
-5847
-3253
-1828
-1045
-6369
-5544
-2756
-7382
-
-6879
-9715
-10122
-
-14438
-1135
-13406
-4888
-
-67712
-
-1965
-4515
-4150
-3583
-3007
-4852
-6397
-6237
-5505
-3106
-6357
-2504
-4074
-
-1689
-5612
-5531
-3138
-1203
-4821
-3468
-2424
-3425
-5566
-4374
-5233
-5452
-3049
-2260
-
-3933
-6073
-2260
-2376
-7298
-3397
-3479
-5316
-6750
-4800
-
-14581
-6385
-18287
-14353
-
-44790
-
-66296
-
-3368
-1373
-9644
-1682
-11146
-6876
-
-2544
-5471
-3632
-1837
-2272
-2956
-4989
-1754
-4574
-5076
-3201
-2199
-5688
-1161
-3326
-
-4897
-3510
-4961
-2747
-3931
-2722
-4021
-2231
-5466
-6371
-4691
-2851
-1846
-4720
-
-13096
-5576
-5765
-3715
-8851
-
-3339
-6453
-4991
-3935
-5900
-2326
-4731
-3323
-6270
-7505
-
-2208
-3058
-6908
-6343
-6513
-5383
-6087
-5836
-4824
-5588
-5039
-6138
-1077
-
-9045
-6898
-8327
-4103
-4006
-6797
-8591
-6515
-5228
-
-39541
-
-33536
-7614
-
-4637
-7862
-3038
-6682
-8880
-2784
-7924
-5589
-2107
-
-33278
-18120
-
-1005
-3479
-4129
-2799
-5324
-7799
-5380
-6998
-1877
-
-31663
-9259
-
-1009
-3987
-1254
-6449
-5134
-6090
-6341
-3229
-5902
-4492
-4025
-
-10079
-16006
-19943
-1970
-
-3428
-5671
-1030
-2461
-6073
-2875
-3493
-3103
-1476
-4305
-2664
-5017
-4210
-3629
-
-45170
-
-11282
-8209
-10075
-1366
-13841
-3412
-
-9981
-7808
-1565
-3171
-6684
-1905
-1087
-
-14447
-11220
-3519
-10317
-14174
-
-7518
-3810
-12824
-3137
-2272
-2616
-
-7827
-29197
-
-8799
-12459
-16530
-16661
-
-1965
-10267
-11399
-11562
-13367
-10223
-
-6410
-2536
-7255
-2151
-3190
-5786
-4114
-6875
-4013
-2381
-6020
-
-1751
-6262
-5190
-5091
-6453
-3652
-2929
-3411
-4954
-1275
-1468
-2689
-1200
-4362
-
-4928
-5282
-6845
-5328
-2101
-6522
-3929
-3276
-4740
-4493
-4003
-6797
-
-6529
-11489
-1696
-12922
-8959
-10927
-
-13381
-5921
-5375
-10424
-9279
-10031
-
-3800
-2166
-1964
-4182
-3395
-5956
-6024
-2473
-2780
-3686
-5791
-1449
-2698
-4430
-1008
-
-37175
-26191
-
-2863
-1329
-6266
-5911
-6331
-5211
-2420
-6006
-2259
-4125
-1885
-2284
-6213
-
-3560
-4007
-5585
-4484
-1828
-7935
-5895
-3139
-6413
-
-1201
-3350
-3763
-1920
-4653
-1662
-2559
-1918
-6378
-6688
-2569
-3180
-
-4347
-1526
-7318
-3860
-4250
-6191
-10198
-
-8179
-5824
-4470
-7569
-3163
-1859
-2541
-3433
-1851
-7360
-
-1028
-3103
-3166
-2025
-5630
-5067
-1819
-1590
-2290
-3636
-2411
-2856
-1918
-3050
-
-3582
-4564
-3311
-4695
-4780
-5863
-3626
-5304
-4009
-1499
-1528
-2261
-2743
-3992
-
-6432
-4354
-1747
-3799
-7415
-6951
-4928
-7862
-6082
-1010
-3586
-
-11375
-14308
-7595
-18952
-
-23213
-18972
-
-15795
-17712
-5850
-
-4756
-3643
-3397
-6067
-5206
-1658
-2436
-4293
-2352
-5096
-2038
-3780
-2620
-3124
-2525
-
-8776
-3372
-2945
-7681
-7636
-1851
-2755
-2058
-7856
-
-9353
-5890
-3167
-2211
-6056
-4894
-10709
-2793
-
-3477
-7013
-4750
-7568
-7135
-4165
-7490
-5932
-1434
-6230
-7262
-
-2988
-3138
-6692
-5152
-6590
-7063
-5578
-3263
-2918
-4021
-6292
-3340
-
-8043
-7625
-3391
-6085
-6245
-4824
-5767
-6627
-2367
-2729
-
-1520
-6438
-2132
-1601
-4488
-5254
-2935
-2368
-1569
-3680
-5772
-6031
-6288
-5836
-
-5254
-4257
-6075
-5658
-6032
-6121
-5074
-4844
-3709
-4521
-5464
-1705
-6448
-6340
-
-14988
-3400
-15846
-12040
-6216
-
-45130
-
-4014
-2376
-2115
-3132
-5487
-6934
-5925
-2810
-4421
-6486
-2346
-5692
-
-12105
-2383
-9893
-5469
-7597
-5977
-7022
-
-2795
-6488
-20406
-
-12538
-3692
-3757
-12964
-15776
-
-1139
-2432
-1346
-1249
-1454
-5679
-2131
-1057
-6395
-2604
-6336
-1444
-6703
-
-1499
-6392
-4154
-1207
-3827
-4646
-4283
-2106
-2958
-1327
-3760
-2575
-3961
-
-11023
-7199
-6134
-12194
-10621
-
-6715
-5245
-4073
-5978
-3950
-5613
-3517
-3845
-5611
-2993
-4704
-4468
-4833
-
-25207
-18060
-8124
-
-3263
-2985
-6577
-3964
-1392
-2316
-5224
-3923
-1392
-5569
-4833
-5873
-1627
-
-1347
-5148
-4046
-3618
-3677
-6767
-3809
-1979
-8779
-2274
-
-15152
-5482
-5835
-4176
-
-1191
-5296
-1107
-7245
-4121
-2598
-4148
-2388
-5949
-1851
-3747
-3829
-
-1942
-6426
-4916
-4572
-2965
-3453
-7020
-8067
-1144
-5931
-2985
-
-3315
-1989
-1609
-2161
-5836
-3243
-3901
-2795
-4187
-2790
-2083
-3164
-4843
-5887
-
-16209
-2858
-2586
-15877
-13993
-
-8898
-4191
-1864
-9272
-9284
-5581
-4912
-1084
-6000
-
-3410
-5934
-1609
-4699
-5008
-3104
-6016
-3130
-7286
-1906
-
-7381
-4765
-2427
-2044
-6493
-2845
-1431
-5109
-7242
-3930
-1350
-4999
-
-10119
-12971
-5407
-6448
-14453
-
-5647
-5083
-3317
-6707
-1586
-2179
-1468
-1214
-5992
-5732
-5813
-
-1260
-3272
-11607
-3794
-4599
-2890
-
-16930
-16192
-
-3140
-6499
-4094
-5617
-4379
-6309
-4400
-4764
-1143
-2004
-4451
-3034
-4209
-
-2653
-5514
-3335
-8021
-7656
-7956
-9425
-5902
-7280
-
-23692
-
-1097
-8621
-2372
-4381
-10625
-6138
-7127
-
-1719
-5845
-3170
-4103
-5550
-3430
-2824
-
-2489
-13880
-7484
-4617
-
-11152
-2300
-2349
-9548
-7018
-
-5745
-2571
-5758
-1580
-1411
-3944
-4867
-2541
-1998
-3769
-5598
-5138
-4369
-5419
-
-10223
-10283
-2268
-
-5604
-4701
-2054
-3920
-4925
-5118
-3707
-1838
-2159
-4192
-5164
-4419
-5630
-3127
-5255
-
-3686
-1791
-3543
-6111
-4260
-3612
-4021
-3316
-3100
-5383
-1962
-3323
-5630
-
-2391
-6494
-3948
-3811
-2101
-4075
-3030
-4553
-1170
-1604
-6209
-1122
-3951
-3447
-
-4687
-1165
-2511
-2316
-4002
-3832
-4968
-1082
-5374
-1960
-2355
-1975
-4569
-2324
-
-4285
-3885
-2613
-1102
-4284
-3439
-5074
-1279
-6287
-
-3501
-10232
-9878
-10401
-5166
-9221
-2356
-7718
-
-17368
-8643
-12092
-3319
-
-7510
-4438
-8329
-4973
-6213
-6441
-1801
-7936
-7802
-
-6491
-4569
-4130
-3144
-2275
-1831
-2833
-6234
-5260
-5476
-5066
-4356
-1835
-
-3842
-19003
-9012
-7301
-
-1596
-8020
-
-5794
-6031
-4868
-5488
-3633
-5019
-1113
-4435
-1258
-2866
-6007
-4006
-4164
-4748
-1899
-
-5388
-7788
-1063
-3566
-3185
-3839
-6396
-6052
-4822
-1345
-4405
-
-5048
-8412
-11211
-10874
-11580
-9113
-
-2921
-9381
-5501
-5959
-3511
-6107
-
-3827
-2400
-1465
-4592
-1070
-5953
-1252
-5820
-4496
-6461
-4105
-5273
-
-7867
-
-7212
-2869
-4893
-5449
-1790
-4027
-4863
-6804
-4589
-4431
-2978
-5646
-
-6820
-1830
-5561
-11648
-2836
-
-3711
-7705
-8802
-1093
-10308
-1310
-4998
-9163
-
-6599
-6302
-1817
-5460
-1686
-1639
-6831
-2245
-2026
-1250
-1521
-6664
-4326
-
-8495
-15655
-1144
-6597
-13967
-
-5998
-4313
-5903
-3692
-8234
-2692
-10457
-3100
-
-1861
-
-14744
-4779
-12847
-5418
-
-1755
-11466
-4824
-3036
-2407
-3799
-
-3703
-5199
-4767
-3220
-4703
-1618
-2408
-6934
-6244
-
-10247
-6489
-6234
-2992
-8650
-2238
-
-4281
-13678
-15074
-6788
-6291
-
-8999
-10740
-12070
-5488
-1840
-6026
-8971
-
-1663
-9127
-3582
-5593
-1469
-7933
-3315
-8614
-8179
-
-31510
-20867
-
-3135
-4978
-2113
-3443
-2488
-2805
-5385
-2765
-2443
-5948
-4798
-2685
-3580
-5153
-3035
-
-7786
-5488
-6868
-6016
-8457
-3381
-1057
-3370
-
-5493
-5175
-4669
-3522
-6305
-2560
-5075
-4445
-3881
-6694
-4367
-6287
-3496
-
-10356
-13146
-10433
-7922
-5423
-6508
-
-17729
-30047
-
-1564
-8859
-7596
-10579
-7432
-7320
-4046
-
-4402
-4813
-7497
-8596
-8944
-
-9946
-3497
-4322
-1990
-6240
-9993
-8309
-
-24706
-3277
-22881
-
-6766
-1997
-3845
-6791
-5254
-2251
-5959
-5030
-7267
-6440
-3457
-4772
-
-8589
-5044
-9480
-10563
-8685
-7787
-9630
-9199
-
-9423
-2006
-5708
-4116
-14214
-
-18376
-3635
-11243
-
-6763
-4005
-1430
-3727
-1574
-4517
-1253
-5880
-4091
-1499
-6714
-6510
-6452
-
-5479
-4798
-6197
-3737
-6874
-2965
-5032
-4024
-5051
-8053
-
-34588
-18765
-
-6659
-7468
-3910
-7243
-5199
-6073
-4412
-7824
-3338
-3599
-7017
-
-3490
-2272
-2824
-5088
-6335
-1716
-2386
-3356
-2055
-2013
-2983
-5382
-1507
-4581
-
-19218
-16697
-9274
-
-22122
-13616
-2703
-
-1794
-4376
-2241
-2705
-2104
-1658
-3543
-2607
-3770
-4622
-3370
-2443
-4444
-5476
-3714
-
-53258
-
-11510
-15672
-12872
-8622
-
-5586
-15502
-3056
-3890
-14551
-
-1608
-4148
-3884
-4981
-8494
-6494
-6595
-6983
-2298
-1599
-
-22767
-5219
-2814
-
-1034
-1031
-4757
-7276
-7064
-5309
-7766
-8161
-
-9332
-
-21322
-13644
-17204
-
-52338
-
-4741
-11019
-9823
-11376
-12363
-7345
-
-13565
-12029
-6517
-4188
-11311
-3153
-
-3172
-2579
-2147
-6643
-6720
-1518
-3920
-3744
-4907
-3887
-5811
-2260
-3640
-
-2065
-4288
-2840
-3551
-2354
-3243
-5448
-2120
-2476
-3959
-2807
-5822
-1824
-6027
-
-13354
-13217
-9371
-10773
-12933
-
-4706
-3934
-8085
-3861
-3474
-4037
-4333
-1915
-7439
-4724
-1584
-
-5587
-3880
-5972
-1568
-2925
-6189
-5112
-1034
-5146
-4456
-3302
-5930
-6509
-2232
-
-10574
-13136
-19197
-12598
-
-3319
-5343
-6042
-15163
-7853
-
-2549
-9485
-3150
-3717
-4202
-8582
-9314
-1959
-
-1651
-3584
-2353
-4100
-4642
-4105
-2675
-3241
-1441
-1093
-1012
-4275
-3727
-4598
-2407
-
-9617
-2108
-4265
-5498
-2914
-7770
-5898
-9319
-2295
-
-8587
-
-2644
-3717
-4921
-2297
-4454
-5287
-2479
-4581
-1824
-3108
-4297
-1055
-4726
-1859
-
-2170
-16319
-2974
-
-3092
-4627
-5913
-4495
-3009
-4501
-4341
-4668
-4858
-3240
-1347
-3448
-3748
-5811
-
-4644
-4571
-2358
-5466
-2255
-5075
-5466
-4229
-2211
-4262
-2900
-1966
-2627
-4728
-
-7682
-9016
-4473
-8449
-9257
-2068
-10641
-
-1499
-6224
-7304
-5201
-3451
-4984
-7737
-1728
-5302
-1062
-2178
-
-30845
-12424
-
-3483
-1244
-1700
-8543
-12788
-
-2430
-9187
-9178
-3168
-10377
-8889
-
-15000
-12965
-10098
-5507
-13346
-
-5401
-2056
-7490
-9384
-3312
-7124
-7199
-5571
-6029
-
-1218
-10456
-6922
-1815
-12092
-11303
-2461
-
-1766
-5195
-4704
-1476
-4579
-1104
-3018
-6172
-3826
-6543
-1323
-6306
-6367
-
-17963
-2012
-1664
-15479
-
-32869
-
-9473
-3761
-6631
-2522
-2878
-2435
-9087
-3261
-6032
-
-4461
-1087
-4793
-1273
-1848
-2882
-1662
-4454
-1347
-5600
-2619
-
-2300
-8563
-3317
-2462
-1118
-6131
-5801
-4281
-7292
-
-3848
-13902
-7899
-10164
-12727
-8578
-
-1076
-6192
-3308
-2648
-1919
-6489
-6050
-1639
-6490
-2768
-1169
-4718
-5799
-2658
-
-12611
-18417
-13289
-16060
-
-1806
-6019
-1058
-13468
-8292
-9682
-
-13648
-24310
-6025
-
-10030
-7199
-5366
-6080
-8944
-3416
-3746
-3597
-
-8809
-10699
-5362
-8302
-3712
-2911
-2598
-5279
-
-23190
-15323
-2535
-
-2663
-10325
-9513
-2403
-6443
-6731
-8188
-9559
-
-15302
-
-4544
-6035
-4595
-5512
-7162
-1160
-2866
-5003
-6449
-3936
-2083
-1154
-
-16473
-
-4333
-2861
-2754
-5775
-5774
-3313
-1763
-3326
-3888
-2639
-3981
-1788
-6272
-2151
-
-3830
-11759
-9430
-7412
-5190
-5926
-9828
-
-19524
-15948
-5297
-16516
-
-8073
-9705
-7872
-5308
-10279
-3645
-7983
-3467
-
-12230
-22031
-6843
-
-15329
-6540
-
-4960
-5485
-1829
-5062
-4777
-4193
-4594
-5705
-1282
-4546
-6063
-4304
-2533
-
-51798
-
-11965
-12511
-2156
-13850
-10025
-12395
-
-3476
-1232
-7227
-2031
-4457
-5152
-3616
-5374
-4576
-2413
-
-1045
-24929
-
-13068
-14356
-9552
-3897
-4369
-
-3172
-3437
-2380
-5542
-4850
-4325
-1065
-1051
-3385
-5905
-1182
-6138
-6487
-2307
-
-11847
-9674
-1409
-16351
-3793
-
-1567
-6941
-2520
-6617
-4815
-4700
-2297
-2336
-3626
-8035
-1777
-
-7380
-6231
-1464
-5680
-4298
-8018
-5861
-5967
-2799
-6888
-1401
-
-1944
-3424
-4104
-5697
-2082
-1829
-4128
-3775
-3450
-5312
-3475
-4868
-4857
-1469
-4757
-
-22339
-15143
-
-4573
-5384
-2968
-6696
-2208
-3068
-3104
-2654
-5539
-7329
-6127
-3874
-
-6693
-6878
-3318
-5526
-2042
-4895
-3809
-3718
-5881
-2444
-2448
-
-6304
-5014
-1337
-5766
-9098
-4456
-6604
-1722
-4674
-
-2403
-5059
-2439
-2113
-3879
-2289
-6524
-3707
-5199
-2908
-4624
-3742
-6077
-
-2717
-3042
-1843
-2403
-5750
-2473
-3017
-3407
-4392
-2513
-6913
-6585
-
-1996
-1118
-5230
-6283
-2639
-3324
-1236
-3483
-5270
-3399
-3111
-6098
-
-6418
-3395
-3771
-5816
-2494
-1049
-5846
-4483
-3137
-4445
-2248
-1216
-2499
-3556
-
-20769
-22782
-15068
-
-2645
-3388
-2219
-6061
-6664
-4330
-5003
-4035
-6370
-2023
-6309
-5013
-
-1222
-6095
-7410
-7957
-4087
-5677
-6829
-7151
-8731
-8168
-
-11570
-27420
-
-14541
-3035
-10295
-14965
-
-4122
-5939
-8715
-1188
-4674
-4654
-7742
-4976
-
-5269
-3341
-7796
-8918
-
-9598
-2036
-10718
-9696
-8890
-2709
-4114
-1940
-
-5054
-3311
-2306
-2633
-1810
-4733
-2133
-2185
-2322
-2396
-2992
-2202
-2671
-1932
-3398
-
-4357
-1706
-3417
-2442
-5608
-5032
-6296
-5015
-1874
-5295
-3812
-4698
-
-18153
-16982
-6152
-
-16245
-
-3048
-3827
-3394
-2137
-2364
-5478
-5992
-2396
-6139
-2323
-4458
-2292
-4003
-
-1561
-1154
-1545
-1144
-2206
-4454
-5640
-4697
-1908
-3175
-5130
-2386
-6358
-4169
-
-5785
-6697
-5246
-3215
-9759
-10601
-5507
-
-4892
-7629
-4323
-3881
-4247
-2154
-1352
-3468
-3053
-
-6710
-2117
-4776
-3991
-4021
-7543
-4268
-3355
-4701
-4663
-1015
-
-13221
-14163
-11213
-
-9488
-7173
-3708
-3524
-9290
-3390
-1272
-3325
-4864
-
-3098
-6656
-1387
-4710
-1962
-7262
-7442
-2097
-4544
-1976
-6250
-1974
-
-5122
-1843
-2929
-4066
-2403
-1020
-2723
-5914
-3821
-2189
-1047
-3334
-5773
-4396
-2777
-
-2073
-2094
-4901
-1093
-5029
-5458
-5963
-4011
-3454
-3174
-2086
-1451
-5640
-2311
-2511
-
-4243
-7521
-5018
-1914
-6762
-8155
-
-19726
-11376
-6504
-4086
-
-4150
-7015
-3007
-5002
-5151
-8346
-8024
-6498
-1696
-
-5404
-5249
-1474
-2284
-1642
-3323
-4110
-1796
-5132
-1940
-1266
-2679
-4027
-2289
-
-10301
-7013
-1666
-7987
-10426
-6423
-10008
-10015
-
-6115
-6361
-1902
-8036
-5703
-2771
-7330
-8606
-6447
-
-8917
-1183
-8966
-1255
-5988
-5233
-7358
-3806
-9333
+5104
+6131
+3553
+4496
+5847
+3253
+1828
+1045
+6369
+5544
+2756
+7382
+
+6879
+9715
+10122
+
+14438
+1135
+13406
+4888
+
+67712
+
+1965
+4515
+4150
+3583
+3007
+4852
+6397
+6237
+5505
+3106
+6357
+2504
+4074
+
+1689
+5612
+5531
+3138
+1203
+4821
+3468
+2424
+3425
+5566
+4374
+5233
+5452
+3049
+2260
+
+3933
+6073
+2260
+2376
+7298
+3397
+3479
+5316
+6750
+4800
+
+14581
+6385
+18287
+14353
+
+44790
+
+66296
+
+3368
+1373
+9644
+1682
+11146
+6876
+
+2544
+5471
+3632
+1837
+2272
+2956
+4989
+1754
+4574
+5076
+3201
+2199
+5688
+1161
+3326
+
+4897
+3510
+4961
+2747
+3931
+2722
+4021
+2231
+5466
+6371
+4691
+2851
+1846
+4720
+
+13096
+5576
+5765
+3715
+8851
+
+3339
+6453
+4991
+3935
+5900
+2326
+4731
+3323
+6270
+7505
+
+2208
+3058
+6908
+6343
+6513
+5383
+6087
+5836
+4824
+5588
+5039
+6138
+1077
+
+9045
+6898
+8327
+4103
+4006
+6797
+8591
+6515
+5228
+
+39541
+
+33536
+7614
+
+4637
+7862
+3038
+6682
+8880
+2784
+7924
+5589
+2107
+
+33278
+18120
+
+1005
+3479
+4129
+2799
+5324
+7799
+5380
+6998
+1877
+
+31663
+9259
+
+1009
+3987
+1254
+6449
+5134
+6090
+6341
+3229
+5902
+4492
+4025
+
+10079
+16006
+19943
+1970
+
+3428
+5671
+1030
+2461
+6073
+2875
+3493
+3103
+1476
+4305
+2664
+5017
+4210
+3629
+
+45170
+
+11282
+8209
+10075
+1366
+13841
+3412
+
+9981
+7808
+1565
+3171
+6684
+1905
+1087
+
+14447
+11220
+3519
+10317
+14174
+
+7518
+3810
+12824
+3137
+2272
+2616
+
+7827
+29197
+
+8799
+12459
+16530
+16661
+
+1965
+10267
+11399
+11562
+13367
+10223
+
+6410
+2536
+7255
+2151
+3190
+5786
+4114
+6875
+4013
+2381
+6020
+
+1751
+6262
+5190
+5091
+6453
+3652
+2929
+3411
+4954
+1275
+1468
+2689
+1200
+4362
+
+4928
+5282
+6845
+5328
+2101
+6522
+3929
+3276
+4740
+4493
+4003
+6797
+
+6529
+11489
+1696
+12922
+8959
+10927
+
+13381
+5921
+5375
+10424
+9279
+10031
+
+3800
+2166
+1964
+4182
+3395
+5956
+6024
+2473
+2780
+3686
+5791
+1449
+2698
+4430
+1008
+
+37175
+26191
+
+2863
+1329
+6266
+5911
+6331
+5211
+2420
+6006
+2259
+4125
+1885
+2284
+6213
+
+3560
+4007
+5585
+4484
+1828
+7935
+5895
+3139
+6413
+
+1201
+3350
+3763
+1920
+4653
+1662
+2559
+1918
+6378
+6688
+2569
+3180
+
+4347
+1526
+7318
+3860
+4250
+6191
+10198
+
+8179
+5824
+4470
+7569
+3163
+1859
+2541
+3433
+1851
+7360
+
+1028
+3103
+3166
+2025
+5630
+5067
+1819
+1590
+2290
+3636
+2411
+2856
+1918
+3050
+
+3582
+4564
+3311
+4695
+4780
+5863
+3626
+5304
+4009
+1499
+1528
+2261
+2743
+3992
+
+6432
+4354
+1747
+3799
+7415
+6951
+4928
+7862
+6082
+1010
+3586
+
+11375
+14308
+7595
+18952
+
+23213
+18972
+
+15795
+17712
+5850
+
+4756
+3643
+3397
+6067
+5206
+1658
+2436
+4293
+2352
+5096
+2038
+3780
+2620
+3124
+2525
+
+8776
+3372
+2945
+7681
+7636
+1851
+2755
+2058
+7856
+
+9353
+5890
+3167
+2211
+6056
+4894
+10709
+2793
+
+3477
+7013
+4750
+7568
+7135
+4165
+7490
+5932
+1434
+6230
+7262
+
+2988
+3138
+6692
+5152
+6590
+7063
+5578
+3263
+2918
+4021
+6292
+3340
+
+8043
+7625
+3391
+6085
+6245
+4824
+5767
+6627
+2367
+2729
+
+1520
+6438
+2132
+1601
+4488
+5254
+2935
+2368
+1569
+3680
+5772
+6031
+6288
+5836
+
+5254
+4257
+6075
+5658
+6032
+6121
+5074
+4844
+3709
+4521
+5464
+1705
+6448
+6340
+
+14988
+3400
+15846
+12040
+6216
+
+45130
+
+4014
+2376
+2115
+3132
+5487
+6934
+5925
+2810
+4421
+6486
+2346
+5692
+
+12105
+2383
+9893
+5469
+7597
+5977
+7022
+
+2795
+6488
+20406
+
+12538
+3692
+3757
+12964
+15776
+
+1139
+2432
+1346
+1249
+1454
+5679
+2131
+1057
+6395
+2604
+6336
+1444
+6703
+
+1499
+6392
+4154
+1207
+3827
+4646
+4283
+2106
+2958
+1327
+3760
+2575
+3961
+
+11023
+7199
+6134
+12194
+10621
+
+6715
+5245
+4073
+5978
+3950
+5613
+3517
+3845
+5611
+2993
+4704
+4468
+4833
+
+25207
+18060
+8124
+
+3263
+2985
+6577
+3964
+1392
+2316
+5224
+3923
+1392
+5569
+4833
+5873
+1627
+
+1347
+5148
+4046
+3618
+3677
+6767
+3809
+1979
+8779
+2274
+
+15152
+5482
+5835
+4176
+
+1191
+5296
+1107
+7245
+4121
+2598
+4148
+2388
+5949
+1851
+3747
+3829
+
+1942
+6426
+4916
+4572
+2965
+3453
+7020
+8067
+1144
+5931
+2985
+
+3315
+1989
+1609
+2161
+5836
+3243
+3901
+2795
+4187
+2790
+2083
+3164
+4843
+5887
+
+16209
+2858
+2586
+15877
+13993
+
+8898
+4191
+1864
+9272
+9284
+5581
+4912
+1084
+6000
+
+3410
+5934
+1609
+4699
+5008
+3104
+6016
+3130
+7286
+1906
+
+7381
+4765
+2427
+2044
+6493
+2845
+1431
+5109
+7242
+3930
+1350
+4999
+
+10119
+12971
+5407
+6448
+14453
+
+5647
+5083
+3317
+6707
+1586
+2179
+1468
+1214
+5992
+5732
+5813
+
+1260
+3272
+11607
+3794
+4599
+2890
+
+16930
+16192
+
+3140
+6499
+4094
+5617
+4379
+6309
+4400
+4764
+1143
+2004
+4451
+3034
+4209
+
+2653
+5514
+3335
+8021
+7656
+7956
+9425
+5902
+7280
+
+23692
+
+1097
+8621
+2372
+4381
+10625
+6138
+7127
+
+1719
+5845
+3170
+4103
+5550
+3430
+2824
+
+2489
+13880
+7484
+4617
+
+11152
+2300
+2349
+9548
+7018
+
+5745
+2571
+5758
+1580
+1411
+3944
+4867
+2541
+1998
+3769
+5598
+5138
+4369
+5419
+
+10223
+10283
+2268
+
+5604
+4701
+2054
+3920
+4925
+5118
+3707
+1838
+2159
+4192
+5164
+4419
+5630
+3127
+5255
+
+3686
+1791
+3543
+6111
+4260
+3612
+4021
+3316
+3100
+5383
+1962
+3323
+5630
+
+2391
+6494
+3948
+3811
+2101
+4075
+3030
+4553
+1170
+1604
+6209
+1122
+3951
+3447
+
+4687
+1165
+2511
+2316
+4002
+3832
+4968
+1082
+5374
+1960
+2355
+1975
+4569
+2324
+
+4285
+3885
+2613
+1102
+4284
+3439
+5074
+1279
+6287
+
+3501
+10232
+9878
+10401
+5166
+9221
+2356
+7718
+
+17368
+8643
+12092
+3319
+
+7510
+4438
+8329
+4973
+6213
+6441
+1801
+7936
+7802
+
+6491
+4569
+4130
+3144
+2275
+1831
+2833
+6234
+5260
+5476
+5066
+4356
+1835
+
+3842
+19003
+9012
+7301
+
+1596
+8020
+
+5794
+6031
+4868
+5488
+3633
+5019
+1113
+4435
+1258
+2866
+6007
+4006
+4164
+4748
+1899
+
+5388
+7788
+1063
+3566
+3185
+3839
+6396
+6052
+4822
+1345
+4405
+
+5048
+8412
+11211
+10874
+11580
+9113
+
+2921
+9381
+5501
+5959
+3511
+6107
+
+3827
+2400
+1465
+4592
+1070
+5953
+1252
+5820
+4496
+6461
+4105
+5273
+
+7867
+
+7212
+2869
+4893
+5449
+1790
+4027
+4863
+6804
+4589
+4431
+2978
+5646
+
+6820
+1830
+5561
+11648
+2836
+
+3711
+7705
+8802
+1093
+10308
+1310
+4998
+9163
+
+6599
+6302
+1817
+5460
+1686
+1639
+6831
+2245
+2026
+1250
+1521
+6664
+4326
+
+8495
+15655
+1144
+6597
+13967
+
+5998
+4313
+5903
+3692
+8234
+2692
+10457
+3100
+
+1861
+
+14744
+4779
+12847
+5418
+
+1755
+11466
+4824
+3036
+2407
+3799
+
+3703
+5199
+4767
+3220
+4703
+1618
+2408
+6934
+6244
+
+10247
+6489
+6234
+2992
+8650
+2238
+
+4281
+13678
+15074
+6788
+6291
+
+8999
+10740
+12070
+5488
+1840
+6026
+8971
+
+1663
+9127
+3582
+5593
+1469
+7933
+3315
+8614
+8179
+
+31510
+20867
+
+3135
+4978
+2113
+3443
+2488
+2805
+5385
+2765
+2443
+5948
+4798
+2685
+3580
+5153
+3035
+
+7786
+5488
+6868
+6016
+8457
+3381
+1057
+3370
+
+5493
+5175
+4669
+3522
+6305
+2560
+5075
+4445
+3881
+6694
+4367
+6287
+3496
+
+10356
+13146
+10433
+7922
+5423
+6508
+
+17729
+30047
+
+1564
+8859
+7596
+10579
+7432
+7320
+4046
+
+4402
+4813
+7497
+8596
+8944
+
+9946
+3497
+4322
+1990
+6240
+9993
+8309
+
+24706
+3277
+22881
+
+6766
+1997
+3845
+6791
+5254
+2251
+5959
+5030
+7267
+6440
+3457
+4772
+
+8589
+5044
+9480
+10563
+8685
+7787
+9630
+9199
+
+9423
+2006
+5708
+4116
+14214
+
+18376
+3635
+11243
+
+6763
+4005
+1430
+3727
+1574
+4517
+1253
+5880
+4091
+1499
+6714
+6510
+6452
+
+5479
+4798
+6197
+3737
+6874
+2965
+5032
+4024
+5051
+8053
+
+34588
+18765
+
+6659
+7468
+3910
+7243
+5199
+6073
+4412
+7824
+3338
+3599
+7017
+
+3490
+2272
+2824
+5088
+6335
+1716
+2386
+3356
+2055
+2013
+2983
+5382
+1507
+4581
+
+19218
+16697
+9274
+
+22122
+13616
+2703
+
+1794
+4376
+2241
+2705
+2104
+1658
+3543
+2607
+3770
+4622
+3370
+2443
+4444
+5476
+3714
+
+53258
+
+11510
+15672
+12872
+8622
+
+5586
+15502
+3056
+3890
+14551
+
+1608
+4148
+3884
+4981
+8494
+6494
+6595
+6983
+2298
+1599
+
+22767
+5219
+2814
+
+1034
+1031
+4757
+7276
+7064
+5309
+7766
+8161
+
+9332
+
+21322
+13644
+17204
+
+52338
+
+4741
+11019
+9823
+11376
+12363
+7345
+
+13565
+12029
+6517
+4188
+11311
+3153
+
+3172
+2579
+2147
+6643
+6720
+1518
+3920
+3744
+4907
+3887
+5811
+2260
+3640
+
+2065
+4288
+2840
+3551
+2354
+3243
+5448
+2120
+2476
+3959
+2807
+5822
+1824
+6027
+
+13354
+13217
+9371
+10773
+12933
+
+4706
+3934
+8085
+3861
+3474
+4037
+4333
+1915
+7439
+4724
+1584
+
+5587
+3880
+5972
+1568
+2925
+6189
+5112
+1034
+5146
+4456
+3302
+5930
+6509
+2232
+
+10574
+13136
+19197
+12598
+
+3319
+5343
+6042
+15163
+7853
+
+2549
+9485
+3150
+3717
+4202
+8582
+9314
+1959
+
+1651
+3584
+2353
+4100
+4642
+4105
+2675
+3241
+1441
+1093
+1012
+4275
+3727
+4598
+2407
+
+9617
+2108
+4265
+5498
+2914
+7770
+5898
+9319
+2295
+
+8587
+
+2644
+3717
+4921
+2297
+4454
+5287
+2479
+4581
+1824
+3108
+4297
+1055
+4726
+1859
+
+2170
+16319
+2974
+
+3092
+4627
+5913
+4495
+3009
+4501
+4341
+4668
+4858
+3240
+1347
+3448
+3748
+5811
+
+4644
+4571
+2358
+5466
+2255
+5075
+5466
+4229
+2211
+4262
+2900
+1966
+2627
+4728
+
+7682
+9016
+4473
+8449
+9257
+2068
+10641
+
+1499
+6224
+7304
+5201
+3451
+4984
+7737
+1728
+5302
+1062
+2178
+
+30845
+12424
+
+3483
+1244
+1700
+8543
+12788
+
+2430
+9187
+9178
+3168
+10377
+8889
+
+15000
+12965
+10098
+5507
+13346
+
+5401
+2056
+7490
+9384
+3312
+7124
+7199
+5571
+6029
+
+1218
+10456
+6922
+1815
+12092
+11303
+2461
+
+1766
+5195
+4704
+1476
+4579
+1104
+3018
+6172
+3826
+6543
+1323
+6306
+6367
+
+17963
+2012
+1664
+15479
+
+32869
+
+9473
+3761
+6631
+2522
+2878
+2435
+9087
+3261
+6032
+
+4461
+1087
+4793
+1273
+1848
+2882
+1662
+4454
+1347
+5600
+2619
+
+2300
+8563
+3317
+2462
+1118
+6131
+5801
+4281
+7292
+
+3848
+13902
+7899
+10164
+12727
+8578
+
+1076
+6192
+3308
+2648
+1919
+6489
+6050
+1639
+6490
+2768
+1169
+4718
+5799
+2658
+
+12611
+18417
+13289
+16060
+
+1806
+6019
+1058
+13468
+8292
+9682
+
+13648
+24310
+6025
+
+10030
+7199
+5366
+6080
+8944
+3416
+3746
+3597
+
+8809
+10699
+5362
+8302
+3712
+2911
+2598
+5279
+
+23190
+15323
+2535
+
+2663
+10325
+9513
+2403
+6443
+6731
+8188
+9559
+
+15302
+
+4544
+6035
+4595
+5512
+7162
+1160
+2866
+5003
+6449
+3936
+2083
+1154
+
+16473
+
+4333
+2861
+2754
+5775
+5774
+3313
+1763
+3326
+3888
+2639
+3981
+1788
+6272
+2151
+
+3830
+11759
+9430
+7412
+5190
+5926
+9828
+
+19524
+15948
+5297
+16516
+
+8073
+9705
+7872
+5308
+10279
+3645
+7983
+3467
+
+12230
+22031
+6843
+
+15329
+6540
+
+4960
+5485
+1829
+5062
+4777
+4193
+4594
+5705
+1282
+4546
+6063
+4304
+2533
+
+51798
+
+11965
+12511
+2156
+13850
+10025
+12395
+
+3476
+1232
+7227
+2031
+4457
+5152
+3616
+5374
+4576
+2413
+
+1045
+24929
+
+13068
+14356
+9552
+3897
+4369
+
+3172
+3437
+2380
+5542
+4850
+4325
+1065
+1051
+3385
+5905
+1182
+6138
+6487
+2307
+
+11847
+9674
+1409
+16351
+3793
+
+1567
+6941
+2520
+6617
+4815
+4700
+2297
+2336
+3626
+8035
+1777
+
+7380
+6231
+1464
+5680
+4298
+8018
+5861
+5967
+2799
+6888
+1401
+
+1944
+3424
+4104
+5697
+2082
+1829
+4128
+3775
+3450
+5312
+3475
+4868
+4857
+1469
+4757
+
+22339
+15143
+
+4573
+5384
+2968
+6696
+2208
+3068
+3104
+2654
+5539
+7329
+6127
+3874
+
+6693
+6878
+3318
+5526
+2042
+4895
+3809
+3718
+5881
+2444
+2448
+
+6304
+5014
+1337
+5766
+9098
+4456
+6604
+1722
+4674
+
+2403
+5059
+2439
+2113
+3879
+2289
+6524
+3707
+5199
+2908
+4624
+3742
+6077
+
+2717
+3042
+1843
+2403
+5750
+2473
+3017
+3407
+4392
+2513
+6913
+6585
+
+1996
+1118
+5230
+6283
+2639
+3324
+1236
+3483
+5270
+3399
+3111
+6098
+
+6418
+3395
+3771
+5816
+2494
+1049
+5846
+4483
+3137
+4445
+2248
+1216
+2499
+3556
+
+20769
+22782
+15068
+
+2645
+3388
+2219
+6061
+6664
+4330
+5003
+4035
+6370
+2023
+6309
+5013
+
+1222
+6095
+7410
+7957
+4087
+5677
+6829
+7151
+8731
+8168
+
+11570
+27420
+
+14541
+3035
+10295
+14965
+
+4122
+5939
+8715
+1188
+4674
+4654
+7742
+4976
+
+5269
+3341
+7796
+8918
+
+9598
+2036
+10718
+9696
+8890
+2709
+4114
+1940
+
+5054
+3311
+2306
+2633
+1810
+4733
+2133
+2185
+2322
+2396
+2992
+2202
+2671
+1932
+3398
+
+4357
+1706
+3417
+2442
+5608
+5032
+6296
+5015
+1874
+5295
+3812
+4698
+
+18153
+16982
+6152
+
+16245
+
+3048
+3827
+3394
+2137
+2364
+5478
+5992
+2396
+6139
+2323
+4458
+2292
+4003
+
+1561
+1154
+1545
+1144
+2206
+4454
+5640
+4697
+1908
+3175
+5130
+2386
+6358
+4169
+
+5785
+6697
+5246
+3215
+9759
+10601
+5507
+
+4892
+7629
+4323
+3881
+4247
+2154
+1352
+3468
+3053
+
+6710
+2117
+4776
+3991
+4021
+7543
+4268
+3355
+4701
+4663
+1015
+
+13221
+14163
+11213
+
+9488
+7173
+3708
+3524
+9290
+3390
+1272
+3325
+4864
+
+3098
+6656
+1387
+4710
+1962
+7262
+7442
+2097
+4544
+1976
+6250
+1974
+
+5122
+1843
+2929
+4066
+2403
+1020
+2723
+5914
+3821
+2189
+1047
+3334
+5773
+4396
+2777
+
+2073
+2094
+4901
+1093
+5029
+5458
+5963
+4011
+3454
+3174
+2086
+1451
+5640
+2311
+2511
+
+4243
+7521
+5018
+1914
+6762
+8155
+
+19726
+11376
+6504
+4086
+
+4150
+7015
+3007
+5002
+5151
+8346
+8024
+6498
+1696
+
+5404
+5249
+1474
+2284
+1642
+3323
+4110
+1796
+5132
+1940
+1266
+2679
+4027
+2289
+
+10301
+7013
+1666
+7987
+10426
+6423
+10008
+10015
+
+6115
+6361
+1902
+8036
+5703
+2771
+7330
+8606
+6447
+
+8917
+1183
+8966
+1255
+5988
+5233
+7358
+3806
+9333
diff --git a/Day 02/Day02.cs b/Advent Of Code Library/2022/Day 02/Day02.cs
similarity index 94%
rename from Day 02/Day02.cs
rename to Advent Of Code Library/2022/Day 02/Day02.cs
index 59ecffd..8879660 100644
--- a/Day 02/Day02.cs
+++ b/Advent Of Code Library/2022/Day 02/Day02.cs
@@ -1,81 +1,81 @@
-namespace Day_02.Day_02
-{
- internal class Day02
- {
- private static string inputPath = "Day 02/day-02-input.txt";
-
- private static int Win = 6, Draw = 3, Lost = 0, Rock = 1, Paper = 2, Scissors = 3;
-
- private static string OpponentRock = "A", OpponentPaper = "B", OpponentScissors = "C",
- PlayRock = "X", PlayPaper = "Y", PlayScissors = "Z",
- PlayWin = "Z", PlayDraw = "Y", PlayLose = "X";
-
- private static Dictionary PossibleScores;
-
- private static void BuildScoreDic()
- {
- if (PossibleScores == null)
- {
- PossibleScores = new Dictionary
- {
- // Rock combos
- { OpponentRock + " " + PlayPaper, Paper + Win }, // win
- { OpponentRock + " " + PlayRock, Rock + Draw }, // draw
- { OpponentRock + " " + PlayScissors, Scissors + Lost }, // lose
-
- // Paper
- { OpponentPaper + " " + PlayScissors, Scissors + Win }, // win
- { OpponentPaper + " " + PlayPaper, Paper + Draw }, // draw
- { OpponentPaper + " " + PlayRock, Rock + Lost }, // lose
-
- // Scissors
- { OpponentScissors + " " + PlayRock, Rock + Win }, // win
- { OpponentScissors + " " + PlayScissors, Scissors + Draw }, // draw
- { OpponentScissors + " " + PlayPaper, Paper + Lost } // lose
- };
- }
- }
-
- private static void BuildWinDrawLoseTable()
- {
- if (PossibleScores == null)
- {
- PossibleScores = new Dictionary
- {
- // Rock combos
- { OpponentRock + " " + PlayWin, Paper + Win }, // win
- { OpponentRock + " " + PlayDraw, Rock + Draw }, // draw
- { OpponentRock + " " + PlayLose, Scissors + Lost }, // lose
-
- // Paper
- { OpponentPaper + " " + PlayWin, Scissors + Win }, // win
- { OpponentPaper + " " + PlayDraw, Paper + Draw }, // draw
- { OpponentPaper + " " + PlayLose, Rock + Lost }, // lose
-
- // Scissors
- { OpponentScissors + " " + PlayWin, Rock + Win }, // win
- { OpponentScissors + " " + PlayDraw, Scissors + Draw }, // draw
- { OpponentScissors + " " + PlayLose, Paper + Lost } // lose
- };
- }
- }
-
- private static int GetScore(string input) => PossibleScores[input];
-
- internal static int GetPart1()
- {
- BuildScoreDic();
- return File.ReadAllLines(inputPath)
- .Select(GetScore)
- .Sum();
- }
-
- internal static int GetPart2()
- {
- BuildWinDrawLoseTable();
- return File.ReadAllLines(inputPath)
- .Select(GetScore)
- .Sum();
- }
- }
-}
+namespace Day_02.Day_02
+{
+ public class Day02
+ {
+ private static string inputPath = "Day 02/day-02-input.txt";
+
+ private static int Win = 6, Draw = 3, Lost = 0, Rock = 1, Paper = 2, Scissors = 3;
+
+ private static string OpponentRock = "A", OpponentPaper = "B", OpponentScissors = "C",
+ PlayRock = "X", PlayPaper = "Y", PlayScissors = "Z",
+ PlayWin = "Z", PlayDraw = "Y", PlayLose = "X";
+
+ private static Dictionary PossibleScores;
+
+ private static void BuildScoreDic()
+ {
+ if (PossibleScores == null)
+ {
+ PossibleScores = new Dictionary
+ {
+ // Rock combos
+ { OpponentRock + " " + PlayPaper, Paper + Win }, // win
+ { OpponentRock + " " + PlayRock, Rock + Draw }, // draw
+ { OpponentRock + " " + PlayScissors, Scissors + Lost }, // lose
+
+ // Paper
+ { OpponentPaper + " " + PlayScissors, Scissors + Win }, // win
+ { OpponentPaper + " " + PlayPaper, Paper + Draw }, // draw
+ { OpponentPaper + " " + PlayRock, Rock + Lost }, // lose
+
+ // Scissors
+ { OpponentScissors + " " + PlayRock, Rock + Win }, // win
+ { OpponentScissors + " " + PlayScissors, Scissors + Draw }, // draw
+ { OpponentScissors + " " + PlayPaper, Paper + Lost } // lose
+ };
+ }
+ }
+
+ private static void BuildWinDrawLoseTable()
+ {
+ if (PossibleScores == null)
+ {
+ PossibleScores = new Dictionary
+ {
+ // Rock combos
+ { OpponentRock + " " + PlayWin, Paper + Win }, // win
+ { OpponentRock + " " + PlayDraw, Rock + Draw }, // draw
+ { OpponentRock + " " + PlayLose, Scissors + Lost }, // lose
+
+ // Paper
+ { OpponentPaper + " " + PlayWin, Scissors + Win }, // win
+ { OpponentPaper + " " + PlayDraw, Paper + Draw }, // draw
+ { OpponentPaper + " " + PlayLose, Rock + Lost }, // lose
+
+ // Scissors
+ { OpponentScissors + " " + PlayWin, Rock + Win }, // win
+ { OpponentScissors + " " + PlayDraw, Scissors + Draw }, // draw
+ { OpponentScissors + " " + PlayLose, Paper + Lost } // lose
+ };
+ }
+ }
+
+ private static int GetScore(string input) => PossibleScores[input];
+
+ public static int GetPart1()
+ {
+ BuildScoreDic();
+ return File.ReadAllLines(inputPath)
+ .Select(GetScore)
+ .Sum();
+ }
+
+ public static int GetPart2()
+ {
+ BuildWinDrawLoseTable();
+ return File.ReadAllLines(inputPath)
+ .Select(GetScore)
+ .Sum();
+ }
+ }
+}
diff --git a/Day 02/day-02-input.txt b/Advent Of Code Library/2022/Day 02/day-02-input.txt
similarity index 80%
rename from Day 02/day-02-input.txt
rename to Advent Of Code Library/2022/Day 02/day-02-input.txt
index 6a7ec4f..cc2bfe1 100644
--- a/Day 02/day-02-input.txt
+++ b/Advent Of Code Library/2022/Day 02/day-02-input.txt
@@ -1,2500 +1,2500 @@
-A Z
-C X
-A Z
-A Z
-C Y
-C Y
-A Z
-A Y
-C Y
-A Y
-A Z
-A Z
-A Z
-A Y
-A Z
-A Y
-C Y
-C X
-A Y
-C Y
-C Y
-C X
-A Z
-C Y
-C X
-A X
-A Y
-A Z
-A Y
-A Y
-C X
-C X
-B Y
-C X
-C X
-A Y
-A Z
-A Z
-A X
-A Z
-A Z
-C Y
-A Z
-A Z
-A Y
-C X
-C Y
-C X
-B X
-C Z
-A Y
-A Z
-A Z
-A Z
-A Y
-A Y
-C X
-A Y
-A Z
-C Y
-A Y
-A Y
-A Z
-A Z
-C Y
-A Z
-C Y
-A Y
-A Z
-A Z
-C Y
-B Z
-A Z
-A Z
-A Z
-A Z
-C X
-C X
-A Y
-A X
-A Y
-A Z
-A Z
-C X
-A Z
-C X
-A Z
-C Y
-C X
-A Z
-A Z
-A Z
-A Z
-C X
-C Y
-A Z
-A Z
-C Y
-A Z
-B Z
-C X
-A Z
-A X
-C X
-A Z
-C Z
-A Z
-C X
-A Z
-A Y
-C X
-C Z
-A Z
-C X
-C Y
-A Z
-B Z
-B Y
-A X
-A X
-A X
-A Z
-A Z
-A X
-A Z
-A X
-A Z
-A Z
-C X
-C X
-B Z
-A Z
-A Y
-A Z
-A Z
-A Z
-A Z
-C X
-C X
-C X
-A Z
-A Z
-A Z
-A Z
-A X
-A Y
-A Y
-C X
-C X
-B Z
-C X
-A X
-A Z
-A Z
-C X
-C Z
-A Z
-A Z
-C Y
-A X
-A Z
-C Y
-A X
-A Y
-A Y
-A Y
-C Y
-A Z
-A Z
-C X
-C X
-C X
-C X
-B Z
-C Y
-C X
-C X
-A Y
-A Y
-A Z
-A Z
-A X
-C X
-A Z
-B Z
-A Z
-C X
-A Y
-A Z
-A Z
-A Y
-A Y
-A Z
-C X
-A Y
-C X
-C X
-A Z
-A Y
-C X
-A Z
-A Z
-A Y
-A Z
-A Z
-C Y
-C Z
-A Y
-A Z
-C X
-C X
-A Z
-A Z
-C Y
-A Y
-A Z
-A Y
-A Z
-C X
-A Z
-A Z
-C X
-A Y
-A Y
-C Y
-A Z
-C Y
-A Z
-A Z
-C Y
-A Y
-B Z
-C Y
-C X
-C X
-A Z
-C Y
-A X
-C Y
-A Z
-A Y
-A Z
-C X
-C X
-C Y
-C Y
-A Y
-A Z
-C X
-C X
-A Y
-A X
-A Y
-B Z
-A Y
-C Y
-C X
-C X
-A X
-C X
-B Z
-A X
-C Y
-C X
-C X
-A X
-A Z
-B Z
-A Z
-A Z
-A Y
-A X
-A Z
-C X
-A X
-C Y
-A Z
-A Z
-A X
-A Z
-A Z
-C X
-C X
-A Z
-A Z
-A Z
-A X
-A Z
-A X
-B Y
-A Z
-A Y
-C Y
-A Z
-C X
-A Z
-C X
-A Y
-A Z
-C X
-C Y
-A Y
-C Y
-A Z
-C X
-A Z
-A Z
-C X
-A Y
-A Z
-A X
-A Z
-A Z
-A Z
-B Y
-C X
-A X
-A Z
-A Z
-C Y
-C Y
-C X
-C X
-C X
-A X
-A X
-A Z
-A X
-A Y
-A Z
-A Y
-A Z
-C Y
-C Z
-A Y
-A Z
-A Z
-A X
-A Z
-A Z
-C X
-C Y
-A Y
-C X
-C X
-A Z
-C X
-C X
-C X
-A X
-A Z
-A Z
-A Z
-A Z
-B Y
-A Y
-A Y
-A Z
-C X
-A Y
-A Z
-C X
-A Z
-C Z
-A Y
-C X
-A Z
-B Z
-A Y
-A X
-A Z
-C X
-A Z
-A Z
-A Z
-A Z
-A Z
-B Z
-A Z
-C X
-A Y
-C X
-A Z
-A Z
-A Y
-A Z
-B Z
-C X
-A Y
-C Y
-A Z
-A Z
-C X
-C X
-A Y
-C X
-C Y
-B Z
-A Y
-C X
-A Y
-C X
-A X
-A Y
-A Z
-A Z
-A Y
-C X
-A X
-C X
-B Y
-A Z
-A Y
-B Y
-A Y
-C X
-A Z
-A Z
-C X
-C Y
-A Y
-C X
-C Y
-A Y
-A Z
-A X
-B Z
-C X
-A Z
-A Y
-A Z
-B Z
-A Z
-A X
-C Y
-A X
-A Z
-A Y
-C Y
-A Z
-C Y
-A Z
-C X
-C X
-A Y
-C X
-C X
-A Y
-A Z
-A Z
-A Y
-A X
-C Y
-A Z
-A Z
-C X
-A X
-A Z
-C Z
-A Z
-C Y
-A Z
-C X
-A Z
-A Z
-A X
-C X
-C X
-C Y
-B Z
-B Y
-C Y
-A Y
-A X
-A Z
-C X
-A Y
-A Y
-A Z
-A Z
-C Z
-C X
-C X
-C X
-A Z
-C X
-A Z
-A Z
-A Y
-C Y
-C X
-C X
-C X
-A Y
-C X
-B Z
-C X
-A Z
-C Y
-A Y
-C Y
-A Z
-A Z
-C X
-A X
-A Z
-A Y
-A Z
-B X
-C Z
-A Z
-C Z
-A X
-C X
-C X
-C X
-C X
-A Z
-A Y
-A Z
-A Z
-A Z
-A Z
-A Z
-C Z
-C Y
-C Y
-C X
-C Y
-A Z
-C X
-C X
-A Z
-A Z
-C X
-C Y
-C Y
-A Z
-A X
-C Y
-C Y
-C X
-A Y
-C X
-A Z
-A Z
-A Y
-C Y
-A Y
-C X
-C X
-A Z
-A Z
-C Y
-A Z
-C X
-A Y
-A Y
-A Z
-C Y
-A Z
-C X
-A Y
-A Z
-A Z
-A Z
-A Z
-C Y
-A Y
-C Y
-A Z
-A Z
-A X
-A Y
-A Y
-A Z
-C Y
-A Z
-A X
-A Z
-B Z
-C X
-C X
-C Y
-A Z
-A Z
-C X
-C Z
-A Z
-C X
-C Y
-A Z
-B Z
-A Z
-B Z
-A X
-A Y
-A Z
-A Z
-A Z
-A Z
-C Y
-A Z
-A Z
-A Z
-B Z
-A Z
-C X
-C X
-A Z
-C X
-A X
-A Z
-A Y
-A Y
-A X
-A Z
-A Z
-A Z
-A Z
-B Z
-A Z
-C Y
-C Y
-C X
-C X
-B Z
-C Y
-A Z
-C Y
-A Z
-A Y
-C Y
-A X
-A Y
-C X
-A Y
-C X
-A Z
-A Z
-B Z
-A Y
-C Y
-C X
-A Z
-A Z
-C X
-A Y
-A Z
-A Z
-A X
-A Y
-A Y
-A Y
-A Z
-A Y
-A Z
-C X
-A X
-A Z
-A Z
-C Y
-A Z
-C X
-A Z
-C Y
-A Y
-A Z
-A Z
-A Z
-A Z
-C Y
-A X
-A Z
-A Z
-A Y
-A Z
-B Z
-A X
-A Y
-C X
-C X
-A Y
-A Z
-C Y
-A Z
-A Y
-A Y
-A Z
-A Y
-A Y
-A Z
-A Z
-A Z
-C X
-A Z
-A Y
-A Z
-A Z
-C Y
-A Z
-C X
-A Y
-C X
-C Y
-A Z
-C Y
-A Z
-A Y
-C Y
-C Y
-A Z
-C X
-C X
-C X
-A Z
-A Z
-A Y
-C X
-A Z
-A X
-A Z
-A Z
-C X
-A Z
-C Y
-A Y
-A Z
-A Y
-A Z
-A Z
-C Y
-A Z
-C X
-A Z
-A X
-A Z
-A Z
-C X
-A Z
-A Z
-C Y
-C X
-A Z
-C Y
-C X
-C X
-A Z
-A Z
-A Z
-A X
-C X
-A Z
-A Z
-C Y
-A Y
-C X
-A Y
-C X
-C Y
-A Y
-A Z
-C X
-A Z
-B Y
-A X
-B Z
-A Y
-A X
-C Y
-A Z
-A X
-A Z
-A Z
-C Y
-A Z
-B Z
-C X
-C X
-B Y
-A Z
-A Z
-A Z
-C Y
-C X
-A Z
-A Y
-A Y
-A Y
-C Y
-C X
-A Z
-A X
-A X
-A X
-A Z
-A Z
-A Z
-A Z
-C X
-C X
-A Z
-C X
-A Y
-C X
-B Z
-A Z
-A Z
-C X
-A Z
-C X
-C X
-C X
-A Y
-C Y
-C X
-A Y
-C X
-C Y
-B Z
-A Z
-C X
-A Z
-A X
-B Z
-A Y
-B Y
-A Z
-A Z
-A X
-A Z
-A X
-A Z
-A Z
-C X
-C Y
-A X
-C Y
-C X
-A Z
-A Z
-A Z
-C Y
-A X
-A Y
-A Z
-A Y
-C X
-B Z
-A Z
-A Y
-C Z
-C X
-A Z
-A Z
-A Z
-B Z
-A X
-C X
-A Z
-A Z
-B Z
-A Z
-A Z
-B Z
-A Z
-C X
-A Z
-C X
-A Z
-C X
-A Z
-C Y
-A Z
-A X
-A Y
-A Y
-C X
-A Y
-C X
-B Z
-A Z
-A Z
-A Z
-A Z
-C X
-A Z
-C X
-A Z
-A Y
-A Z
-B Z
-A Y
-C Z
-A Y
-C X
-A Z
-A Z
-A Y
-B Z
-A X
-C Y
-A Z
-A Y
-A Z
-A Y
-A Y
-A Z
-A Z
-A Z
-A X
-A Z
-C Y
-A Y
-A X
-A Y
-C X
-A Y
-C X
-A X
-C X
-A Z
-C Y
-A Y
-A Z
-A Z
-A X
-A Y
-C X
-C X
-A Y
-A X
-A Z
-B Z
-A Y
-A Z
-A X
-A Z
-B Y
-A Y
-A Y
-A Z
-C X
-A Z
-A Z
-A Y
-A Z
-C Z
-A Z
-A Z
-A Z
-A Z
-C Y
-C Y
-A Y
-B Z
-C Y
-A Y
-C Y
-A Z
-A Z
-A Z
-A Z
-C Y
-A Z
-A Z
-C Y
-C X
-A Y
-A Y
-A Z
-C X
-C Z
-C X
-C X
-A Z
-A Z
-A Y
-A Z
-A X
-C Y
-A Z
-A Z
-C Y
-C X
-A X
-A Z
-A Z
-A X
-C X
-C X
-C X
-A Z
-A X
-C X
-C Y
-A X
-A Z
-C X
-A Z
-A Z
-C X
-A Y
-A Z
-A Z
-A Y
-A Z
-C X
-A Z
-A Z
-C X
-A Y
-A Z
-A Z
-C X
-A Z
-A Y
-A Z
-C Y
-A X
-A Z
-A Z
-C X
-A Z
-A Y
-C Y
-B Z
-A Z
-A Y
-C X
-A Z
-B Z
-A Z
-C Z
-A X
-A Z
-A Z
-C Y
-A Z
-A Y
-C X
-C Y
-A Z
-A Z
-A Y
-A X
-C Y
-A Y
-C X
-C Y
-A Z
-C Y
-A Z
-C X
-A Z
-A Z
-A X
-A Z
-A Z
-B X
-A X
-A Z
-C Y
-A Z
-A X
-C X
-A Z
-A Z
-C X
-C Y
-C Y
-A X
-A Y
-C Y
-A Y
-A Z
-A Z
-A Z
-A Z
-A Y
-C X
-C X
-C Y
-C X
-A Z
-A X
-B Z
-B Y
-C X
-C Y
-A Y
-A Z
-A Y
-C X
-C Z
-A Z
-A Y
-C Y
-C X
-A Z
-A Z
-A Y
-C X
-C Z
-C Y
-A Z
-C X
-C Y
-A X
-A X
-A Y
-A Z
-B Z
-A X
-A Y
-A Y
-C X
-C Y
-A Z
-A X
-A Z
-A X
-A Y
-A Z
-A Z
-A Z
-C X
-A Z
-A Z
-A Z
-C Z
-C Y
-C Y
-A Z
-C Y
-C Y
-C Y
-C X
-A Z
-C X
-C X
-A Z
-A Y
-A Z
-A Z
-A X
-A Y
-A Y
-C X
-C X
-A Z
-A Z
-A Z
-A Z
-A Y
-A Z
-A Z
-A Z
-A Z
-A X
-A X
-A Y
-A X
-C Y
-A Y
-A Z
-C X
-A Y
-A Y
-A Z
-A Z
-A Z
-C X
-A Z
-C X
-C X
-C Y
-A Y
-A Z
-A Y
-A Z
-C X
-C X
-A Z
-A Z
-A Z
-C X
-A X
-A Z
-A Z
-C Y
-C Y
-A Y
-A Y
-A Z
-A Z
-C Y
-C X
-C Y
-A X
-C Y
-C X
-C Y
-A Z
-A Z
-A X
-C Y
-C Y
-A Z
-A Y
-C X
-A X
-B Z
-A Z
-C X
-A Y
-A X
-A Z
-A Z
-A Z
-C Y
-C X
-A Z
-C X
-A Z
-A Z
-A Y
-A Z
-A Y
-A X
-A Z
-C Z
-A Z
-A Z
-A Z
-A X
-A Z
-A X
-C X
-A Z
-A Z
-C Y
-A X
-A Z
-C X
-C X
-A Y
-A Z
-A Z
-C X
-B X
-A Z
-C Y
-A Z
-C X
-A Y
-A Z
-C X
-A X
-A Z
-A X
-A Z
-C X
-A Z
-A X
-A Z
-C X
-C Y
-A Y
-A X
-A X
-A Z
-C Y
-C Y
-A Y
-A Y
-A Y
-A X
-A Z
-A Z
-A Z
-C Y
-C Y
-A Y
-B X
-B X
-A Z
-C X
-C X
-A Z
-C Y
-C X
-A Z
-A Z
-A Z
-A Z
-C X
-A Z
-A Z
-C Y
-A Y
-C Y
-A Z
-C Y
-C Y
-A Z
-C X
-A Z
-A X
-A Z
-C X
-C X
-A Y
-B Z
-A Y
-C Y
-A Z
-C Y
-A X
-C X
-A Y
-C X
-A Z
-C Z
-C Y
-A Z
-C X
-C Y
-A Z
-A X
-A Z
-A Z
-A Z
-C X
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Y
-A Z
-A X
-A Y
-C Y
-B Y
-C X
-B Z
-A Z
-A Z
-A Y
-B Z
-A Z
-A Z
-C X
-C Y
-C X
-A Y
-A X
-C X
-C Y
-A Y
-C X
-C Y
-A Z
-A Z
-A Z
-A Y
-C X
-A Y
-C X
-B Z
-A Z
-A Y
-A Z
-A Z
-A Y
-C X
-A Z
-C X
-C Y
-A Y
-A Z
-B Z
-C X
-A Y
-C X
-A Y
-A Z
-C X
-A X
-C X
-B Y
-C X
-A Z
-A Y
-A Z
-A Y
-A X
-C X
-C X
-A Y
-C X
-A Y
-A Y
-A X
-B Y
-A Y
-C X
-C X
-A Y
-B Z
-B X
-B Z
-A Y
-A Z
-C Y
-A Y
-B Y
-A Z
-C X
-A Z
-A Z
-A Z
-A Z
-B Z
-C X
-C Y
-A Z
-C Y
-C Y
-A X
-C X
-A Z
-A Z
-A Z
-C X
-C X
-C X
-A Y
-C Z
-C Z
-A Z
-C X
-A Y
-A Z
-A Z
-A Z
-C X
-A Z
-A X
-A Z
-A Z
-A Z
-A Z
-A Y
-C Y
-C X
-A X
-A Y
-C X
-A X
-A Z
-A Z
-C X
-A Z
-A X
-A Z
-A Z
-A X
-A Z
-A Z
-A X
-A Z
-A X
-B Y
-A Y
-A Y
-C Y
-A Z
-A Y
-C X
-A Z
-A Y
-A X
-C Y
-B X
-C Y
-A Z
-C X
-A Y
-A Z
-A Y
-A X
-C Y
-A Z
-A Z
-C Y
-C X
-A Z
-C X
-A Y
-C X
-A Z
-A Y
-A Z
-A Z
-A Z
-A Y
-A Z
-C X
-C X
-A X
-C X
-C X
-A Z
-C X
-A Z
-C Y
-C X
-A Z
-A Z
-A Z
-C X
-A X
-C Y
-A Z
-C Y
-A X
-A Z
-C X
-A Z
-A Z
-A X
-A Z
-C X
-B X
-A Z
-A Z
-A Z
-C X
-A Y
-A Y
-A X
-C Y
-C Y
-A Z
-A Y
-A Z
-A Z
-C X
-A X
-A Y
-A Z
-A Z
-A Z
-A Z
-B Z
-C X
-C X
-C X
-A Z
-C Z
-A X
-C X
-A Z
-C Y
-A Z
-A Z
-A Y
-A Y
-C X
-A Z
-A X
-A Z
-A Z
-A Z
-A Z
-C Y
-A Z
-A Y
-A X
-A X
-A Z
-C X
-A X
-A X
-A Z
-A Y
-C X
-A Z
-A Z
-A Y
-A Z
-B Z
-C X
-C X
-C Z
-C Y
-C X
-A Z
-C Y
-A Z
-C Z
-A Z
-A Y
-A Y
-A X
-A X
-A Z
-A Y
-A Y
-A Y
-A Y
-A Z
-C Y
-A Z
-A Z
-C X
-A Z
-A Z
-C Y
-A Y
-C X
-A Y
-C X
-A Z
-B Z
-A X
-B X
-A Y
-A X
-A Y
-B Z
-A Y
-A Z
-C Y
-C Y
-A Z
-A X
-A Z
-A Z
-C Z
-A Z
-A Y
-C X
-A Y
-C X
-A X
-A Y
-C Y
-A Y
-A Z
-A Z
-C X
-C X
-B Z
-A Z
-A Z
-A X
-C X
-C Y
-A Z
-A Z
-A X
-C X
-C Z
-A Z
-C Y
-A Y
-B Z
-C Y
-A Z
-C X
-A X
-A Z
-A Z
-A Z
-A Y
-C Y
-A Z
-C Y
-A Z
-A Z
-A Z
-A Z
-A Y
-C X
-A Y
-C Y
-B Z
-A Z
-C X
-C Y
-A Z
-C X
-A Z
-C X
-C Z
-A Z
-C X
-C X
-A Z
-A Z
-A Y
-A Y
-A Y
-C X
-A Y
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Y
-A Z
-A X
-C Y
-A Z
-A Z
-A Z
-A Y
-A Z
-A Z
-A Z
-A Z
-C X
-B Z
-A Z
-A Y
-A Y
-A X
-A Z
-A Z
-C Z
-A Z
-C X
-A Y
-A X
-B Z
-A Z
-A Z
-A Z
-C Y
-C Z
-C X
-A Z
-C Y
-C Y
-C Y
-C X
-B Z
-A Z
-A Z
-C Z
-A X
-A Z
-A Z
-A Z
-C X
-A Z
-A Z
-C Y
-C Y
-A Z
-A Z
-C X
-A Y
-C Y
-C Y
-A Z
-A Z
-A X
-A Z
-A Z
-A X
-A X
-C X
-A Z
-A X
-C X
-C X
-A Z
-A X
-A Z
-C X
-C X
-C X
-C Y
-A Z
-A Z
-A X
-A Z
-A Y
-A Z
-A Z
-C Y
-A Z
-A Z
-A Z
-A X
-A Z
-C X
-A X
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Y
-A X
-A Y
-A X
-C Y
-A Z
-A Z
-C X
-A Z
-A Z
-A Z
-A X
-A Z
-A Z
-A Y
-C X
-A Y
-A Z
-C X
-A X
-A Y
-A Z
-A Z
-A X
-A Z
-A Y
-C X
-A Y
-A Z
-A Z
-A Z
-A Z
-C X
-C Y
-A Z
-B Z
-C X
-A Z
-A Z
-C Y
-C Y
-C X
-A X
-C Y
-B Y
-A Z
-A Z
-A Z
-C Y
-A Z
-A X
-A Y
-A Z
-A Z
-A Z
-C Y
-A Z
-C Y
-C X
-A Z
-A Z
-A Z
-A Z
-A Z
-A X
-A Z
-A Z
-C X
-A Z
-A Y
-C Z
-A Z
-A Z
-A Z
-B X
-C X
-A Z
-A Z
-A Z
-A Z
-C X
-A Z
-A Z
-A Y
-A X
-C X
-C Y
-A X
-A Y
-C X
-A Z
-A Z
-C X
-C X
-A Z
-C X
-A Z
-A Y
-C X
-A Z
-B X
-B Y
-A X
-C Y
-A X
-A Y
-C Y
-A Z
-A Z
-A Z
-C X
-A Z
-A X
-A Z
-C Y
-A Z
-A Z
-C X
-A Z
-A Z
-A Y
-A Z
-A X
-A Y
-A Z
-C X
-C Y
-B X
-C Y
-A Y
-A Z
-C X
-A Z
-C X
-C Y
-A X
-A X
-A Z
-A Z
-C Y
-A Y
-A Y
-A Z
-A Z
-C X
-A X
-C X
-A X
-A Y
-C X
-A Z
-A Z
-B Y
-A Z
-A Z
-A Z
-A Z
-A Z
-A X
-A Y
-A X
-A Z
-A Z
-C X
-A Y
-A Z
-C Y
-C X
-C X
-C X
-C X
-C Y
-A X
-A X
-C Y
-A X
-A Y
-A Y
-B Z
-A Z
-B Y
-C Y
-A X
-A Y
-A Z
-A Z
-A Z
-A X
-C X
-A Z
-A Z
-A Z
-A Z
-A Z
-A Y
-A Z
-B Z
-A Z
-A Z
-A Y
-C Y
-C Y
-C X
-A Z
-A X
-C X
-A Y
-B Z
-C X
-A Z
-C X
-C Y
-C Y
-A X
-A X
-C X
-A Z
-A Z
-A Y
-A X
-A X
-A Z
-C Y
-B X
-A Z
-A Z
-A Z
-A Z
-A Y
-A Y
-A Z
-C Y
-C Y
-A X
-A Z
-A Z
-C Y
-A Y
-A Y
-A X
-A Y
-A X
-A X
-A X
-A Z
-A Z
-A Y
-A Z
-C X
-A Z
-A Y
-A Z
-A Z
-A Y
-A Z
-A Z
-C X
-A Z
-A Y
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Y
-C X
-B Z
-C Z
-A Z
-A Y
-A X
-A X
-C Y
-C Y
-A X
-C X
-B Z
-A Z
-C X
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Y
-A Z
-A Z
-A Y
-A Z
-A Y
-A Y
-A Z
-A Z
-A Y
-A Z
-C Y
-A Z
-A Z
-A Z
-C X
-C X
-A Z
-C Y
-A Z
-A Z
-C X
-A Z
-C X
-A Y
-A Z
-C Y
-A Z
-A Z
-C X
-C Y
-A Z
-C X
-C X
-A X
-A Y
-C Y
-A Y
-A Z
-C X
-A Z
-A Z
-A X
-A Z
-C Y
-A Z
-C X
-A Z
-C X
-A Z
-C X
-A Y
-C Y
-A X
-A Z
-A Z
-C Y
-A X
-A Z
-A Y
-B Z
-A Z
-A X
-A Z
-A Z
-A X
-C X
-A Z
-A Z
-C Y
-A Z
-A Y
-A Z
-C Y
-A Z
-A Y
-A Z
-C Z
-A Y
-A Z
-A Y
-C Y
-A Z
-C X
-A X
-B Z
-C X
-C X
-A Z
-A Z
-A Y
-A X
-A Z
-A Z
-B Z
-A Z
-C Z
-A X
-A Z
-A Z
-A Z
-A Z
-A X
-A X
-A Z
-A X
-A Z
-A Z
-A Z
-A X
-C X
-C Y
-A X
-C X
-C X
-A Z
-A X
-C Y
-B Z
-A Z
-A Z
-C X
-B X
-A Z
-A Z
-C X
-C X
-B Z
-C Y
-A Z
-A Z
-C X
-A X
-A Y
-C Y
-C Y
-B Z
-A Y
-C X
-A Z
-A Z
-A Y
-C X
-A Z
-A Z
-C X
-C Y
-A Z
-C X
-C Y
-C Y
-C X
-C Y
-A Z
-C Y
-A Z
-C X
-A Z
-C Y
-C Z
-A Z
-B Z
-A Z
-C X
-C X
-B Y
-B Z
-C Y
-C X
-C X
-A Y
-C X
-C X
-A Z
-A Y
-A Z
-C X
-A X
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-C X
-C X
-A Z
-C Y
-C X
-A Z
-B Z
-A Z
-A Z
-A X
-C X
-A Y
-A Z
-A Z
-A Y
-A X
-C Y
-B X
-A Z
-A X
-C Y
-C X
-C X
-C Y
-C Y
-A Z
-A Z
-C Y
-A Z
-A Y
-C Y
-A Y
-C X
-A Z
-C X
-C Y
-C Y
-A Z
-A Z
-A X
-A Y
-A Z
-A X
-A Z
-A Z
-A Z
-C Y
-A Z
-A Z
-C X
-C Y
-A Z
-A Z
-A Z
-C Y
-C X
-A Z
-C X
-A Z
-A Z
-A Z
-A X
-A Z
-A Z
-A Y
-B Z
-A Z
-A Z
-A Z
-C Y
-A Z
-B Z
-A Z
-C Z
-A Z
-A Y
-C X
-C Y
-C X
-C X
-A Z
-A Z
-A Y
-A Y
-A Z
-A Y
-B Z
-C Y
-A Y
-A Z
-C X
-A Z
-A Z
-C Y
-A Y
-A Z
-A Y
-C Y
-A Z
-A Z
-A X
-B Z
-A Z
-A X
-C X
-A Z
-C Y
-C Y
-A Z
-B Y
-A Y
-A Z
-A Z
-A Z
-A Z
-C X
-C X
-A Z
-C X
-A Y
-A Z
-A Z
-C Y
-A Z
-A Z
-C Y
-C X
-B Z
-A Y
-A Y
-C X
-C X
-A Z
-A X
-B Z
-A Z
-C Y
-A Z
-A Y
-A Z
-A Z
-A Y
-C Y
-C X
-A Z
-C X
-A Z
-C Y
-A Z
-C Y
-A Y
-A Z
-A Y
-A Z
-C X
-A Z
-A Z
-C X
-A Z
-B Y
-A Z
-A Z
-C Y
-C X
-C X
-A Z
-A Z
-C X
-B Z
-A Y
-A Z
-A Y
-A Z
-A Z
-A Y
-A X
-C X
-C X
-A X
-A Z
-A Y
-A Y
-A Z
-A Y
-A Z
-A Z
-C Y
-A X
-A Z
-A Z
-C X
-A Z
-A X
-B X
-C X
-A Z
-A Y
-B Z
-C X
-C Y
-A Z
-B Z
-C Y
-A Z
-A Z
-A X
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
-A Z
+A Z
+C X
+A Z
+A Z
+C Y
+C Y
+A Z
+A Y
+C Y
+A Y
+A Z
+A Z
+A Z
+A Y
+A Z
+A Y
+C Y
+C X
+A Y
+C Y
+C Y
+C X
+A Z
+C Y
+C X
+A X
+A Y
+A Z
+A Y
+A Y
+C X
+C X
+B Y
+C X
+C X
+A Y
+A Z
+A Z
+A X
+A Z
+A Z
+C Y
+A Z
+A Z
+A Y
+C X
+C Y
+C X
+B X
+C Z
+A Y
+A Z
+A Z
+A Z
+A Y
+A Y
+C X
+A Y
+A Z
+C Y
+A Y
+A Y
+A Z
+A Z
+C Y
+A Z
+C Y
+A Y
+A Z
+A Z
+C Y
+B Z
+A Z
+A Z
+A Z
+A Z
+C X
+C X
+A Y
+A X
+A Y
+A Z
+A Z
+C X
+A Z
+C X
+A Z
+C Y
+C X
+A Z
+A Z
+A Z
+A Z
+C X
+C Y
+A Z
+A Z
+C Y
+A Z
+B Z
+C X
+A Z
+A X
+C X
+A Z
+C Z
+A Z
+C X
+A Z
+A Y
+C X
+C Z
+A Z
+C X
+C Y
+A Z
+B Z
+B Y
+A X
+A X
+A X
+A Z
+A Z
+A X
+A Z
+A X
+A Z
+A Z
+C X
+C X
+B Z
+A Z
+A Y
+A Z
+A Z
+A Z
+A Z
+C X
+C X
+C X
+A Z
+A Z
+A Z
+A Z
+A X
+A Y
+A Y
+C X
+C X
+B Z
+C X
+A X
+A Z
+A Z
+C X
+C Z
+A Z
+A Z
+C Y
+A X
+A Z
+C Y
+A X
+A Y
+A Y
+A Y
+C Y
+A Z
+A Z
+C X
+C X
+C X
+C X
+B Z
+C Y
+C X
+C X
+A Y
+A Y
+A Z
+A Z
+A X
+C X
+A Z
+B Z
+A Z
+C X
+A Y
+A Z
+A Z
+A Y
+A Y
+A Z
+C X
+A Y
+C X
+C X
+A Z
+A Y
+C X
+A Z
+A Z
+A Y
+A Z
+A Z
+C Y
+C Z
+A Y
+A Z
+C X
+C X
+A Z
+A Z
+C Y
+A Y
+A Z
+A Y
+A Z
+C X
+A Z
+A Z
+C X
+A Y
+A Y
+C Y
+A Z
+C Y
+A Z
+A Z
+C Y
+A Y
+B Z
+C Y
+C X
+C X
+A Z
+C Y
+A X
+C Y
+A Z
+A Y
+A Z
+C X
+C X
+C Y
+C Y
+A Y
+A Z
+C X
+C X
+A Y
+A X
+A Y
+B Z
+A Y
+C Y
+C X
+C X
+A X
+C X
+B Z
+A X
+C Y
+C X
+C X
+A X
+A Z
+B Z
+A Z
+A Z
+A Y
+A X
+A Z
+C X
+A X
+C Y
+A Z
+A Z
+A X
+A Z
+A Z
+C X
+C X
+A Z
+A Z
+A Z
+A X
+A Z
+A X
+B Y
+A Z
+A Y
+C Y
+A Z
+C X
+A Z
+C X
+A Y
+A Z
+C X
+C Y
+A Y
+C Y
+A Z
+C X
+A Z
+A Z
+C X
+A Y
+A Z
+A X
+A Z
+A Z
+A Z
+B Y
+C X
+A X
+A Z
+A Z
+C Y
+C Y
+C X
+C X
+C X
+A X
+A X
+A Z
+A X
+A Y
+A Z
+A Y
+A Z
+C Y
+C Z
+A Y
+A Z
+A Z
+A X
+A Z
+A Z
+C X
+C Y
+A Y
+C X
+C X
+A Z
+C X
+C X
+C X
+A X
+A Z
+A Z
+A Z
+A Z
+B Y
+A Y
+A Y
+A Z
+C X
+A Y
+A Z
+C X
+A Z
+C Z
+A Y
+C X
+A Z
+B Z
+A Y
+A X
+A Z
+C X
+A Z
+A Z
+A Z
+A Z
+A Z
+B Z
+A Z
+C X
+A Y
+C X
+A Z
+A Z
+A Y
+A Z
+B Z
+C X
+A Y
+C Y
+A Z
+A Z
+C X
+C X
+A Y
+C X
+C Y
+B Z
+A Y
+C X
+A Y
+C X
+A X
+A Y
+A Z
+A Z
+A Y
+C X
+A X
+C X
+B Y
+A Z
+A Y
+B Y
+A Y
+C X
+A Z
+A Z
+C X
+C Y
+A Y
+C X
+C Y
+A Y
+A Z
+A X
+B Z
+C X
+A Z
+A Y
+A Z
+B Z
+A Z
+A X
+C Y
+A X
+A Z
+A Y
+C Y
+A Z
+C Y
+A Z
+C X
+C X
+A Y
+C X
+C X
+A Y
+A Z
+A Z
+A Y
+A X
+C Y
+A Z
+A Z
+C X
+A X
+A Z
+C Z
+A Z
+C Y
+A Z
+C X
+A Z
+A Z
+A X
+C X
+C X
+C Y
+B Z
+B Y
+C Y
+A Y
+A X
+A Z
+C X
+A Y
+A Y
+A Z
+A Z
+C Z
+C X
+C X
+C X
+A Z
+C X
+A Z
+A Z
+A Y
+C Y
+C X
+C X
+C X
+A Y
+C X
+B Z
+C X
+A Z
+C Y
+A Y
+C Y
+A Z
+A Z
+C X
+A X
+A Z
+A Y
+A Z
+B X
+C Z
+A Z
+C Z
+A X
+C X
+C X
+C X
+C X
+A Z
+A Y
+A Z
+A Z
+A Z
+A Z
+A Z
+C Z
+C Y
+C Y
+C X
+C Y
+A Z
+C X
+C X
+A Z
+A Z
+C X
+C Y
+C Y
+A Z
+A X
+C Y
+C Y
+C X
+A Y
+C X
+A Z
+A Z
+A Y
+C Y
+A Y
+C X
+C X
+A Z
+A Z
+C Y
+A Z
+C X
+A Y
+A Y
+A Z
+C Y
+A Z
+C X
+A Y
+A Z
+A Z
+A Z
+A Z
+C Y
+A Y
+C Y
+A Z
+A Z
+A X
+A Y
+A Y
+A Z
+C Y
+A Z
+A X
+A Z
+B Z
+C X
+C X
+C Y
+A Z
+A Z
+C X
+C Z
+A Z
+C X
+C Y
+A Z
+B Z
+A Z
+B Z
+A X
+A Y
+A Z
+A Z
+A Z
+A Z
+C Y
+A Z
+A Z
+A Z
+B Z
+A Z
+C X
+C X
+A Z
+C X
+A X
+A Z
+A Y
+A Y
+A X
+A Z
+A Z
+A Z
+A Z
+B Z
+A Z
+C Y
+C Y
+C X
+C X
+B Z
+C Y
+A Z
+C Y
+A Z
+A Y
+C Y
+A X
+A Y
+C X
+A Y
+C X
+A Z
+A Z
+B Z
+A Y
+C Y
+C X
+A Z
+A Z
+C X
+A Y
+A Z
+A Z
+A X
+A Y
+A Y
+A Y
+A Z
+A Y
+A Z
+C X
+A X
+A Z
+A Z
+C Y
+A Z
+C X
+A Z
+C Y
+A Y
+A Z
+A Z
+A Z
+A Z
+C Y
+A X
+A Z
+A Z
+A Y
+A Z
+B Z
+A X
+A Y
+C X
+C X
+A Y
+A Z
+C Y
+A Z
+A Y
+A Y
+A Z
+A Y
+A Y
+A Z
+A Z
+A Z
+C X
+A Z
+A Y
+A Z
+A Z
+C Y
+A Z
+C X
+A Y
+C X
+C Y
+A Z
+C Y
+A Z
+A Y
+C Y
+C Y
+A Z
+C X
+C X
+C X
+A Z
+A Z
+A Y
+C X
+A Z
+A X
+A Z
+A Z
+C X
+A Z
+C Y
+A Y
+A Z
+A Y
+A Z
+A Z
+C Y
+A Z
+C X
+A Z
+A X
+A Z
+A Z
+C X
+A Z
+A Z
+C Y
+C X
+A Z
+C Y
+C X
+C X
+A Z
+A Z
+A Z
+A X
+C X
+A Z
+A Z
+C Y
+A Y
+C X
+A Y
+C X
+C Y
+A Y
+A Z
+C X
+A Z
+B Y
+A X
+B Z
+A Y
+A X
+C Y
+A Z
+A X
+A Z
+A Z
+C Y
+A Z
+B Z
+C X
+C X
+B Y
+A Z
+A Z
+A Z
+C Y
+C X
+A Z
+A Y
+A Y
+A Y
+C Y
+C X
+A Z
+A X
+A X
+A X
+A Z
+A Z
+A Z
+A Z
+C X
+C X
+A Z
+C X
+A Y
+C X
+B Z
+A Z
+A Z
+C X
+A Z
+C X
+C X
+C X
+A Y
+C Y
+C X
+A Y
+C X
+C Y
+B Z
+A Z
+C X
+A Z
+A X
+B Z
+A Y
+B Y
+A Z
+A Z
+A X
+A Z
+A X
+A Z
+A Z
+C X
+C Y
+A X
+C Y
+C X
+A Z
+A Z
+A Z
+C Y
+A X
+A Y
+A Z
+A Y
+C X
+B Z
+A Z
+A Y
+C Z
+C X
+A Z
+A Z
+A Z
+B Z
+A X
+C X
+A Z
+A Z
+B Z
+A Z
+A Z
+B Z
+A Z
+C X
+A Z
+C X
+A Z
+C X
+A Z
+C Y
+A Z
+A X
+A Y
+A Y
+C X
+A Y
+C X
+B Z
+A Z
+A Z
+A Z
+A Z
+C X
+A Z
+C X
+A Z
+A Y
+A Z
+B Z
+A Y
+C Z
+A Y
+C X
+A Z
+A Z
+A Y
+B Z
+A X
+C Y
+A Z
+A Y
+A Z
+A Y
+A Y
+A Z
+A Z
+A Z
+A X
+A Z
+C Y
+A Y
+A X
+A Y
+C X
+A Y
+C X
+A X
+C X
+A Z
+C Y
+A Y
+A Z
+A Z
+A X
+A Y
+C X
+C X
+A Y
+A X
+A Z
+B Z
+A Y
+A Z
+A X
+A Z
+B Y
+A Y
+A Y
+A Z
+C X
+A Z
+A Z
+A Y
+A Z
+C Z
+A Z
+A Z
+A Z
+A Z
+C Y
+C Y
+A Y
+B Z
+C Y
+A Y
+C Y
+A Z
+A Z
+A Z
+A Z
+C Y
+A Z
+A Z
+C Y
+C X
+A Y
+A Y
+A Z
+C X
+C Z
+C X
+C X
+A Z
+A Z
+A Y
+A Z
+A X
+C Y
+A Z
+A Z
+C Y
+C X
+A X
+A Z
+A Z
+A X
+C X
+C X
+C X
+A Z
+A X
+C X
+C Y
+A X
+A Z
+C X
+A Z
+A Z
+C X
+A Y
+A Z
+A Z
+A Y
+A Z
+C X
+A Z
+A Z
+C X
+A Y
+A Z
+A Z
+C X
+A Z
+A Y
+A Z
+C Y
+A X
+A Z
+A Z
+C X
+A Z
+A Y
+C Y
+B Z
+A Z
+A Y
+C X
+A Z
+B Z
+A Z
+C Z
+A X
+A Z
+A Z
+C Y
+A Z
+A Y
+C X
+C Y
+A Z
+A Z
+A Y
+A X
+C Y
+A Y
+C X
+C Y
+A Z
+C Y
+A Z
+C X
+A Z
+A Z
+A X
+A Z
+A Z
+B X
+A X
+A Z
+C Y
+A Z
+A X
+C X
+A Z
+A Z
+C X
+C Y
+C Y
+A X
+A Y
+C Y
+A Y
+A Z
+A Z
+A Z
+A Z
+A Y
+C X
+C X
+C Y
+C X
+A Z
+A X
+B Z
+B Y
+C X
+C Y
+A Y
+A Z
+A Y
+C X
+C Z
+A Z
+A Y
+C Y
+C X
+A Z
+A Z
+A Y
+C X
+C Z
+C Y
+A Z
+C X
+C Y
+A X
+A X
+A Y
+A Z
+B Z
+A X
+A Y
+A Y
+C X
+C Y
+A Z
+A X
+A Z
+A X
+A Y
+A Z
+A Z
+A Z
+C X
+A Z
+A Z
+A Z
+C Z
+C Y
+C Y
+A Z
+C Y
+C Y
+C Y
+C X
+A Z
+C X
+C X
+A Z
+A Y
+A Z
+A Z
+A X
+A Y
+A Y
+C X
+C X
+A Z
+A Z
+A Z
+A Z
+A Y
+A Z
+A Z
+A Z
+A Z
+A X
+A X
+A Y
+A X
+C Y
+A Y
+A Z
+C X
+A Y
+A Y
+A Z
+A Z
+A Z
+C X
+A Z
+C X
+C X
+C Y
+A Y
+A Z
+A Y
+A Z
+C X
+C X
+A Z
+A Z
+A Z
+C X
+A X
+A Z
+A Z
+C Y
+C Y
+A Y
+A Y
+A Z
+A Z
+C Y
+C X
+C Y
+A X
+C Y
+C X
+C Y
+A Z
+A Z
+A X
+C Y
+C Y
+A Z
+A Y
+C X
+A X
+B Z
+A Z
+C X
+A Y
+A X
+A Z
+A Z
+A Z
+C Y
+C X
+A Z
+C X
+A Z
+A Z
+A Y
+A Z
+A Y
+A X
+A Z
+C Z
+A Z
+A Z
+A Z
+A X
+A Z
+A X
+C X
+A Z
+A Z
+C Y
+A X
+A Z
+C X
+C X
+A Y
+A Z
+A Z
+C X
+B X
+A Z
+C Y
+A Z
+C X
+A Y
+A Z
+C X
+A X
+A Z
+A X
+A Z
+C X
+A Z
+A X
+A Z
+C X
+C Y
+A Y
+A X
+A X
+A Z
+C Y
+C Y
+A Y
+A Y
+A Y
+A X
+A Z
+A Z
+A Z
+C Y
+C Y
+A Y
+B X
+B X
+A Z
+C X
+C X
+A Z
+C Y
+C X
+A Z
+A Z
+A Z
+A Z
+C X
+A Z
+A Z
+C Y
+A Y
+C Y
+A Z
+C Y
+C Y
+A Z
+C X
+A Z
+A X
+A Z
+C X
+C X
+A Y
+B Z
+A Y
+C Y
+A Z
+C Y
+A X
+C X
+A Y
+C X
+A Z
+C Z
+C Y
+A Z
+C X
+C Y
+A Z
+A X
+A Z
+A Z
+A Z
+C X
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Y
+A Z
+A X
+A Y
+C Y
+B Y
+C X
+B Z
+A Z
+A Z
+A Y
+B Z
+A Z
+A Z
+C X
+C Y
+C X
+A Y
+A X
+C X
+C Y
+A Y
+C X
+C Y
+A Z
+A Z
+A Z
+A Y
+C X
+A Y
+C X
+B Z
+A Z
+A Y
+A Z
+A Z
+A Y
+C X
+A Z
+C X
+C Y
+A Y
+A Z
+B Z
+C X
+A Y
+C X
+A Y
+A Z
+C X
+A X
+C X
+B Y
+C X
+A Z
+A Y
+A Z
+A Y
+A X
+C X
+C X
+A Y
+C X
+A Y
+A Y
+A X
+B Y
+A Y
+C X
+C X
+A Y
+B Z
+B X
+B Z
+A Y
+A Z
+C Y
+A Y
+B Y
+A Z
+C X
+A Z
+A Z
+A Z
+A Z
+B Z
+C X
+C Y
+A Z
+C Y
+C Y
+A X
+C X
+A Z
+A Z
+A Z
+C X
+C X
+C X
+A Y
+C Z
+C Z
+A Z
+C X
+A Y
+A Z
+A Z
+A Z
+C X
+A Z
+A X
+A Z
+A Z
+A Z
+A Z
+A Y
+C Y
+C X
+A X
+A Y
+C X
+A X
+A Z
+A Z
+C X
+A Z
+A X
+A Z
+A Z
+A X
+A Z
+A Z
+A X
+A Z
+A X
+B Y
+A Y
+A Y
+C Y
+A Z
+A Y
+C X
+A Z
+A Y
+A X
+C Y
+B X
+C Y
+A Z
+C X
+A Y
+A Z
+A Y
+A X
+C Y
+A Z
+A Z
+C Y
+C X
+A Z
+C X
+A Y
+C X
+A Z
+A Y
+A Z
+A Z
+A Z
+A Y
+A Z
+C X
+C X
+A X
+C X
+C X
+A Z
+C X
+A Z
+C Y
+C X
+A Z
+A Z
+A Z
+C X
+A X
+C Y
+A Z
+C Y
+A X
+A Z
+C X
+A Z
+A Z
+A X
+A Z
+C X
+B X
+A Z
+A Z
+A Z
+C X
+A Y
+A Y
+A X
+C Y
+C Y
+A Z
+A Y
+A Z
+A Z
+C X
+A X
+A Y
+A Z
+A Z
+A Z
+A Z
+B Z
+C X
+C X
+C X
+A Z
+C Z
+A X
+C X
+A Z
+C Y
+A Z
+A Z
+A Y
+A Y
+C X
+A Z
+A X
+A Z
+A Z
+A Z
+A Z
+C Y
+A Z
+A Y
+A X
+A X
+A Z
+C X
+A X
+A X
+A Z
+A Y
+C X
+A Z
+A Z
+A Y
+A Z
+B Z
+C X
+C X
+C Z
+C Y
+C X
+A Z
+C Y
+A Z
+C Z
+A Z
+A Y
+A Y
+A X
+A X
+A Z
+A Y
+A Y
+A Y
+A Y
+A Z
+C Y
+A Z
+A Z
+C X
+A Z
+A Z
+C Y
+A Y
+C X
+A Y
+C X
+A Z
+B Z
+A X
+B X
+A Y
+A X
+A Y
+B Z
+A Y
+A Z
+C Y
+C Y
+A Z
+A X
+A Z
+A Z
+C Z
+A Z
+A Y
+C X
+A Y
+C X
+A X
+A Y
+C Y
+A Y
+A Z
+A Z
+C X
+C X
+B Z
+A Z
+A Z
+A X
+C X
+C Y
+A Z
+A Z
+A X
+C X
+C Z
+A Z
+C Y
+A Y
+B Z
+C Y
+A Z
+C X
+A X
+A Z
+A Z
+A Z
+A Y
+C Y
+A Z
+C Y
+A Z
+A Z
+A Z
+A Z
+A Y
+C X
+A Y
+C Y
+B Z
+A Z
+C X
+C Y
+A Z
+C X
+A Z
+C X
+C Z
+A Z
+C X
+C X
+A Z
+A Z
+A Y
+A Y
+A Y
+C X
+A Y
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Y
+A Z
+A X
+C Y
+A Z
+A Z
+A Z
+A Y
+A Z
+A Z
+A Z
+A Z
+C X
+B Z
+A Z
+A Y
+A Y
+A X
+A Z
+A Z
+C Z
+A Z
+C X
+A Y
+A X
+B Z
+A Z
+A Z
+A Z
+C Y
+C Z
+C X
+A Z
+C Y
+C Y
+C Y
+C X
+B Z
+A Z
+A Z
+C Z
+A X
+A Z
+A Z
+A Z
+C X
+A Z
+A Z
+C Y
+C Y
+A Z
+A Z
+C X
+A Y
+C Y
+C Y
+A Z
+A Z
+A X
+A Z
+A Z
+A X
+A X
+C X
+A Z
+A X
+C X
+C X
+A Z
+A X
+A Z
+C X
+C X
+C X
+C Y
+A Z
+A Z
+A X
+A Z
+A Y
+A Z
+A Z
+C Y
+A Z
+A Z
+A Z
+A X
+A Z
+C X
+A X
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Y
+A X
+A Y
+A X
+C Y
+A Z
+A Z
+C X
+A Z
+A Z
+A Z
+A X
+A Z
+A Z
+A Y
+C X
+A Y
+A Z
+C X
+A X
+A Y
+A Z
+A Z
+A X
+A Z
+A Y
+C X
+A Y
+A Z
+A Z
+A Z
+A Z
+C X
+C Y
+A Z
+B Z
+C X
+A Z
+A Z
+C Y
+C Y
+C X
+A X
+C Y
+B Y
+A Z
+A Z
+A Z
+C Y
+A Z
+A X
+A Y
+A Z
+A Z
+A Z
+C Y
+A Z
+C Y
+C X
+A Z
+A Z
+A Z
+A Z
+A Z
+A X
+A Z
+A Z
+C X
+A Z
+A Y
+C Z
+A Z
+A Z
+A Z
+B X
+C X
+A Z
+A Z
+A Z
+A Z
+C X
+A Z
+A Z
+A Y
+A X
+C X
+C Y
+A X
+A Y
+C X
+A Z
+A Z
+C X
+C X
+A Z
+C X
+A Z
+A Y
+C X
+A Z
+B X
+B Y
+A X
+C Y
+A X
+A Y
+C Y
+A Z
+A Z
+A Z
+C X
+A Z
+A X
+A Z
+C Y
+A Z
+A Z
+C X
+A Z
+A Z
+A Y
+A Z
+A X
+A Y
+A Z
+C X
+C Y
+B X
+C Y
+A Y
+A Z
+C X
+A Z
+C X
+C Y
+A X
+A X
+A Z
+A Z
+C Y
+A Y
+A Y
+A Z
+A Z
+C X
+A X
+C X
+A X
+A Y
+C X
+A Z
+A Z
+B Y
+A Z
+A Z
+A Z
+A Z
+A Z
+A X
+A Y
+A X
+A Z
+A Z
+C X
+A Y
+A Z
+C Y
+C X
+C X
+C X
+C X
+C Y
+A X
+A X
+C Y
+A X
+A Y
+A Y
+B Z
+A Z
+B Y
+C Y
+A X
+A Y
+A Z
+A Z
+A Z
+A X
+C X
+A Z
+A Z
+A Z
+A Z
+A Z
+A Y
+A Z
+B Z
+A Z
+A Z
+A Y
+C Y
+C Y
+C X
+A Z
+A X
+C X
+A Y
+B Z
+C X
+A Z
+C X
+C Y
+C Y
+A X
+A X
+C X
+A Z
+A Z
+A Y
+A X
+A X
+A Z
+C Y
+B X
+A Z
+A Z
+A Z
+A Z
+A Y
+A Y
+A Z
+C Y
+C Y
+A X
+A Z
+A Z
+C Y
+A Y
+A Y
+A X
+A Y
+A X
+A X
+A X
+A Z
+A Z
+A Y
+A Z
+C X
+A Z
+A Y
+A Z
+A Z
+A Y
+A Z
+A Z
+C X
+A Z
+A Y
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Y
+C X
+B Z
+C Z
+A Z
+A Y
+A X
+A X
+C Y
+C Y
+A X
+C X
+B Z
+A Z
+C X
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Y
+A Z
+A Z
+A Y
+A Z
+A Y
+A Y
+A Z
+A Z
+A Y
+A Z
+C Y
+A Z
+A Z
+A Z
+C X
+C X
+A Z
+C Y
+A Z
+A Z
+C X
+A Z
+C X
+A Y
+A Z
+C Y
+A Z
+A Z
+C X
+C Y
+A Z
+C X
+C X
+A X
+A Y
+C Y
+A Y
+A Z
+C X
+A Z
+A Z
+A X
+A Z
+C Y
+A Z
+C X
+A Z
+C X
+A Z
+C X
+A Y
+C Y
+A X
+A Z
+A Z
+C Y
+A X
+A Z
+A Y
+B Z
+A Z
+A X
+A Z
+A Z
+A X
+C X
+A Z
+A Z
+C Y
+A Z
+A Y
+A Z
+C Y
+A Z
+A Y
+A Z
+C Z
+A Y
+A Z
+A Y
+C Y
+A Z
+C X
+A X
+B Z
+C X
+C X
+A Z
+A Z
+A Y
+A X
+A Z
+A Z
+B Z
+A Z
+C Z
+A X
+A Z
+A Z
+A Z
+A Z
+A X
+A X
+A Z
+A X
+A Z
+A Z
+A Z
+A X
+C X
+C Y
+A X
+C X
+C X
+A Z
+A X
+C Y
+B Z
+A Z
+A Z
+C X
+B X
+A Z
+A Z
+C X
+C X
+B Z
+C Y
+A Z
+A Z
+C X
+A X
+A Y
+C Y
+C Y
+B Z
+A Y
+C X
+A Z
+A Z
+A Y
+C X
+A Z
+A Z
+C X
+C Y
+A Z
+C X
+C Y
+C Y
+C X
+C Y
+A Z
+C Y
+A Z
+C X
+A Z
+C Y
+C Z
+A Z
+B Z
+A Z
+C X
+C X
+B Y
+B Z
+C Y
+C X
+C X
+A Y
+C X
+C X
+A Z
+A Y
+A Z
+C X
+A X
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+C X
+C X
+A Z
+C Y
+C X
+A Z
+B Z
+A Z
+A Z
+A X
+C X
+A Y
+A Z
+A Z
+A Y
+A X
+C Y
+B X
+A Z
+A X
+C Y
+C X
+C X
+C Y
+C Y
+A Z
+A Z
+C Y
+A Z
+A Y
+C Y
+A Y
+C X
+A Z
+C X
+C Y
+C Y
+A Z
+A Z
+A X
+A Y
+A Z
+A X
+A Z
+A Z
+A Z
+C Y
+A Z
+A Z
+C X
+C Y
+A Z
+A Z
+A Z
+C Y
+C X
+A Z
+C X
+A Z
+A Z
+A Z
+A X
+A Z
+A Z
+A Y
+B Z
+A Z
+A Z
+A Z
+C Y
+A Z
+B Z
+A Z
+C Z
+A Z
+A Y
+C X
+C Y
+C X
+C X
+A Z
+A Z
+A Y
+A Y
+A Z
+A Y
+B Z
+C Y
+A Y
+A Z
+C X
+A Z
+A Z
+C Y
+A Y
+A Z
+A Y
+C Y
+A Z
+A Z
+A X
+B Z
+A Z
+A X
+C X
+A Z
+C Y
+C Y
+A Z
+B Y
+A Y
+A Z
+A Z
+A Z
+A Z
+C X
+C X
+A Z
+C X
+A Y
+A Z
+A Z
+C Y
+A Z
+A Z
+C Y
+C X
+B Z
+A Y
+A Y
+C X
+C X
+A Z
+A X
+B Z
+A Z
+C Y
+A Z
+A Y
+A Z
+A Z
+A Y
+C Y
+C X
+A Z
+C X
+A Z
+C Y
+A Z
+C Y
+A Y
+A Z
+A Y
+A Z
+C X
+A Z
+A Z
+C X
+A Z
+B Y
+A Z
+A Z
+C Y
+C X
+C X
+A Z
+A Z
+C X
+B Z
+A Y
+A Z
+A Y
+A Z
+A Z
+A Y
+A X
+C X
+C X
+A X
+A Z
+A Y
+A Y
+A Z
+A Y
+A Z
+A Z
+C Y
+A X
+A Z
+A Z
+C X
+A Z
+A X
+B X
+C X
+A Z
+A Y
+B Z
+C X
+C Y
+A Z
+B Z
+C Y
+A Z
+A Z
+A X
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
+A Z
diff --git a/Day 03/Day03.cs b/Advent Of Code Library/2022/Day 03/Day03.cs
similarity index 92%
rename from Day 03/Day03.cs
rename to Advent Of Code Library/2022/Day 03/Day03.cs
index 1916ae0..9a5558c 100644
--- a/Day 03/Day03.cs
+++ b/Advent Of Code Library/2022/Day 03/Day03.cs
@@ -2,11 +2,11 @@
namespace Day_03.Day_03
{
- internal class Day03
+ public class Day03
{
public static string InputPath = "Day 03/day-03-input.txt";
- internal static string GetPart1(byte[] data)
+ public static string GetPart1(byte[] data)
{
string[] rucksackData = Encoding.UTF8.GetString(data).Split(Environment.NewLine);
int priorityCount = 0;
@@ -24,7 +24,7 @@ namespace Day_03.Day_03
return priorityCount.ToString();
}
- internal static string GetPart2(byte[] data)
+ public static string GetPart2(byte[] data)
{
string[] rucksackData = Encoding.UTF8.GetString(data).Split(Environment.NewLine);
int priorityCount = 0;
diff --git a/Day 03/day-03-input.txt b/Advent Of Code Library/2022/Day 03/day-03-input.txt
similarity index 100%
rename from Day 03/day-03-input.txt
rename to Advent Of Code Library/2022/Day 03/day-03-input.txt
diff --git a/Advent Of Code Library/Advent Of Code Library.csproj b/Advent Of Code Library/Advent Of Code Library.csproj
new file mode 100644
index 0000000..2c76f7c
--- /dev/null
+++ b/Advent Of Code Library/Advent Of Code Library.csproj
@@ -0,0 +1,10 @@
+
+
+
+ net6.0
+ Advent_Of_Code_Library
+ enable
+ enable
+
+
+
diff --git a/Advent Of Code.sln b/Advent Of Code.sln
index 4d3763b..51a731f 100644
--- a/Advent Of Code.sln
+++ b/Advent Of Code.sln
@@ -1,9 +1,11 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
-VisualStudioVersion = 17.3.32922.545
+VisualStudioVersion = 17.4.33103.184
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "2022", "2022.csproj", "{10D21159-084F-4D2B-9254-1BC9D86E60F9}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Advent Of Code Runner", "Advend Of Code Runner\Advent Of Code Runner.csproj", "{6DCDC513-AF72-4029-932A-A0079BB5422B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Advent Of Code Library", "Advent Of Code Library\Advent Of Code Library.csproj", "{33CC3924-F18E-4B88-9989-A7A9077B9AC4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,15 +13,19 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {10D21159-084F-4D2B-9254-1BC9D86E60F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {10D21159-084F-4D2B-9254-1BC9D86E60F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {10D21159-084F-4D2B-9254-1BC9D86E60F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {10D21159-084F-4D2B-9254-1BC9D86E60F9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6DCDC513-AF72-4029-932A-A0079BB5422B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6DCDC513-AF72-4029-932A-A0079BB5422B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6DCDC513-AF72-4029-932A-A0079BB5422B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6DCDC513-AF72-4029-932A-A0079BB5422B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {33CC3924-F18E-4B88-9989-A7A9077B9AC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {33CC3924-F18E-4B88-9989-A7A9077B9AC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {33CC3924-F18E-4B88-9989-A7A9077B9AC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {33CC3924-F18E-4B88-9989-A7A9077B9AC4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {716D4A39-3ED5-4047-8761-79BF9B24FB61}
+ SolutionGuid = {D5D52D1F-5A13-43B7-BFC7-773C0E4623D7}
EndGlobalSection
EndGlobal
diff --git a/Program.cs b/Program.cs
deleted file mode 100644
index f848d0f..0000000
--- a/Program.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using Day_03.Day_03;
-using System.Text;
-
-byte[] data = Encoding.UTF8.GetBytes(@"vJrwpWtwJgWrhcsFMMfFFhFp
-jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
-PmmdzqPrVvPwwTWBwg
-wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
-ttgJtRGJQctTZtZT
-CrZsJsPPZsGzwwsLwLmpwMDw");
-
-byte[] dataArray = File.ReadAllBytes(Day03.InputPath);
-
-Console.WriteLine($"Max value: {Day03.GetPart2(dataArray)}");
-Console.ReadKey(true);
\ No newline at end of file