Day 13
This commit is contained in:
parent
cf9b8f0321
commit
61755722c4
3 changed files with 1081 additions and 0 deletions
21
input/13-test.txt
Normal file
21
input/13-test.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
|
966
input/13.txt
Normal file
966
input/13.txt
Normal file
|
@ -0,0 +1,966 @@
|
||||||
|
428,532
|
||||||
|
925,404
|
||||||
|
882,362
|
||||||
|
44,836
|
||||||
|
191,714
|
||||||
|
412,36
|
||||||
|
688,523
|
||||||
|
522,842
|
||||||
|
1054,359
|
||||||
|
523,413
|
||||||
|
388,638
|
||||||
|
60,495
|
||||||
|
758,148
|
||||||
|
381,42
|
||||||
|
1017,80
|
||||||
|
279,696
|
||||||
|
848,508
|
||||||
|
922,638
|
||||||
|
381,852
|
||||||
|
887,822
|
||||||
|
500,672
|
||||||
|
969,526
|
||||||
|
986,760
|
||||||
|
102,187
|
||||||
|
1232,303
|
||||||
|
758,596
|
||||||
|
412,820
|
||||||
|
320,296
|
||||||
|
935,715
|
||||||
|
310,308
|
||||||
|
129,422
|
||||||
|
383,485
|
||||||
|
919,786
|
||||||
|
261,318
|
||||||
|
745,863
|
||||||
|
279,179
|
||||||
|
628,266
|
||||||
|
1185,798
|
||||||
|
388,190
|
||||||
|
790,788
|
||||||
|
775,254
|
||||||
|
771,491
|
||||||
|
1034,513
|
||||||
|
147,689
|
||||||
|
1215,178
|
||||||
|
1263,739
|
||||||
|
949,228
|
||||||
|
152,852
|
||||||
|
536,444
|
||||||
|
359,705
|
||||||
|
946,780
|
||||||
|
21,863
|
||||||
|
395,864
|
||||||
|
527,603
|
||||||
|
167,856
|
||||||
|
877,516
|
||||||
|
1046,586
|
||||||
|
1146,287
|
||||||
|
651,604
|
||||||
|
32,383
|
||||||
|
75,800
|
||||||
|
364,780
|
||||||
|
306,470
|
||||||
|
689,332
|
||||||
|
310,362
|
||||||
|
759,451
|
||||||
|
70,198
|
||||||
|
748,639
|
||||||
|
937,795
|
||||||
|
515,453
|
||||||
|
1113,24
|
||||||
|
873,819
|
||||||
|
706,99
|
||||||
|
1031,179
|
||||||
|
60,88
|
||||||
|
211,786
|
||||||
|
1051,626
|
||||||
|
518,490
|
||||||
|
341,722
|
||||||
|
413,598
|
||||||
|
301,772
|
||||||
|
238,38
|
||||||
|
159,318
|
||||||
|
1265,547
|
||||||
|
572,803
|
||||||
|
557,241
|
||||||
|
947,250
|
||||||
|
490,781
|
||||||
|
1054,191
|
||||||
|
1158,148
|
||||||
|
388,358
|
||||||
|
575,191
|
||||||
|
961,826
|
||||||
|
723,268
|
||||||
|
314,402
|
||||||
|
208,612
|
||||||
|
433,348
|
||||||
|
549,515
|
||||||
|
361,814
|
||||||
|
410,4
|
||||||
|
618,324
|
||||||
|
109,75
|
||||||
|
1190,599
|
||||||
|
207,864
|
||||||
|
78,79
|
||||||
|
1151,455
|
||||||
|
701,362
|
||||||
|
135,266
|
||||||
|
1250,399
|
||||||
|
1072,808
|
||||||
|
616,298
|
||||||
|
1163,653
|
||||||
|
1200,19
|
||||||
|
951,789
|
||||||
|
518,404
|
||||||
|
698,890
|
||||||
|
1029,249
|
||||||
|
820,781
|
||||||
|
930,555
|
||||||
|
92,479
|
||||||
|
739,367
|
||||||
|
623,677
|
||||||
|
252,108
|
||||||
|
372,612
|
||||||
|
668,884
|
||||||
|
842,880
|
||||||
|
36,794
|
||||||
|
395,30
|
||||||
|
1305,742
|
||||||
|
987,380
|
||||||
|
1164,66
|
||||||
|
922,582
|
||||||
|
1019,512
|
||||||
|
678,273
|
||||||
|
187,389
|
||||||
|
1136,479
|
||||||
|
243,527
|
||||||
|
209,476
|
||||||
|
446,810
|
||||||
|
1245,656
|
||||||
|
1068,372
|
||||||
|
341,526
|
||||||
|
770,635
|
||||||
|
92,150
|
||||||
|
852,175
|
||||||
|
619,473
|
||||||
|
195,77
|
||||||
|
229,464
|
||||||
|
218,705
|
||||||
|
887,110
|
||||||
|
206,519
|
||||||
|
684,333
|
||||||
|
221,378
|
||||||
|
31,217
|
||||||
|
477,498
|
||||||
|
967,448
|
||||||
|
907,551
|
||||||
|
947,306
|
||||||
|
1072,114
|
||||||
|
1153,71
|
||||||
|
987,828
|
||||||
|
472,504
|
||||||
|
937,520
|
||||||
|
952,656
|
||||||
|
795,291
|
||||||
|
795,697
|
||||||
|
1120,14
|
||||||
|
1019,382
|
||||||
|
279,248
|
||||||
|
1181,444
|
||||||
|
699,833
|
||||||
|
535,254
|
||||||
|
629,424
|
||||||
|
1176,508
|
||||||
|
515,155
|
||||||
|
1022,359
|
||||||
|
253,123
|
||||||
|
701,84
|
||||||
|
498,72
|
||||||
|
1228,834
|
||||||
|
65,689
|
||||||
|
470,847
|
||||||
|
216,875
|
||||||
|
836,756
|
||||||
|
1279,229
|
||||||
|
1221,703
|
||||||
|
406,806
|
||||||
|
699,285
|
||||||
|
415,373
|
||||||
|
154,448
|
||||||
|
612,331
|
||||||
|
632,173
|
||||||
|
67,142
|
||||||
|
492,172
|
||||||
|
512,120
|
||||||
|
1185,350
|
||||||
|
537,28
|
||||||
|
1079,9
|
||||||
|
95,379
|
||||||
|
231,254
|
||||||
|
398,807
|
||||||
|
219,816
|
||||||
|
189,333
|
||||||
|
386,301
|
||||||
|
858,456
|
||||||
|
361,142
|
||||||
|
242,336
|
||||||
|
1103,864
|
||||||
|
1165,282
|
||||||
|
957,794
|
||||||
|
256,817
|
||||||
|
743,584
|
||||||
|
412,372
|
||||||
|
261,211
|
||||||
|
65,459
|
||||||
|
13,789
|
||||||
|
1190,410
|
||||||
|
1124,61
|
||||||
|
681,526
|
||||||
|
31,677
|
||||||
|
585,304
|
||||||
|
679,155
|
||||||
|
13,626
|
||||||
|
594,120
|
||||||
|
415,521
|
||||||
|
951,105
|
||||||
|
179,848
|
||||||
|
895,231
|
||||||
|
960,497
|
||||||
|
1237,568
|
||||||
|
77,374
|
||||||
|
678,173
|
||||||
|
1222,562
|
||||||
|
565,863
|
||||||
|
33,218
|
||||||
|
1116,432
|
||||||
|
559,110
|
||||||
|
658,87
|
||||||
|
947,25
|
||||||
|
43,61
|
||||||
|
937,732
|
||||||
|
464,880
|
||||||
|
969,78
|
||||||
|
622,819
|
||||||
|
406,634
|
||||||
|
796,61
|
||||||
|
736,387
|
||||||
|
681,470
|
||||||
|
641,341
|
||||||
|
1144,820
|
||||||
|
544,875
|
||||||
|
626,701
|
||||||
|
1215,640
|
||||||
|
1218,479
|
||||||
|
192,834
|
||||||
|
1031,226
|
||||||
|
437,819
|
||||||
|
467,837
|
||||||
|
570,134
|
||||||
|
1260,795
|
||||||
|
760,276
|
||||||
|
259,864
|
||||||
|
877,277
|
||||||
|
135,42
|
||||||
|
36,548
|
||||||
|
31,789
|
||||||
|
147,205
|
||||||
|
840,847
|
||||||
|
269,861
|
||||||
|
509,612
|
||||||
|
259,101
|
||||||
|
1028,164
|
||||||
|
423,784
|
||||||
|
1020,873
|
||||||
|
490,315
|
||||||
|
492,378
|
||||||
|
412,558
|
||||||
|
375,491
|
||||||
|
564,399
|
||||||
|
324,606
|
||||||
|
740,894
|
||||||
|
594,806
|
||||||
|
812,72
|
||||||
|
102,707
|
||||||
|
989,857
|
||||||
|
460,550
|
||||||
|
412,858
|
||||||
|
457,24
|
||||||
|
663,11
|
||||||
|
184,159
|
||||||
|
457,712
|
||||||
|
616,477
|
||||||
|
348,47
|
||||||
|
239,455
|
||||||
|
279,198
|
||||||
|
385,705
|
||||||
|
587,414
|
||||||
|
1118,386
|
||||||
|
929,747
|
||||||
|
1235,416
|
||||||
|
900,4
|
||||||
|
786,623
|
||||||
|
36,570
|
||||||
|
281,700
|
||||||
|
1034,717
|
||||||
|
303,453
|
||||||
|
50,795
|
||||||
|
776,372
|
||||||
|
572,333
|
||||||
|
863,618
|
||||||
|
622,607
|
||||||
|
395,133
|
||||||
|
1260,39
|
||||||
|
937,645
|
||||||
|
139,645
|
||||||
|
798,679
|
||||||
|
281,697
|
||||||
|
428,362
|
||||||
|
467,603
|
||||||
|
604,263
|
||||||
|
734,634
|
||||||
|
551,451
|
||||||
|
1102,58
|
||||||
|
164,579
|
||||||
|
1006,497
|
||||||
|
616,701
|
||||||
|
53,241
|
||||||
|
872,427
|
||||||
|
1302,726
|
||||||
|
576,602
|
||||||
|
324,288
|
||||||
|
216,467
|
||||||
|
45,547
|
||||||
|
1049,766
|
||||||
|
243,303
|
||||||
|
53,721
|
||||||
|
78,558
|
||||||
|
13,618
|
||||||
|
609,621
|
||||||
|
1062,806
|
||||||
|
305,68
|
||||||
|
1136,191
|
||||||
|
887,885
|
||||||
|
157,71
|
||||||
|
70,696
|
||||||
|
244,442
|
||||||
|
949,142
|
||||||
|
47,739
|
||||||
|
880,596
|
||||||
|
45,697
|
||||||
|
2,830
|
||||||
|
744,758
|
||||||
|
1196,187
|
||||||
|
296,572
|
||||||
|
179,400
|
||||||
|
256,369
|
||||||
|
912,646
|
||||||
|
1290,47
|
||||||
|
304,397
|
||||||
|
160,306
|
||||||
|
290,138
|
||||||
|
443,633
|
||||||
|
947,158
|
||||||
|
43,462
|
||||||
|
1094,331
|
||||||
|
845,122
|
||||||
|
867,633
|
||||||
|
31,705
|
||||||
|
324,746
|
||||||
|
508,138
|
||||||
|
607,646
|
||||||
|
937,84
|
||||||
|
735,255
|
||||||
|
1200,875
|
||||||
|
1192,276
|
||||||
|
349,68
|
||||||
|
408,91
|
||||||
|
229,502
|
||||||
|
229,397
|
||||||
|
525,24
|
||||||
|
793,561
|
||||||
|
932,177
|
||||||
|
647,11
|
||||||
|
706,263
|
||||||
|
50,487
|
||||||
|
1225,547
|
||||||
|
673,264
|
||||||
|
1089,378
|
||||||
|
773,756
|
||||||
|
986,148
|
||||||
|
242,558
|
||||||
|
1290,847
|
||||||
|
97,379
|
||||||
|
731,106
|
||||||
|
238,114
|
||||||
|
875,78
|
||||||
|
850,717
|
||||||
|
67,480
|
||||||
|
975,683
|
||||||
|
95,672
|
||||||
|
1089,617
|
||||||
|
1171,645
|
||||||
|
53,465
|
||||||
|
1275,645
|
||||||
|
895,663
|
||||||
|
10,255
|
||||||
|
160,484
|
||||||
|
703,646
|
||||||
|
1240,807
|
||||||
|
1012,197
|
||||||
|
523,553
|
||||||
|
1290,582
|
||||||
|
735,252
|
||||||
|
865,583
|
||||||
|
872,467
|
||||||
|
646,56
|
||||||
|
668,458
|
||||||
|
13,520
|
||||||
|
1009,772
|
||||||
|
1034,316
|
||||||
|
965,182
|
||||||
|
726,817
|
||||||
|
1308,87
|
||||||
|
540,259
|
||||||
|
735,642
|
||||||
|
997,78
|
||||||
|
92,253
|
||||||
|
734,196
|
||||||
|
221,635
|
||||||
|
576,303
|
||||||
|
77,520
|
||||||
|
1031,198
|
||||||
|
1059,551
|
||||||
|
545,523
|
||||||
|
447,618
|
||||||
|
401,120
|
||||||
|
378,401
|
||||||
|
1081,877
|
||||||
|
281,249
|
||||||
|
169,185
|
||||||
|
820,315
|
||||||
|
681,368
|
||||||
|
977,366
|
||||||
|
10,395
|
||||||
|
358,238
|
||||||
|
415,231
|
||||||
|
224,596
|
||||||
|
517,561
|
||||||
|
1267,432
|
||||||
|
398,646
|
||||||
|
438,467
|
||||||
|
293,114
|
||||||
|
1215,379
|
||||||
|
1257,465
|
||||||
|
612,779
|
||||||
|
525,444
|
||||||
|
25,526
|
||||||
|
345,264
|
||||||
|
1213,379
|
||||||
|
534,596
|
||||||
|
1208,806
|
||||||
|
716,774
|
||||||
|
944,87
|
||||||
|
887,784
|
||||||
|
957,346
|
||||||
|
480,36
|
||||||
|
1121,561
|
||||||
|
184,774
|
||||||
|
1279,189
|
||||||
|
790,386
|
||||||
|
443,338
|
||||||
|
1218,639
|
||||||
|
32,735
|
||||||
|
1019,420
|
||||||
|
562,422
|
||||||
|
334,30
|
||||||
|
33,80
|
||||||
|
965,264
|
||||||
|
1051,101
|
||||||
|
1279,665
|
||||||
|
1144,606
|
||||||
|
535,192
|
||||||
|
146,586
|
||||||
|
1265,473
|
||||||
|
33,814
|
||||||
|
67,515
|
||||||
|
801,282
|
||||||
|
1228,333
|
||||||
|
536,724
|
||||||
|
252,786
|
||||||
|
862,331
|
||||||
|
694,535
|
||||||
|
338,499
|
||||||
|
129,472
|
||||||
|
1068,336
|
||||||
|
88,758
|
||||||
|
962,424
|
||||||
|
1170,733
|
||||||
|
1250,358
|
||||||
|
282,164
|
||||||
|
698,779
|
||||||
|
1230,248
|
||||||
|
1150,858
|
||||||
|
187,827
|
||||||
|
537,583
|
||||||
|
845,781
|
||||||
|
810,0
|
||||||
|
435,78
|
||||||
|
20,586
|
||||||
|
333,528
|
||||||
|
313,301
|
||||||
|
256,191
|
||||||
|
455,43
|
||||||
|
415,567
|
||||||
|
1059,103
|
||||||
|
462,60
|
||||||
|
189,109
|
||||||
|
1150,306
|
||||||
|
559,603
|
||||||
|
549,281
|
||||||
|
856,794
|
||||||
|
1039,100
|
||||||
|
863,52
|
||||||
|
944,417
|
||||||
|
536,170
|
||||||
|
499,479
|
||||||
|
1000,308
|
||||||
|
283,14
|
||||||
|
515,697
|
||||||
|
552,124
|
||||||
|
1205,525
|
||||||
|
333,857
|
||||||
|
753,653
|
||||||
|
152,596
|
||||||
|
576,292
|
||||||
|
1278,287
|
||||||
|
485,295
|
||||||
|
269,705
|
||||||
|
1094,875
|
||||||
|
241,99
|
||||||
|
298,197
|
||||||
|
977,857
|
||||||
|
622,523
|
||||||
|
351,827
|
||||||
|
38,477
|
||||||
|
848,732
|
||||||
|
306,495
|
||||||
|
587,142
|
||||||
|
1111,851
|
||||||
|
514,733
|
||||||
|
1205,515
|
||||||
|
587,773
|
||||||
|
271,794
|
||||||
|
1068,36
|
||||||
|
706,631
|
||||||
|
164,287
|
||||||
|
189,785
|
||||||
|
925,267
|
||||||
|
70,421
|
||||||
|
1104,563
|
||||||
|
609,532
|
||||||
|
539,627
|
||||||
|
208,170
|
||||||
|
775,702
|
||||||
|
415,663
|
||||||
|
835,46
|
||||||
|
458,175
|
||||||
|
310,586
|
||||||
|
1113,450
|
||||||
|
1183,800
|
||||||
|
102,134
|
||||||
|
216,147
|
||||||
|
105,187
|
||||||
|
1266,388
|
||||||
|
1279,637
|
||||||
|
715,161
|
||||||
|
1205,826
|
||||||
|
522,550
|
||||||
|
783,458
|
||||||
|
354,350
|
||||||
|
576,784
|
||||||
|
734,740
|
||||||
|
1129,406
|
||||||
|
1226,760
|
||||||
|
935,198
|
||||||
|
1140,520
|
||||||
|
979,739
|
||||||
|
845,113
|
||||||
|
641,520
|
||||||
|
740,50
|
||||||
|
612,115
|
||||||
|
1232,558
|
||||||
|
987,66
|
||||||
|
105,707
|
||||||
|
378,347
|
||||||
|
324,8
|
||||||
|
944,872
|
||||||
|
425,464
|
||||||
|
682,875
|
||||||
|
1215,222
|
||||||
|
353,445
|
||||||
|
853,712
|
||||||
|
1205,379
|
||||||
|
1059,247
|
||||||
|
748,479
|
||||||
|
420,191
|
||||||
|
835,848
|
||||||
|
525,870
|
||||||
|
736,646
|
||||||
|
261,576
|
||||||
|
251,247
|
||||||
|
751,110
|
||||||
|
689,80
|
||||||
|
139,291
|
||||||
|
723,773
|
||||||
|
758,124
|
||||||
|
281,197
|
||||||
|
927,409
|
||||||
|
840,868
|
||||||
|
537,866
|
||||||
|
751,603
|
||||||
|
271,485
|
||||||
|
947,698
|
||||||
|
1151,318
|
||||||
|
688,819
|
||||||
|
907,654
|
||||||
|
109,819
|
||||||
|
197,892
|
||||||
|
35,645
|
||||||
|
734,154
|
||||||
|
790,60
|
||||||
|
401,351
|
||||||
|
313,520
|
||||||
|
1138,222
|
||||||
|
845,794
|
||||||
|
433,98
|
||||||
|
656,42
|
||||||
|
1099,786
|
||||||
|
1007,453
|
||||||
|
851,77
|
||||||
|
783,352
|
||||||
|
328,107
|
||||||
|
473,406
|
||||||
|
885,654
|
||||||
|
323,66
|
||||||
|
167,38
|
||||||
|
669,480
|
||||||
|
567,584
|
||||||
|
1308,830
|
||||||
|
1228,113
|
||||||
|
733,72
|
||||||
|
1019,474
|
||||||
|
2,298
|
||||||
|
363,25
|
||||||
|
575,703
|
||||||
|
363,158
|
||||||
|
137,100
|
||||||
|
259,416
|
||||||
|
242,50
|
||||||
|
738,289
|
||||||
|
1066,803
|
||||||
|
1020,780
|
||||||
|
331,439
|
||||||
|
957,445
|
||||||
|
743,663
|
||||||
|
380,339
|
||||||
|
371,61
|
||||||
|
222,618
|
||||||
|
468,432
|
||||||
|
535,842
|
||||||
|
1081,502
|
||||||
|
226,362
|
||||||
|
224,298
|
||||||
|
291,535
|
||||||
|
1195,871
|
||||||
|
725,304
|
||||||
|
734,751
|
||||||
|
23,739
|
||||||
|
535,397
|
||||||
|
447,842
|
||||||
|
448,331
|
||||||
|
291,158
|
||||||
|
1004,424
|
||||||
|
977,264
|
||||||
|
438,595
|
||||||
|
89,15
|
||||||
|
371,304
|
||||||
|
616,193
|
||||||
|
120,599
|
||||||
|
1240,817
|
||||||
|
281,362
|
||||||
|
383,346
|
||||||
|
388,582
|
||||||
|
406,536
|
||||||
|
1277,80
|
||||||
|
145,52
|
||||||
|
32,287
|
||||||
|
1235,800
|
||||||
|
912,87
|
||||||
|
32,299
|
||||||
|
893,792
|
||||||
|
765,75
|
||||||
|
962,343
|
||||||
|
1019,333
|
||||||
|
192,508
|
||||||
|
330,311
|
||||||
|
986,288
|
||||||
|
559,336
|
||||||
|
248,634
|
||||||
|
157,80
|
||||||
|
1071,455
|
||||||
|
276,401
|
||||||
|
594,658
|
||||||
|
281,795
|
||||||
|
470,420
|
||||||
|
843,603
|
||||||
|
313,78
|
||||||
|
711,393
|
||||||
|
1139,820
|
||||||
|
124,759
|
||||||
|
805,610
|
||||||
|
85,347
|
||||||
|
833,396
|
||||||
|
1190,779
|
||||||
|
93,366
|
||||||
|
1173,100
|
||||||
|
495,128
|
||||||
|
162,154
|
||||||
|
1073,123
|
||||||
|
562,639
|
||||||
|
291,561
|
||||||
|
1151,576
|
||||||
|
293,786
|
||||||
|
585,590
|
||||||
|
1307,738
|
||||||
|
1123,827
|
||||||
|
661,266
|
||||||
|
514,161
|
||||||
|
1066,386
|
||||||
|
570,894
|
||||||
|
725,142
|
||||||
|
792,404
|
||||||
|
259,478
|
||||||
|
36,52
|
||||||
|
251,240
|
||||||
|
43,432
|
||||||
|
190,462
|
||||||
|
917,576
|
||||||
|
244,4
|
||||||
|
259,268
|
||||||
|
1141,332
|
||||||
|
855,291
|
||||||
|
1004,47
|
||||||
|
162,68
|
||||||
|
502,820
|
||||||
|
95,178
|
||||||
|
1138,670
|
||||||
|
266,326
|
||||||
|
666,843
|
||||||
|
1084,84
|
||||||
|
1051,581
|
||||||
|
1220,847
|
||||||
|
1027,733
|
||||||
|
1153,103
|
||||||
|
437,75
|
||||||
|
708,299
|
||||||
|
1274,346
|
||||||
|
264,586
|
||||||
|
669,520
|
||||||
|
890,191
|
||||||
|
247,252
|
||||||
|
798,215
|
||||||
|
300,19
|
||||||
|
166,606
|
||||||
|
216,651
|
||||||
|
385,267
|
||||||
|
248,751
|
||||||
|
986,606
|
||||||
|
950,147
|
||||||
|
468,880
|
||||||
|
243,815
|
||||||
|
1201,819
|
||||||
|
423,110
|
||||||
|
939,164
|
||||||
|
761,505
|
||||||
|
1215,515
|
||||||
|
179,429
|
||||||
|
1233,374
|
||||||
|
551,443
|
||||||
|
137,337
|
||||||
|
1020,394
|
||||||
|
1063,642
|
||||||
|
1208,760
|
||||||
|
972,499
|
||||||
|
922,806
|
||||||
|
497,103
|
||||||
|
420,705
|
||||||
|
92,639
|
||||||
|
1081,430
|
||||||
|
771,788
|
||||||
|
654,225
|
||||||
|
751,178
|
||||||
|
375,179
|
||||||
|
1265,697
|
||||||
|
497,743
|
||||||
|
331,455
|
||||||
|
20,84
|
||||||
|
70,817
|
||||||
|
1192,450
|
||||||
|
835,465
|
||||||
|
415,788
|
||||||
|
1285,449
|
||||||
|
986,135
|
||||||
|
699,609
|
||||||
|
1222,786
|
||||||
|
629,526
|
||||||
|
291,512
|
||||||
|
1133,172
|
||||||
|
924,593
|
||||||
|
5,742
|
||||||
|
840,287
|
||||||
|
893,123
|
||||||
|
242,396
|
||||||
|
846,462
|
||||||
|
410,605
|
||||||
|
88,562
|
||||||
|
1215,626
|
||||||
|
1036,523
|
||||||
|
571,367
|
||||||
|
1079,885
|
||||||
|
425,465
|
||||||
|
1158,852
|
||||||
|
1218,641
|
||||||
|
692,394
|
||||||
|
1260,99
|
||||||
|
515,291
|
||||||
|
990,416
|
||||||
|
276,130
|
||||||
|
1161,284
|
||||||
|
935,226
|
||||||
|
843,505
|
||||||
|
738,803
|
||||||
|
1310,852
|
||||||
|
3,738
|
||||||
|
288,359
|
||||||
|
783,291
|
||||||
|
474,756
|
||||||
|
689,590
|
||||||
|
125,350
|
||||||
|
269,259
|
||||||
|
102,806
|
||||||
|
82,60
|
||||||
|
244,803
|
||||||
|
977,630
|
||||||
|
927,548
|
||||||
|
1274,570
|
||||||
|
1196,707
|
||||||
|
698,563
|
||||||
|
115,871
|
||||||
|
279,403
|
||||||
|
87,231
|
||||||
|
1068,74
|
||||||
|
652,746
|
||||||
|
1057,95
|
||||||
|
1282,417
|
||||||
|
485,709
|
||||||
|
1304,598
|
||||||
|
1282,193
|
||||||
|
95,515
|
||||||
|
647,435
|
||||||
|
433,277
|
||||||
|
895,106
|
||||||
|
70,807
|
||||||
|
244,91
|
||||||
|
646,838
|
||||||
|
748,33
|
||||||
|
587,827
|
||||||
|
641,480
|
||||||
|
1278,299
|
||||||
|
1171,301
|
||||||
|
1297,268
|
||||||
|
50,347
|
||||||
|
1089,169
|
||||||
|
701,25
|
||||||
|
211,338
|
||||||
|
1243,379
|
||||||
|
13,268
|
||||||
|
348,424
|
||||||
|
595,733
|
||||||
|
616,596
|
||||||
|
787,525
|
||||||
|
120,779
|
||||||
|
423,864
|
||||||
|
634,532
|
||||||
|
242,844
|
||||||
|
873,75
|
||||||
|
1267,730
|
||||||
|
502,746
|
||||||
|
281,173
|
||||||
|
822,750
|
||||||
|
402,108
|
||||||
|
694,701
|
||||||
|
206,666
|
||||||
|
927,841
|
||||||
|
341,816
|
||||||
|
594,47
|
||||||
|
1067,815
|
||||||
|
118,892
|
||||||
|
166,807
|
||||||
|
95,626
|
||||||
|
403,654
|
||||||
|
454,100
|
||||||
|
59,609
|
||||||
|
895,788
|
||||||
|
721,241
|
||||||
|
676,532
|
||||||
|
74,310
|
||||||
|
333,485
|
||||||
|
1029,84
|
||||||
|
830,36
|
||||||
|
599,501
|
||||||
|
1218,749
|
||||||
|
417,123
|
||||||
|
1057,123
|
||||||
|
694,193
|
||||||
|
324,512
|
||||||
|
179,494
|
||||||
|
842,432
|
||||||
|
979,439
|
||||||
|
155,479
|
||||||
|
1161,610
|
||||||
|
187,515
|
||||||
|
930,339
|
||||||
|
1183,291
|
||||||
|
393,318
|
||||||
|
1290,532
|
||||||
|
788,550
|
||||||
|
785,291
|
||||||
|
947,830
|
||||||
|
1186,759
|
||||||
|
867,556
|
||||||
|
748,861
|
||||||
|
460,177
|
||||||
|
713,852
|
||||||
|
358,572
|
||||||
|
507,633
|
||||||
|
1265,421
|
||||||
|
631,155
|
||||||
|
1243,414
|
||||||
|
1222,108
|
||||||
|
229,430
|
||||||
|
715,285
|
||||||
|
818,131
|
||||||
|
|
||||||
|
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
|
94
src/bin/13.rs
Normal file
94
src/bin/13.rs
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
use std::{collections::HashSet, fmt::Display};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let (mut paper, mut instructions) = input();
|
||||||
|
|
||||||
|
paper.apply(instructions.next().unwrap());
|
||||||
|
println!("First solution: {}", paper.0.len());
|
||||||
|
|
||||||
|
for i in instructions {
|
||||||
|
paper.apply(i);
|
||||||
|
}
|
||||||
|
println!("Second solution:\n{}", paper);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Paper(HashSet<(usize, usize)>);
|
||||||
|
|
||||||
|
impl Display for Paper {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
let (width, height) = self.size();
|
||||||
|
for y in 0..=height {
|
||||||
|
for x in 0..=width {
|
||||||
|
if self.0.contains(&(x, y)) {
|
||||||
|
write!(f, "#")?;
|
||||||
|
} else {
|
||||||
|
write!(f, " ")?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
writeln!(f)?;
|
||||||
|
}
|
||||||
|
writeln!(f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Paper {
|
||||||
|
fn apply(&mut self, instruction: Instruction) {
|
||||||
|
self.0 = self
|
||||||
|
.0
|
||||||
|
.iter()
|
||||||
|
.copied()
|
||||||
|
.map(|(x, y)| match instruction {
|
||||||
|
Instruction::X(n) => {
|
||||||
|
if x > n {
|
||||||
|
(x - 2 * (x - n), y)
|
||||||
|
} else {
|
||||||
|
(x, y)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Instruction::Y(n) => {
|
||||||
|
if y > n {
|
||||||
|
(x, y - 2 * (y - n))
|
||||||
|
} else {
|
||||||
|
(x, y)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns the highest x and the highest y
|
||||||
|
fn size(&self) -> (usize, usize) {
|
||||||
|
self.0
|
||||||
|
.iter()
|
||||||
|
.fold((0, 0), |(x1, y1), (x2, y2)| (x1.max(*x2), y1.max(*y2)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy)]
|
||||||
|
enum Instruction {
|
||||||
|
X(usize),
|
||||||
|
Y(usize),
|
||||||
|
}
|
||||||
|
|
||||||
|
fn input() -> (Paper, impl Iterator<Item = Instruction>) {
|
||||||
|
let file = include_str!("../../input/13.txt");
|
||||||
|
|
||||||
|
let paper = Paper(
|
||||||
|
file.lines()
|
||||||
|
.filter(|l| l.contains(','))
|
||||||
|
.map(|l| l.split_once(',').unwrap())
|
||||||
|
.map(|(x, y)| (x.parse().unwrap(), y.parse().unwrap()))
|
||||||
|
.collect(),
|
||||||
|
);
|
||||||
|
|
||||||
|
let instructions =
|
||||||
|
file.lines()
|
||||||
|
.filter(|l| l.contains('='))
|
||||||
|
.map(|l| match l.split_once('=').unwrap() {
|
||||||
|
("fold along x", n) => Instruction::X(n.parse().unwrap()),
|
||||||
|
("fold along y", n) => Instruction::Y(n.parse().unwrap()),
|
||||||
|
x => panic!("unknown instruction: {:?}", x),
|
||||||
|
});
|
||||||
|
|
||||||
|
(paper, instructions)
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue