Updates
This commit is contained in:
8
december_13/Cargo.toml
Normal file
8
december_13/Cargo.toml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[package]
|
||||||
|
name = "december_13"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
21
december_13/example.txt
Normal file
21
december_13/example.txt
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
6,10
|
||||||
|
0,14
|
||||||
|
9,10
|
||||||
|
0,3
|
||||||
|
10,4
|
||||||
|
4,11
|
||||||
|
6,0
|
||||||
|
6,12
|
||||||
|
4,1
|
||||||
|
0,13
|
||||||
|
10,12
|
||||||
|
3,4
|
||||||
|
3,0
|
||||||
|
8,4
|
||||||
|
1,10
|
||||||
|
2,14
|
||||||
|
8,10
|
||||||
|
9,0
|
||||||
|
|
||||||
|
fold along y=7
|
||||||
|
fold along x=5
|
||||||
920
december_13/input.txt
Normal file
920
december_13/input.txt
Normal file
@@ -0,0 +1,920 @@
|
|||||||
|
949,224
|
||||||
|
398,211
|
||||||
|
402,700
|
||||||
|
900,890
|
||||||
|
1197,304
|
||||||
|
333,809
|
||||||
|
681,705
|
||||||
|
769,864
|
||||||
|
975,465
|
||||||
|
639,523
|
||||||
|
445,313
|
||||||
|
912,99
|
||||||
|
502,894
|
||||||
|
703,343
|
||||||
|
572,598
|
||||||
|
1232,759
|
||||||
|
277,640
|
||||||
|
700,761
|
||||||
|
919,429
|
||||||
|
678,141
|
||||||
|
1054,795
|
||||||
|
934,750
|
||||||
|
760,73
|
||||||
|
268,627
|
||||||
|
336,859
|
||||||
|
1096,135
|
||||||
|
646,176
|
||||||
|
55,404
|
||||||
|
932,872
|
||||||
|
1168,338
|
||||||
|
569,842
|
||||||
|
904,863
|
||||||
|
647,168
|
||||||
|
509,606
|
||||||
|
42,525
|
||||||
|
607,343
|
||||||
|
947,861
|
||||||
|
1002,537
|
||||||
|
1230,368
|
||||||
|
186,274
|
||||||
|
363,690
|
||||||
|
1073,663
|
||||||
|
868,312
|
||||||
|
646,718
|
||||||
|
385,210
|
||||||
|
961,660
|
||||||
|
1277,0
|
||||||
|
470,228
|
||||||
|
127,705
|
||||||
|
894,89
|
||||||
|
500,704
|
||||||
|
994,361
|
||||||
|
87,582
|
||||||
|
985,378
|
||||||
|
557,607
|
||||||
|
75,872
|
||||||
|
1068,647
|
||||||
|
686,138
|
||||||
|
358,84
|
||||||
|
957,415
|
||||||
|
325,516
|
||||||
|
711,169
|
||||||
|
1287,252
|
||||||
|
619,242
|
||||||
|
329,516
|
||||||
|
821,714
|
||||||
|
514,844
|
||||||
|
632,358
|
||||||
|
549,252
|
||||||
|
442,302
|
||||||
|
619,652
|
||||||
|
5,809
|
||||||
|
276,530
|
||||||
|
15,75
|
||||||
|
653,266
|
||||||
|
632,536
|
||||||
|
731,648
|
||||||
|
237,231
|
||||||
|
1266,19
|
||||||
|
966,205
|
||||||
|
360,37
|
||||||
|
522,3
|
||||||
|
1255,725
|
||||||
|
833,840
|
||||||
|
898,728
|
||||||
|
805,162
|
||||||
|
294,261
|
||||||
|
1250,833
|
||||||
|
403,151
|
||||||
|
1288,564
|
||||||
|
7,465
|
||||||
|
350,274
|
||||||
|
1133,478
|
||||||
|
408,526
|
||||||
|
1079,493
|
||||||
|
310,205
|
||||||
|
420,507
|
||||||
|
1310,596
|
||||||
|
639,824
|
||||||
|
328,257
|
||||||
|
30,417
|
||||||
|
845,511
|
||||||
|
196,683
|
||||||
|
1002,201
|
||||||
|
719,96
|
||||||
|
15,457
|
||||||
|
276,812
|
||||||
|
760,43
|
||||||
|
979,95
|
||||||
|
319,429
|
||||||
|
661,429
|
||||||
|
654,298
|
||||||
|
584,421
|
||||||
|
372,355
|
||||||
|
351,252
|
||||||
|
430,453
|
||||||
|
113,304
|
||||||
|
701,772
|
||||||
|
107,628
|
||||||
|
549,700
|
||||||
|
629,551
|
||||||
|
492,851
|
||||||
|
427,101
|
||||||
|
278,666
|
||||||
|
246,856
|
||||||
|
194,82
|
||||||
|
417,439
|
||||||
|
433,712
|
||||||
|
425,229
|
||||||
|
308,89
|
||||||
|
1275,652
|
||||||
|
1193,316
|
||||||
|
482,190
|
||||||
|
955,245
|
||||||
|
465,511
|
||||||
|
688,37
|
||||||
|
788,525
|
||||||
|
92,235
|
||||||
|
644,417
|
||||||
|
1247,877
|
||||||
|
25,327
|
||||||
|
1255,404
|
||||||
|
502,0
|
||||||
|
960,760
|
||||||
|
431,570
|
||||||
|
741,702
|
||||||
|
728,606
|
||||||
|
1086,453
|
||||||
|
1198,694
|
||||||
|
181,208
|
||||||
|
401,327
|
||||||
|
959,194
|
||||||
|
729,863
|
||||||
|
1295,819
|
||||||
|
7,271
|
||||||
|
263,456
|
||||||
|
132,868
|
||||||
|
318,849
|
||||||
|
242,726
|
||||||
|
1133,392
|
||||||
|
631,294
|
||||||
|
410,302
|
||||||
|
654,582
|
||||||
|
649,465
|
||||||
|
622,709
|
||||||
|
805,284
|
||||||
|
1300,533
|
||||||
|
731,22
|
||||||
|
579,470
|
||||||
|
177,392
|
||||||
|
1079,849
|
||||||
|
252,397
|
||||||
|
898,871
|
||||||
|
634,618
|
||||||
|
427,653
|
||||||
|
433,630
|
||||||
|
1228,851
|
||||||
|
686,865
|
||||||
|
1079,32
|
||||||
|
105,252
|
||||||
|
372,761
|
||||||
|
15,864
|
||||||
|
644,222
|
||||||
|
1134,122
|
||||||
|
572,851
|
||||||
|
1303,429
|
||||||
|
991,726
|
||||||
|
304,620
|
||||||
|
962,446
|
||||||
|
899,586
|
||||||
|
667,44
|
||||||
|
786,228
|
||||||
|
719,93
|
||||||
|
411,742
|
||||||
|
1031,110
|
||||||
|
33,0
|
||||||
|
646,483
|
||||||
|
482,288
|
||||||
|
885,47
|
||||||
|
1250,609
|
||||||
|
632,330
|
||||||
|
594,833
|
||||||
|
1178,868
|
||||||
|
68,542
|
||||||
|
482,480
|
||||||
|
818,851
|
||||||
|
278,592
|
||||||
|
898,726
|
||||||
|
141,660
|
||||||
|
360,857
|
||||||
|
515,651
|
||||||
|
30,532
|
||||||
|
865,540
|
||||||
|
1168,500
|
||||||
|
1022,525
|
||||||
|
80,526
|
||||||
|
975,429
|
||||||
|
401,159
|
||||||
|
1256,523
|
||||||
|
1300,809
|
||||||
|
410,598
|
||||||
|
537,540
|
||||||
|
482,606
|
||||||
|
25,551
|
||||||
|
229,709
|
||||||
|
1096,555
|
||||||
|
952,756
|
||||||
|
23,70
|
||||||
|
584,38
|
||||||
|
810,288
|
||||||
|
495,416
|
||||||
|
278,358
|
||||||
|
900,43
|
||||||
|
550,43
|
||||||
|
895,582
|
||||||
|
1221,213
|
||||||
|
1205,252
|
||||||
|
1180,732
|
||||||
|
524,3
|
||||||
|
850,641
|
||||||
|
1054,421
|
||||||
|
865,581
|
||||||
|
376,37
|
||||||
|
751,233
|
||||||
|
72,64
|
||||||
|
969,717
|
||||||
|
1032,666
|
||||||
|
1170,50
|
||||||
|
112,200
|
||||||
|
279,784
|
||||||
|
818,43
|
||||||
|
810,704
|
||||||
|
972,222
|
||||||
|
738,296
|
||||||
|
1285,791
|
||||||
|
162,403
|
||||||
|
333,85
|
||||||
|
1168,786
|
||||||
|
1161,51
|
||||||
|
840,498
|
||||||
|
3,351
|
||||||
|
966,644
|
||||||
|
522,891
|
||||||
|
666,222
|
||||||
|
751,592
|
||||||
|
842,50
|
||||||
|
480,446
|
||||||
|
885,847
|
||||||
|
7,623
|
||||||
|
137,638
|
||||||
|
1208,703
|
||||||
|
668,716
|
||||||
|
477,416
|
||||||
|
1307,351
|
||||||
|
981,555
|
||||||
|
117,578
|
||||||
|
430,254
|
||||||
|
1280,417
|
||||||
|
428,809
|
||||||
|
743,312
|
||||||
|
634,620
|
||||||
|
1225,724
|
||||||
|
10,869
|
||||||
|
631,700
|
||||||
|
87,312
|
||||||
|
1237,689
|
||||||
|
388,285
|
||||||
|
358,810
|
||||||
|
1111,894
|
||||||
|
1133,499
|
||||||
|
113,752
|
||||||
|
666,670
|
||||||
|
1198,200
|
||||||
|
196,451
|
||||||
|
1079,302
|
||||||
|
1098,521
|
||||||
|
987,95
|
||||||
|
1295,523
|
||||||
|
1275,591
|
||||||
|
1131,855
|
||||||
|
440,583
|
||||||
|
1171,691
|
||||||
|
955,201
|
||||||
|
112,135
|
||||||
|
291,861
|
||||||
|
50,588
|
||||||
|
1032,358
|
||||||
|
678,330
|
||||||
|
689,446
|
||||||
|
30,815
|
||||||
|
411,152
|
||||||
|
505,610
|
||||||
|
251,246
|
||||||
|
1052,430
|
||||||
|
427,793
|
||||||
|
1173,383
|
||||||
|
1143,431
|
||||||
|
607,791
|
||||||
|
189,32
|
||||||
|
1057,7
|
||||||
|
1307,543
|
||||||
|
1173,374
|
||||||
|
430,677
|
||||||
|
313,289
|
||||||
|
624,756
|
||||||
|
1048,429
|
||||||
|
1205,70
|
||||||
|
231,862
|
||||||
|
947,690
|
||||||
|
966,250
|
||||||
|
1220,851
|
||||||
|
1253,210
|
||||||
|
269,427
|
||||||
|
850,701
|
||||||
|
1034,812
|
||||||
|
748,211
|
||||||
|
868,73
|
||||||
|
279,110
|
||||||
|
664,624
|
||||||
|
971,506
|
||||||
|
1009,327
|
||||||
|
214,555
|
||||||
|
80,632
|
||||||
|
1136,648
|
||||||
|
1133,854
|
||||||
|
557,5
|
||||||
|
997,605
|
||||||
|
1079,45
|
||||||
|
174,648
|
||||||
|
159,351
|
||||||
|
341,717
|
||||||
|
934,218
|
||||||
|
549,194
|
||||||
|
1079,862
|
||||||
|
774,467
|
||||||
|
423,177
|
||||||
|
1126,50
|
||||||
|
1039,255
|
||||||
|
154,717
|
||||||
|
1256,75
|
||||||
|
1006,620
|
||||||
|
1136,757
|
||||||
|
73,831
|
||||||
|
65,441
|
||||||
|
95,415
|
||||||
|
0,596
|
||||||
|
455,33
|
||||||
|
460,641
|
||||||
|
528,427
|
||||||
|
15,437
|
||||||
|
627,201
|
||||||
|
142,786
|
||||||
|
714,386
|
||||||
|
922,144
|
||||||
|
97,606
|
||||||
|
455,57
|
||||||
|
1084,309
|
||||||
|
840,725
|
||||||
|
840,396
|
||||||
|
428,533
|
||||||
|
679,600
|
||||||
|
607,103
|
||||||
|
965,662
|
||||||
|
674,542
|
||||||
|
199,894
|
||||||
|
691,425
|
||||||
|
728,382
|
||||||
|
636,352
|
||||||
|
251,85
|
||||||
|
149,527
|
||||||
|
181,686
|
||||||
|
253,119
|
||||||
|
1124,172
|
||||||
|
1059,757
|
||||||
|
25,383
|
||||||
|
15,371
|
||||||
|
540,347
|
||||||
|
793,638
|
||||||
|
1305,809
|
||||||
|
1221,231
|
||||||
|
681,479
|
||||||
|
870,107
|
||||||
|
818,512
|
||||||
|
427,457
|
||||||
|
174,757
|
||||||
|
559,233
|
||||||
|
1263,343
|
||||||
|
11,626
|
||||||
|
174,246
|
||||||
|
44,875
|
||||||
|
211,453
|
||||||
|
1000,250
|
||||||
|
160,714
|
||||||
|
802,698
|
||||||
|
181,9
|
||||||
|
883,101
|
||||||
|
994,415
|
||||||
|
1262,106
|
||||||
|
715,548
|
||||||
|
934,228
|
||||||
|
378,82
|
||||||
|
262,429
|
||||||
|
23,252
|
||||||
|
495,351
|
||||||
|
885,665
|
||||||
|
656,582
|
||||||
|
1111,837
|
||||||
|
609,324
|
||||||
|
704,788
|
||||||
|
994,733
|
||||||
|
348,620
|
||||||
|
877,642
|
||||||
|
971,850
|
||||||
|
1242,430
|
||||||
|
513,234
|
||||||
|
341,157
|
||||||
|
221,476
|
||||||
|
443,441
|
||||||
|
159,767
|
||||||
|
907,295
|
||||||
|
1287,824
|
||||||
|
622,485
|
||||||
|
1297,659
|
||||||
|
863,455
|
||||||
|
1266,133
|
||||||
|
596,386
|
||||||
|
1042,85
|
||||||
|
566,805
|
||||||
|
711,404
|
||||||
|
1019,204
|
||||||
|
904,479
|
||||||
|
1310,760
|
||||||
|
1164,877
|
||||||
|
1054,235
|
||||||
|
986,392
|
||||||
|
952,84
|
||||||
|
468,50
|
||||||
|
231,302
|
||||||
|
1159,716
|
||||||
|
979,799
|
||||||
|
1178,815
|
||||||
|
686,29
|
||||||
|
336,35
|
||||||
|
796,844
|
||||||
|
1059,375
|
||||||
|
445,130
|
||||||
|
644,533
|
||||||
|
865,537
|
||||||
|
542,86
|
||||||
|
1130,129
|
||||||
|
1196,750
|
||||||
|
162,627
|
||||||
|
95,849
|
||||||
|
339,492
|
||||||
|
1173,256
|
||||||
|
489,597
|
||||||
|
972,415
|
||||||
|
877,630
|
||||||
|
885,717
|
||||||
|
726,38
|
||||||
|
1288,834
|
||||||
|
934,302
|
||||||
|
870,364
|
||||||
|
711,649
|
||||||
|
773,130
|
||||||
|
410,43
|
||||||
|
1133,395
|
||||||
|
1091,714
|
||||||
|
900,296
|
||||||
|
258,240
|
||||||
|
1144,852
|
||||||
|
982,596
|
||||||
|
1129,885
|
||||||
|
960,386
|
||||||
|
786,443
|
||||||
|
378,872
|
||||||
|
1130,765
|
||||||
|
348,274
|
||||||
|
1230,526
|
||||||
|
415,312
|
||||||
|
729,31
|
||||||
|
1180,162
|
||||||
|
793,704
|
||||||
|
448,525
|
||||||
|
149,630
|
||||||
|
816,180
|
||||||
|
555,121
|
||||||
|
974,45
|
||||||
|
1143,687
|
||||||
|
214,87
|
||||||
|
48,788
|
||||||
|
499,367
|
||||||
|
412,728
|
||||||
|
796,396
|
||||||
|
1260,812
|
||||||
|
679,376
|
||||||
|
65,383
|
||||||
|
591,96
|
||||||
|
512,52
|
||||||
|
420,828
|
||||||
|
589,889
|
||||||
|
435,649
|
||||||
|
149,591
|
||||||
|
1114,666
|
||||||
|
231,849
|
||||||
|
1151,351
|
||||||
|
64,205
|
||||||
|
1240,856
|
||||||
|
970,436
|
||||||
|
145,457
|
||||||
|
579,648
|
||||||
|
50,193
|
||||||
|
1168,108
|
||||||
|
22,834
|
||||||
|
885,495
|
||||||
|
1218,235
|
||||||
|
70,347
|
||||||
|
1293,353
|
||||||
|
632,834
|
||||||
|
278,857
|
||||||
|
1213,453
|
||||||
|
971,268
|
||||||
|
514,396
|
||||||
|
957,479
|
||||||
|
619,649
|
||||||
|
490,736
|
||||||
|
1302,849
|
||||||
|
1086,640
|
||||||
|
890,380
|
||||||
|
619,591
|
||||||
|
671,70
|
||||||
|
159,655
|
||||||
|
10,421
|
||||||
|
862,369
|
||||||
|
441,192
|
||||||
|
818,64
|
||||||
|
1183,705
|
||||||
|
679,824
|
||||||
|
1196,185
|
||||||
|
114,302
|
||||||
|
633,660
|
||||||
|
1228,40
|
||||||
|
435,245
|
||||||
|
256,235
|
||||||
|
651,351
|
||||||
|
410,296
|
||||||
|
947,21
|
||||||
|
992,859
|
||||||
|
89,213
|
||||||
|
482,177
|
||||||
|
112,459
|
||||||
|
999,630
|
||||||
|
774,203
|
||||||
|
763,628
|
||||||
|
985,516
|
||||||
|
1261,640
|
||||||
|
828,187
|
||||||
|
562,211
|
||||||
|
923,10
|
||||||
|
87,309
|
||||||
|
1146,736
|
||||||
|
512,500
|
||||||
|
305,234
|
||||||
|
1295,371
|
||||||
|
647,271
|
||||||
|
1096,584
|
||||||
|
508,353
|
||||||
|
1297,812
|
||||||
|
972,448
|
||||||
|
688,485
|
||||||
|
1081,512
|
||||||
|
104,403
|
||||||
|
401,703
|
||||||
|
1073,231
|
||||||
|
311,883
|
||||||
|
833,812
|
||||||
|
1032,857
|
||||||
|
239,582
|
||||||
|
503,716
|
||||||
|
343,152
|
||||||
|
664,176
|
||||||
|
1168,672
|
||||||
|
167,207
|
||||||
|
401,775
|
||||||
|
1116,474
|
||||||
|
398,683
|
||||||
|
331,799
|
||||||
|
952,532
|
||||||
|
1228,647
|
||||||
|
1287,600
|
||||||
|
908,642
|
||||||
|
402,642
|
||||||
|
355,245
|
||||||
|
335,465
|
||||||
|
788,891
|
||||||
|
678,536
|
||||||
|
8,493
|
||||||
|
318,859
|
||||||
|
1235,872
|
||||||
|
177,873
|
||||||
|
748,659
|
||||||
|
242,168
|
||||||
|
796,641
|
||||||
|
440,331
|
||||||
|
162,491
|
||||||
|
1171,203
|
||||||
|
477,840
|
||||||
|
350,162
|
||||||
|
524,666
|
||||||
|
591,877
|
||||||
|
22,330
|
||||||
|
962,274
|
||||||
|
629,567
|
||||||
|
977,809
|
||||||
|
828,480
|
||||||
|
291,413
|
||||||
|
1211,569
|
||||||
|
1193,764
|
||||||
|
468,274
|
||||||
|
805,591
|
||||||
|
395,45
|
||||||
|
589,511
|
||||||
|
1299,388
|
||||||
|
883,437
|
||||||
|
1302,483
|
||||||
|
1097,702
|
||||||
|
868,821
|
||||||
|
423,401
|
||||||
|
972,446
|
||||||
|
30,79
|
||||||
|
376,218
|
||||||
|
899,742
|
||||||
|
339,44
|
||||||
|
721,63
|
||||||
|
67,54
|
||||||
|
795,651
|
||||||
|
353,415
|
||||||
|
805,723
|
||||||
|
246,247
|
||||||
|
261,5
|
||||||
|
1047,456
|
||||||
|
706,82
|
||||||
|
344,644
|
||||||
|
1170,760
|
||||||
|
984,596
|
||||||
|
493,297
|
||||||
|
253,735
|
||||||
|
349,234
|
||||||
|
155,840
|
||||||
|
349,660
|
||||||
|
736,695
|
||||||
|
994,670
|
||||||
|
199,837
|
||||||
|
221,712
|
||||||
|
423,65
|
||||||
|
1083,101
|
||||||
|
386,732
|
||||||
|
346,245
|
||||||
|
1133,873
|
||||||
|
1121,63
|
||||||
|
1255,714
|
||||||
|
880,441
|
||||||
|
514,641
|
||||||
|
1299,836
|
||||||
|
1108,33
|
||||||
|
1278,400
|
||||||
|
241,500
|
||||||
|
788,79
|
||||||
|
1056,569
|
||||||
|
810,190
|
||||||
|
584,856
|
||||||
|
1043,548
|
||||||
|
1285,103
|
||||||
|
1288,249
|
||||||
|
1004,274
|
||||||
|
1034,530
|
||||||
|
244,890
|
||||||
|
1192,691
|
||||||
|
401,31
|
||||||
|
155,591
|
||||||
|
72,736
|
||||||
|
351,642
|
||||||
|
487,416
|
||||||
|
934,37
|
||||||
|
319,255
|
||||||
|
1136,137
|
||||||
|
442,73
|
||||||
|
169,170
|
||||||
|
1295,75
|
||||||
|
862,525
|
||||||
|
388,526
|
||||||
|
831,58
|
||||||
|
1119,649
|
||||||
|
411,84
|
||||||
|
902,247
|
||||||
|
253,7
|
||||||
|
840,617
|
||||||
|
1000,196
|
||||||
|
821,138
|
||||||
|
1000,205
|
||||||
|
710,819
|
||||||
|
13,235
|
||||||
|
914,654
|
||||||
|
1161,527
|
||||||
|
1262,261
|
||||||
|
492,830
|
||||||
|
455,705
|
||||||
|
622,185
|
||||||
|
1047,793
|
||||||
|
140,760
|
||||||
|
1275,649
|
||||||
|
316,733
|
||||||
|
345,662
|
||||||
|
267,884
|
||||||
|
1141,618
|
||||||
|
1299,58
|
||||||
|
440,107
|
||||||
|
991,175
|
||||||
|
852,451
|
||||||
|
23,824
|
||||||
|
375,110
|
||||||
|
468,172
|
||||||
|
541,590
|
||||||
|
1001,801
|
||||||
|
773,481
|
||||||
|
442,373
|
||||||
|
788,369
|
||||||
|
500,288
|
||||||
|
960,610
|
||||||
|
894,252
|
||||||
|
224,631
|
||||||
|
1111,189
|
||||||
|
1059,533
|
||||||
|
1029,716
|
||||||
|
114,709
|
||||||
|
768,883
|
||||||
|
541,752
|
||||||
|
1076,514
|
||||||
|
1277,894
|
||||||
|
1133,306
|
||||||
|
202,861
|
||||||
|
798,52
|
||||||
|
845,383
|
||||||
|
647,726
|
||||||
|
833,416
|
||||||
|
584,473
|
||||||
|
841,234
|
||||||
|
1245,5
|
||||||
|
30,756
|
||||||
|
818,267
|
||||||
|
885,512
|
||||||
|
572,488
|
||||||
|
417,614
|
||||||
|
1155,840
|
||||||
|
774,691
|
||||||
|
149,51
|
||||||
|
786,732
|
||||||
|
10,701
|
||||||
|
689,33
|
||||||
|
440,364
|
||||||
|
681,63
|
||||||
|
643,44
|
||||||
|
294,633
|
||||||
|
786,666
|
||||||
|
411,586
|
||||||
|
256,795
|
||||||
|
793,714
|
||||||
|
32,494
|
||||||
|
768,135
|
||||||
|
378,530
|
||||||
|
196,228
|
||||||
|
164,736
|
||||||
|
822,490
|
||||||
|
495,767
|
||||||
|
105,264
|
||||||
|
1073,679
|
||||||
|
445,242
|
||||||
|
719,877
|
||||||
|
146,698
|
||||||
|
1262,358
|
||||||
|
736,526
|
||||||
|
1237,831
|
||||||
|
965,93
|
||||||
|
177,588
|
||||||
|
877,712
|
||||||
|
75,22
|
||||||
|
887,65
|
||||||
|
915,849
|
||||||
|
1016,261
|
||||||
|
22,141
|
||||||
|
227,457
|
||||||
|
540,99
|
||||||
|
8,411
|
||||||
|
701,570
|
||||||
|
629,343
|
||||||
|
261,453
|
||||||
|
154,707
|
||||||
|
117,255
|
||||||
|
72,830
|
||||||
|
691,652
|
||||||
|
751,302
|
||||||
|
447,455
|
||||||
|
890,507
|
||||||
|
209,354
|
||||||
|
1238,736
|
||||||
|
338,448
|
||||||
|
574,526
|
||||||
|
1000,698
|
||||||
|
324,502
|
||||||
|
1066,4
|
||||||
|
44,19
|
||||||
|
632,60
|
||||||
|
768,459
|
||||||
|
25,567
|
||||||
|
1034,364
|
||||||
|
949,670
|
||||||
|
231,829
|
||||||
|
924,610
|
||||||
|
166,42
|
||||||
|
703,103
|
||||||
|
738,851
|
||||||
|
212,521
|
||||||
|
898,168
|
||||||
|
664,718
|
||||||
|
683,201
|
||||||
|
358,756
|
||||||
|
45,527
|
||||||
|
1235,22
|
||||||
|
666,533
|
||||||
|
686,756
|
||||||
|
132,369
|
||||||
|
1252,715
|
||||||
|
1016,270
|
||||||
|
828,288
|
||||||
|
226,309
|
||||||
|
358,138
|
||||||
|
1066,247
|
||||||
|
960,162
|
||||||
|
517,399
|
||||||
|
401,607
|
||||||
|
301,327
|
||||||
|
8,483
|
||||||
|
482,704
|
||||||
|
882,585
|
||||||
|
744,805
|
||||||
|
406,863
|
||||||
|
1148,627
|
||||||
|
44,133
|
||||||
|
1253,684
|
||||||
|
1129,9
|
||||||
|
1193,191
|
||||||
|
815,351
|
||||||
|
738,406
|
||||||
|
388,592
|
||||||
|
515,243
|
||||||
|
155,303
|
||||||
|
447,439
|
||||||
|
917,677
|
||||||
|
1041,609
|
||||||
|
10,361
|
||||||
|
137,383
|
||||||
|
858,861
|
||||||
|
1012,441
|
||||||
|
1173,404
|
||||||
|
1041,427
|
||||||
|
137,520
|
||||||
|
442,750
|
||||||
|
166,852
|
||||||
|
147,263
|
||||||
|
835,396
|
||||||
|
912,211
|
||||||
|
209,481
|
||||||
|
879,570
|
||||||
|
959,600
|
||||||
|
495,655
|
||||||
|
1119,21
|
||||||
|
253,241
|
||||||
|
631,642
|
||||||
|
492,512
|
||||||
|
719,798
|
||||||
|
344,205
|
||||||
|
599,245
|
||||||
|
997,289
|
||||||
|
703,791
|
||||||
|
1124,274
|
||||||
|
1071,582
|
||||||
|
909,607
|
||||||
|
|
||||||
|
fold along x=655
|
||||||
|
fold along y=447
|
||||||
|
fold along x=327
|
||||||
|
fold along y=223
|
||||||
|
fold along x=163
|
||||||
|
fold along y=111
|
||||||
|
fold along x=81
|
||||||
|
fold along y=55
|
||||||
|
fold along x=40
|
||||||
|
fold along y=27
|
||||||
|
fold along y=13
|
||||||
|
fold along y=6
|
||||||
112
december_13/src/main.rs
Normal file
112
december_13/src/main.rs
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
use std::fs::File;
|
||||||
|
use std::io::{BufReader};
|
||||||
|
use std::io::prelude::*;
|
||||||
|
|
||||||
|
fn main(){
|
||||||
|
let file = File::open("./input.txt").expect("Read failed");
|
||||||
|
let reader = BufReader::new(file);
|
||||||
|
|
||||||
|
let mut line_vec = Vec::new();
|
||||||
|
|
||||||
|
for line in reader.lines() {
|
||||||
|
line_vec.push(line.unwrap());
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut coordinates: Vec<(i32, i32)> = Vec::new();
|
||||||
|
let mut folds: Vec<(char, i32)> = Vec::new();
|
||||||
|
|
||||||
|
let mut processing_coordinates = true;
|
||||||
|
|
||||||
|
// Get coordinates
|
||||||
|
for line in &line_vec {
|
||||||
|
let _t = line.trim();
|
||||||
|
if line.trim().len() < 2 {
|
||||||
|
processing_coordinates = false;
|
||||||
|
} else if processing_coordinates {
|
||||||
|
let split_string = line.split(",").collect::<Vec<&str>>();
|
||||||
|
let x: i32 = split_string[0].to_owned().parse().unwrap();
|
||||||
|
let y: i32 = split_string[1].to_owned().parse().unwrap();
|
||||||
|
coordinates.push( (x, y) );
|
||||||
|
} else {
|
||||||
|
let split_string = line.split(" ").collect::<Vec<&str>>();
|
||||||
|
let split_coords = split_string[2].split("=").collect::<Vec<&str>>();
|
||||||
|
let split_direction: char = split_coords[0].to_owned().parse().unwrap();
|
||||||
|
let split_cord: i32 = split_coords[1].to_owned().parse().unwrap();
|
||||||
|
folds.push((split_direction, split_cord));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("There are {} lights", coordinates.len());
|
||||||
|
|
||||||
|
for fold in folds {
|
||||||
|
let line = fold.1;
|
||||||
|
let mut new_cords = Vec::new();
|
||||||
|
if fold.0 == 'x' {
|
||||||
|
for cord in &coordinates {
|
||||||
|
let mut x = cord.0;
|
||||||
|
let mut y = cord.1;
|
||||||
|
|
||||||
|
if x > line {
|
||||||
|
let diff = x - line;
|
||||||
|
x = line - diff;
|
||||||
|
}
|
||||||
|
|
||||||
|
new_cords.push((x,y));
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for cord in &coordinates {
|
||||||
|
let mut x = cord.0;
|
||||||
|
let mut y = cord.1;
|
||||||
|
|
||||||
|
if y > line {
|
||||||
|
let diff = y - line;
|
||||||
|
y = line - diff;
|
||||||
|
}
|
||||||
|
|
||||||
|
new_cords.push((x,y));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
coordinates = new_cords;
|
||||||
|
coordinates.sort_unstable();
|
||||||
|
coordinates.dedup();
|
||||||
|
println!("There are {} lights", coordinates.len());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let mut width = 0;
|
||||||
|
let mut height = 0;
|
||||||
|
|
||||||
|
for cord in &coordinates {
|
||||||
|
if cord.0 + 1 > width {
|
||||||
|
width = cord.0 + 1;
|
||||||
|
}
|
||||||
|
if cord.1 + 1 > height {
|
||||||
|
height = cord.1 + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("Grid is {} high and {} wide", height, width);
|
||||||
|
|
||||||
|
for y in 0..=height {
|
||||||
|
for x in 0..=width {
|
||||||
|
let mut exists = false;
|
||||||
|
for cord in &coordinates {
|
||||||
|
if cord.0 == x && cord.1 == y {
|
||||||
|
exists = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if exists {
|
||||||
|
print!("X");
|
||||||
|
} else {
|
||||||
|
print!(" ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!("");
|
||||||
|
}
|
||||||
|
}
|
||||||
8
december_14/Cargo.toml
Normal file
8
december_14/Cargo.toml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[package]
|
||||||
|
name = "december_14"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
18
december_14/example.txt
Normal file
18
december_14/example.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
NNCB
|
||||||
|
|
||||||
|
CH -> B
|
||||||
|
HH -> N
|
||||||
|
CB -> H
|
||||||
|
NH -> C
|
||||||
|
HB -> C
|
||||||
|
HC -> B
|
||||||
|
HN -> C
|
||||||
|
NN -> C
|
||||||
|
BH -> H
|
||||||
|
NC -> B
|
||||||
|
NB -> B
|
||||||
|
BN -> B
|
||||||
|
BB -> N
|
||||||
|
BC -> B
|
||||||
|
CC -> N
|
||||||
|
CN -> C
|
||||||
102
december_14/input.txt
Normal file
102
december_14/input.txt
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
PHOSBSKBBBFSPPPCCCHN
|
||||||
|
|
||||||
|
KO -> H
|
||||||
|
OK -> P
|
||||||
|
BO -> C
|
||||||
|
SH -> V
|
||||||
|
PC -> F
|
||||||
|
NK -> N
|
||||||
|
PH -> K
|
||||||
|
VH -> S
|
||||||
|
NN -> S
|
||||||
|
VC -> P
|
||||||
|
OF -> O
|
||||||
|
HH -> S
|
||||||
|
VP -> K
|
||||||
|
KP -> O
|
||||||
|
NP -> F
|
||||||
|
SS -> V
|
||||||
|
HP -> S
|
||||||
|
PS -> F
|
||||||
|
BV -> P
|
||||||
|
KS -> H
|
||||||
|
SO -> H
|
||||||
|
NF -> N
|
||||||
|
CO -> V
|
||||||
|
HK -> F
|
||||||
|
OO -> N
|
||||||
|
KN -> F
|
||||||
|
SP -> V
|
||||||
|
OP -> S
|
||||||
|
OV -> V
|
||||||
|
HO -> V
|
||||||
|
PK -> N
|
||||||
|
FF -> N
|
||||||
|
CV -> S
|
||||||
|
PP -> B
|
||||||
|
CF -> P
|
||||||
|
HF -> B
|
||||||
|
BN -> C
|
||||||
|
FH -> S
|
||||||
|
ON -> K
|
||||||
|
SN -> N
|
||||||
|
CP -> N
|
||||||
|
OB -> O
|
||||||
|
HC -> F
|
||||||
|
KH -> P
|
||||||
|
OS -> S
|
||||||
|
NS -> C
|
||||||
|
BK -> H
|
||||||
|
PB -> P
|
||||||
|
SV -> F
|
||||||
|
FV -> C
|
||||||
|
BC -> K
|
||||||
|
HS -> N
|
||||||
|
PF -> V
|
||||||
|
NC -> N
|
||||||
|
CH -> H
|
||||||
|
VF -> H
|
||||||
|
KK -> B
|
||||||
|
OH -> K
|
||||||
|
HB -> C
|
||||||
|
SC -> B
|
||||||
|
VK -> C
|
||||||
|
FP -> C
|
||||||
|
SK -> N
|
||||||
|
VO -> K
|
||||||
|
FB -> S
|
||||||
|
KB -> N
|
||||||
|
BS -> S
|
||||||
|
VS -> C
|
||||||
|
CN -> K
|
||||||
|
KF -> F
|
||||||
|
NB -> O
|
||||||
|
BB -> C
|
||||||
|
CS -> C
|
||||||
|
FC -> K
|
||||||
|
NO -> B
|
||||||
|
SB -> C
|
||||||
|
CB -> N
|
||||||
|
BP -> S
|
||||||
|
NV -> H
|
||||||
|
NH -> N
|
||||||
|
PV -> K
|
||||||
|
PO -> C
|
||||||
|
VB -> O
|
||||||
|
FK -> P
|
||||||
|
HV -> O
|
||||||
|
KC -> S
|
||||||
|
VV -> O
|
||||||
|
VN -> H
|
||||||
|
BH -> K
|
||||||
|
FS -> O
|
||||||
|
KV -> K
|
||||||
|
HN -> P
|
||||||
|
OC -> B
|
||||||
|
SF -> V
|
||||||
|
CC -> F
|
||||||
|
CK -> P
|
||||||
|
FO -> C
|
||||||
|
PN -> K
|
||||||
|
BF -> C
|
||||||
|
FN -> O
|
||||||
66
december_14/src/main.rs
Normal file
66
december_14/src/main.rs
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
use std::collections::BTreeMap;
|
||||||
|
use std::fs::File;
|
||||||
|
use std::io::{BufReader};
|
||||||
|
use std::io::prelude::*;
|
||||||
|
|
||||||
|
const STEPS: u32 = 40;
|
||||||
|
|
||||||
|
fn main(){
|
||||||
|
let file = File::open("./input.txt").expect("Read failed");
|
||||||
|
let reader = BufReader::new(file);
|
||||||
|
|
||||||
|
let mut line_vec = Vec::new();
|
||||||
|
|
||||||
|
for line in reader.lines() {
|
||||||
|
line_vec.push(line.unwrap());
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut input_seq: Vec<char> = line_vec[0].chars().collect();
|
||||||
|
let mut rules: Vec<( (char, char) , char )> = Vec::new();
|
||||||
|
|
||||||
|
for i in 2..line_vec.len() {
|
||||||
|
let split_vec: Vec<&str> = line_vec[i].split(" -> ").collect();
|
||||||
|
let input_vec: Vec<char> = split_vec[0].to_owned().chars().collect();
|
||||||
|
let input_tuple = (input_vec[0], input_vec[1]);
|
||||||
|
|
||||||
|
let output = split_vec[1].chars().collect::<Vec<char>>()[0];
|
||||||
|
|
||||||
|
rules.push( ( input_tuple, output ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
for step in 0..STEPS {
|
||||||
|
let mut output_seq: Vec<char> = Vec::new();
|
||||||
|
for i in 0..input_seq.len() - 1 {
|
||||||
|
let first = input_seq[i];
|
||||||
|
let second = input_seq[i + 1];
|
||||||
|
|
||||||
|
output_seq.push(first);
|
||||||
|
for rule in &rules {
|
||||||
|
let r_in = rule.0;
|
||||||
|
let r_out = rule.1;
|
||||||
|
if first == r_in.0 && second == r_in.1 {
|
||||||
|
output_seq.push(r_out);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
output_seq.push(input_seq[input_seq.len()-1]);
|
||||||
|
|
||||||
|
println!("Step: {}", step);
|
||||||
|
input_seq = output_seq;
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut counts = BTreeMap::new();
|
||||||
|
for word in input_seq.iter() {
|
||||||
|
*counts.entry(word).or_insert(0) += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
let max = counts.iter().max_by_key(|&(_, count)| count);
|
||||||
|
let min = counts.iter().min_by_key(|&(_, count)| count);
|
||||||
|
|
||||||
|
println!("Max: {:?}, Min: {:?}, Diff: {}", min.unwrap(), max.unwrap(), max.unwrap().1 - min.unwrap().1) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user