Day 🐱👤
parent
c8fb69e2c7
commit
91e499078c
@ -0,0 +1,4 @@
|
||||
name = "day13"
|
||||
uuid = "247b46b5-f226-4f99-8c0d-068ba1fc2a6d"
|
||||
authors = ["HeNine "]
|
||||
version = "0.1.0"
|
@ -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
|
@ -0,0 +1,828 @@
|
||||
802,891
|
||||
773,324
|
||||
1125,3
|
||||
910,718
|
||||
433,626
|
||||
1310,809
|
||||
840,799
|
||||
415,74
|
||||
346,306
|
||||
1203,817
|
||||
793,877
|
||||
18,194
|
||||
120,554
|
||||
1016,887
|
||||
437,238
|
||||
249,730
|
||||
212,66
|
||||
955,457
|
||||
873,656
|
||||
607,155
|
||||
311,820
|
||||
98,824
|
||||
769,639
|
||||
547,172
|
||||
1059,596
|
||||
320,273
|
||||
676,457
|
||||
698,491
|
||||
661,535
|
||||
718,803
|
||||
212,28
|
||||
366,642
|
||||
862,563
|
||||
298,295
|
||||
1011,493
|
||||
370,779
|
||||
1118,416
|
||||
1285,576
|
||||
760,703
|
||||
22,466
|
||||
87,570
|
||||
391,84
|
||||
1115,737
|
||||
331,155
|
||||
1126,773
|
||||
684,485
|
||||
334,733
|
||||
1288,816
|
||||
681,576
|
||||
268,191
|
||||
375,152
|
||||
142,266
|
||||
604,596
|
||||
836,451
|
||||
763,396
|
||||
758,140
|
||||
323,739
|
||||
851,381
|
||||
301,877
|
||||
1261,371
|
||||
410,116
|
||||
248,677
|
||||
502,687
|
||||
724,565
|
||||
858,43
|
||||
430,376
|
||||
63,117
|
||||
776,564
|
||||
612,331
|
||||
1197,191
|
||||
331,610
|
||||
1250,878
|
||||
460,158
|
||||
1267,511
|
||||
719,187
|
||||
644,838
|
||||
333,402
|
||||
470,799
|
||||
567,379
|
||||
249,58
|
||||
1250,68
|
||||
288,252
|
||||
1242,117
|
||||
1007,654
|
||||
1222,845
|
||||
1041,519
|
||||
80,788
|
||||
206,115
|
||||
594,530
|
||||
25,241
|
||||
643,875
|
||||
432,191
|
||||
537,232
|
||||
263,551
|
||||
758,717
|
||||
251,596
|
||||
62,131
|
||||
944,611
|
||||
334,161
|
||||
659,535
|
||||
949,40
|
||||
918,387
|
||||
679,584
|
||||
20,437
|
||||
1044,829
|
||||
89,252
|
||||
55,4
|
||||
851,79
|
||||
266,513
|
||||
1262,878
|
||||
388,206
|
||||
448,872
|
||||
945,103
|
||||
224,327
|
||||
480,522
|
||||
228,51
|
||||
179,663
|
||||
959,576
|
||||
241,406
|
||||
800,210
|
||||
1044,152
|
||||
118,677
|
||||
1248,131
|
||||
107,15
|
||||
656,361
|
||||
1272,731
|
||||
209,423
|
||||
1190,106
|
||||
1082,51
|
||||
221,716
|
||||
25,576
|
||||
1158,655
|
||||
534,330
|
||||
1004,880
|
||||
3,359
|
||||
1092,23
|
||||
82,408
|
||||
45,438
|
||||
442,866
|
||||
602,494
|
||||
1083,814
|
||||
661,135
|
||||
269,519
|
||||
321,178
|
||||
666,838
|
||||
952,861
|
||||
687,530
|
||||
140,479
|
||||
1158,522
|
||||
218,107
|
||||
349,446
|
||||
857,481
|
||||
584,584
|
||||
1186,627
|
||||
918,497
|
||||
102,177
|
||||
435,767
|
||||
887,313
|
||||
266,206
|
||||
1136,541
|
||||
1140,173
|
||||
704,430
|
||||
787,551
|
||||
514,31
|
||||
326,743
|
||||
634,569
|
||||
1056,606
|
||||
1178,264
|
||||
423,313
|
||||
316,166
|
||||
654,501
|
||||
1285,352
|
||||
385,453
|
||||
704,28
|
||||
864,329
|
||||
370,227
|
||||
1179,551
|
||||
20,549
|
||||
99,586
|
||||
1036,400
|
||||
617,453
|
||||
1124,740
|
||||
678,18
|
||||
97,705
|
||||
228,70
|
||||
738,330
|
||||
1086,376
|
||||
1069,854
|
||||
962,327
|
||||
922,740
|
||||
1158,186
|
||||
731,570
|
||||
1124,708
|
||||
798,677
|
||||
388,152
|
||||
606,430
|
||||
279,739
|
||||
179,638
|
||||
1096,74
|
||||
527,261
|
||||
1158,708
|
||||
435,654
|
||||
796,31
|
||||
910,372
|
||||
820,757
|
||||
1036,494
|
||||
435,319
|
||||
22,18
|
||||
797,672
|
||||
656,393
|
||||
224,791
|
||||
146,796
|
||||
386,199
|
||||
684,35
|
||||
1131,638
|
||||
546,107
|
||||
179,784
|
||||
989,716
|
||||
1053,579
|
||||
361,854
|
||||
741,358
|
||||
393,396
|
||||
455,149
|
||||
1183,334
|
||||
1059,74
|
||||
234,372
|
||||
377,859
|
||||
195,135
|
||||
1179,595
|
||||
1211,590
|
||||
258,441
|
||||
632,620
|
||||
663,315
|
||||
1253,599
|
||||
749,567
|
||||
875,767
|
||||
1010,28
|
||||
760,191
|
||||
480,372
|
||||
960,516
|
||||
1193,570
|
||||
780,122
|
||||
68,777
|
||||
591,707
|
||||
1082,163
|
||||
1235,52
|
||||
880,70
|
||||
102,269
|
||||
1303,579
|
||||
228,731
|
||||
644,15
|
||||
743,379
|
||||
1047,791
|
||||
1164,796
|
||||
107,77
|
||||
918,61
|
||||
98,180
|
||||
1287,766
|
||||
38,88
|
||||
80,554
|
||||
1242,453
|
||||
335,756
|
||||
160,77
|
||||
1183,633
|
||||
1119,353
|
||||
512,714
|
||||
112,372
|
||||
388,812
|
||||
87,122
|
||||
259,805
|
||||
388,490
|
||||
262,397
|
||||
5,135
|
||||
580,789
|
||||
430,518
|
||||
440,64
|
||||
922,737
|
||||
1212,70
|
||||
0,85
|
||||
1169,670
|
||||
393,498
|
||||
1235,298
|
||||
1009,94
|
||||
890,746
|
||||
500,477
|
||||
377,390
|
||||
191,681
|
||||
550,373
|
||||
1104,22
|
||||
309,523
|
||||
1261,483
|
||||
1119,289
|
||||
343,105
|
||||
1069,406
|
||||
120,106
|
||||
131,807
|
||||
922,152
|
||||
1235,148
|
||||
940,115
|
||||
567,603
|
||||
366,611
|
||||
180,219
|
||||
426,714
|
||||
249,282
|
||||
453,413
|
||||
1216,777
|
||||
403,74
|
||||
894,768
|
||||
214,382
|
||||
924,423
|
||||
1170,863
|
||||
20,457
|
||||
1032,268
|
||||
935,152
|
||||
862,872
|
||||
75,52
|
||||
266,812
|
||||
470,95
|
||||
716,154
|
||||
1130,684
|
||||
796,414
|
||||
1108,851
|
||||
436,107
|
||||
842,634
|
||||
975,579
|
||||
964,434
|
||||
344,852
|
||||
758,306
|
||||
800,684
|
||||
1263,742
|
||||
1299,19
|
||||
1130,675
|
||||
140,414
|
||||
144,684
|
||||
1048,173
|
||||
947,73
|
||||
584,310
|
||||
592,803
|
||||
582,288
|
||||
924,689
|
||||
25,149
|
||||
231,133
|
||||
1098,380
|
||||
840,456
|
||||
966,115
|
||||
1267,383
|
||||
107,655
|
||||
408,780
|
||||
726,310
|
||||
108,3
|
||||
288,88
|
||||
1170,480
|
||||
308,882
|
||||
503,231
|
||||
157,247
|
||||
321,716
|
||||
113,703
|
||||
848,416
|
||||
180,451
|
||||
152,298
|
||||
913,91
|
||||
681,696
|
||||
902,780
|
||||
363,821
|
||||
42,128
|
||||
875,799
|
||||
415,372
|
||||
243,873
|
||||
597,841
|
||||
897,58
|
||||
328,295
|
||||
1252,471
|
||||
120,564
|
||||
421,567
|
||||
987,807
|
||||
1101,232
|
||||
899,873
|
||||
219,799
|
||||
266,65
|
||||
301,800
|
||||
569,596
|
||||
967,820
|
||||
579,74
|
||||
475,256
|
||||
944,546
|
||||
738,784
|
||||
663,138
|
||||
70,63
|
||||
719,707
|
||||
1228,564
|
||||
884,731
|
||||
195,513
|
||||
335,138
|
||||
1223,772
|
||||
288,59
|
||||
426,395
|
||||
257,579
|
||||
517,254
|
||||
1246,609
|
||||
453,481
|
||||
840,266
|
||||
736,486
|
||||
808,207
|
||||
15,7
|
||||
303,128
|
||||
917,396
|
||||
98,714
|
||||
626,485
|
||||
792,866
|
||||
89,364
|
||||
70,136
|
||||
1310,85
|
||||
469,443
|
||||
448,564
|
||||
647,756
|
||||
719,329
|
||||
858,346
|
||||
989,135
|
||||
356,491
|
||||
1000,779
|
||||
977,402
|
||||
960,722
|
||||
241,506
|
||||
1179,343
|
||||
1190,788
|
||||
319,315
|
||||
345,371
|
||||
415,820
|
||||
124,478
|
||||
1082,731
|
||||
266,152
|
||||
234,746
|
||||
212,514
|
||||
830,74
|
||||
1047,777
|
||||
1186,346
|
||||
274,494
|
||||
363,261
|
||||
1000,563
|
||||
430,70
|
||||
288,194
|
||||
852,586
|
||||
870,74
|
||||
862,51
|
||||
1305,135
|
||||
1031,379
|
||||
300,812
|
||||
234,592
|
||||
42,42
|
||||
1015,82
|
||||
683,885
|
||||
1169,84
|
||||
667,19
|
||||
726,63
|
||||
975,138
|
||||
383,890
|
||||
683,9
|
||||
1151,423
|
||||
1168,714
|
||||
1096,294
|
||||
222,191
|
||||
146,98
|
||||
1159,187
|
||||
1203,351
|
||||
743,772
|
||||
1116,288
|
||||
234,522
|
||||
405,730
|
||||
900,116
|
||||
1235,842
|
||||
411,469
|
||||
540,380
|
||||
361,152
|
||||
1052,441
|
||||
490,154
|
||||
1033,259
|
||||
607,742
|
||||
363,745
|
||||
425,189
|
||||
375,805
|
||||
1135,691
|
||||
186,186
|
||||
716,269
|
||||
703,600
|
||||
1004,569
|
||||
206,51
|
||||
840,95
|
||||
627,885
|
||||
214,858
|
||||
1021,103
|
||||
823,516
|
||||
396,453
|
||||
924,205
|
||||
42,766
|
||||
1088,821
|
||||
398,63
|
||||
1130,219
|
||||
855,143
|
||||
1091,575
|
||||
967,522
|
||||
694,358
|
||||
435,879
|
||||
796,303
|
||||
562,750
|
||||
1230,554
|
||||
984,743
|
||||
569,88
|
||||
3,162
|
||||
10,431
|
||||
780,346
|
||||
20,325
|
||||
802,796
|
||||
433,268
|
||||
1290,549
|
||||
634,457
|
||||
728,288
|
||||
510,449
|
||||
99,308
|
||||
1098,66
|
||||
1067,873
|
||||
345,84
|
||||
1210,875
|
||||
1288,18
|
||||
435,369
|
||||
574,786
|
||||
388,154
|
||||
802,236
|
||||
566,49
|
||||
1218,144
|
||||
192,478
|
||||
1111,149
|
||||
202,346
|
||||
631,310
|
||||
309,371
|
||||
803,336
|
||||
743,603
|
||||
689,628
|
||||
1043,255
|
||||
1061,826
|
||||
514,210
|
||||
1048,61
|
||||
944,806
|
||||
1108,43
|
||||
1071,372
|
||||
638,180
|
||||
1307,535
|
||||
994,166
|
||||
378,858
|
||||
704,464
|
||||
949,742
|
||||
82,486
|
||||
1048,397
|
||||
206,563
|
||||
413,806
|
||||
1164,98
|
||||
344,115
|
||||
842,740
|
||||
1136,820
|
||||
514,414
|
||||
366,252
|
||||
919,329
|
||||
108,252
|
||||
594,364
|
||||
321,807
|
||||
278,250
|
||||
1062,385
|
||||
550,191
|
||||
224,376
|
||||
1098,828
|
||||
1009,800
|
||||
387,507
|
||||
172,417
|
||||
897,88
|
||||
195,759
|
||||
131,299
|
||||
940,667
|
||||
1163,876
|
||||
5,359
|
||||
181,791
|
||||
731,324
|
||||
388,404
|
||||
1086,327
|
||||
736,106
|
||||
310,563
|
||||
174,820
|
||||
140,863
|
||||
75,148
|
||||
957,800
|
||||
776,106
|
||||
62,763
|
||||
398,831
|
||||
1088,546
|
||||
1108,100
|
||||
155,26
|
||||
1026,563
|
||||
164,137
|
||||
830,522
|
||||
323,162
|
||||
127,334
|
||||
676,773
|
||||
758,754
|
||||
398,735
|
||||
572,116
|
||||
120,788
|
||||
117,794
|
||||
961,672
|
||||
769,255
|
||||
1208,269
|
||||
596,504
|
||||
954,528
|
||||
289,847
|
||||
426,742
|
||||
629,653
|
||||
574,106
|
||||
736,277
|
||||
263,777
|
||||
1178,630
|
||||
92,750
|
||||
299,493
|
||||
209,232
|
||||
705,147
|
||||
1014,301
|
||||
855,149
|
||||
405,58
|
||||
1044,65
|
||||
503,635
|
||||
537,324
|
||||
1007,310
|
||||
58,471
|
||||
597,151
|
||||
147,784
|
||||
1263,155
|
||||
440,830
|
||||
1203,879
|
||||
1002,882
|
||||
1203,77
|
||||
366,806
|
||||
951,82
|
||||
1290,457
|
||||
271,442
|
||||
716,826
|
||||
565,252
|
||||
932,204
|
||||
954,483
|
||||
924,695
|
||||
492,309
|
||||
1228,486
|
||||
1235,827
|
||||
1169,810
|
||||
1031,739
|
||||
912,63
|
||||
1101,662
|
||||
392,833
|
||||
1303,586
|
||||
793,17
|
||||
693,453
|
||||
316,728
|
||||
1088,191
|
||||
227,814
|
||||
964,306
|
||||
527,633
|
||||
373,701
|
||||
934,626
|
||||
249,164
|
||||
1282,409
|
||||
124,627
|
||||
579,148
|
||||
698,122
|
||||
764,107
|
||||
416,768
|
||||
634,549
|
||||
1173,472
|
||||
654,395
|
||||
1047,117
|
||||
1001,810
|
||||
1115,513
|
||||
1190,554
|
||||
1087,194
|
||||
661,807
|
||||
1022,835
|
||||
216,494
|
||||
385,285
|
||||
629,696
|
||||
263,117
|
||||
546,227
|
||||
152,74
|
||||
1009,17
|
||||
497,247
|
||||
131,595
|
||||
857,413
|
||||
1126,438
|
||||
344,779
|
||||
378,690
|
||||
1168,180
|
||||
708,494
|
||||
1034,718
|
||||
951,364
|
||||
835,558
|
||||
798,180
|
||||
1056,718
|
||||
567,324
|
||||
1211,308
|
||||
954,366
|
||||
922,404
|
||||
905,58
|
||||
592,579
|
||||
1116,630
|
||||
1218,808
|
||||
1272,806
|
||||
862,330
|
||||
723,581
|
||||
797,222
|
||||
1250,157
|
||||
716,812
|
||||
835,256
|
||||
895,74
|
||||
541,639
|
||||
351,128
|
||||
959,878
|
||||
940,43
|
||||
388,42
|
||||
1072,320
|
||||
862,42
|
||||
1131,663
|
||||
152,655
|
||||
1247,859
|
||||
1183,261
|
||||
377,483
|
||||
694,194
|
||||
426,163
|
||||
512,441
|
||||
147,22
|
||||
587,581
|
||||
612,212
|
||||
137,640
|
||||
522,264
|
||||
345,362
|
||||
1310,533
|
||||
932,690
|
||||
612,213
|
||||
18,700
|
||||
1213,705
|
||||
514,479
|
||||
925,823
|
||||
400,718
|
||||
1179,147
|
||||
142,180
|
||||
448,22
|
||||
266,240
|
||||
159,516
|
||||
154,417
|
||||
20,264
|
||||
966,779
|
||||
934,644
|
||||
1076,302
|
||||
1056,288
|
||||
64,509
|
||||
175,411
|
||||
1163,448
|
||||
378,158
|
||||
842,186
|
||||
626,859
|
||||
92,144
|
||||
979,854
|
||||
800,642
|
||||
701,456
|
||||
884,742
|
||||
348,567
|
||||
1235,746
|
||||
1022,59
|
||||
135,737
|
||||
346,460
|
||||
918,507
|
||||
1307,827
|
||||
1178,712
|
||||
651,359
|
||||
428,105
|
||||
1115,381
|
||||
49,479
|
||||
1299,875
|
||||
730,789
|
||||
596,639
|
||||
463,737
|
||||
828,417
|
||||
1007,128
|
||||
654,499
|
||||
1206,73
|
||||
326,151
|
||||
489,357
|
||||
452,346
|
||||
508,763
|
||||
354,364
|
||||
218,787
|
||||
966,563
|
||||
1131,231
|
||||
514,415
|
||||
862,778
|
||||
676,569
|
||||
359,140
|
||||
584,383
|
||||
915,805
|
||||
914,117
|
||||
830,372
|
||||
405,612
|
||||
1001,523
|
||||
965,810
|
||||
1017,152
|
||||
1285,149
|
||||
1031,600
|
||||
932,288
|
||||
708,400
|
||||
487,378
|
||||
1295,455
|
||||
880,824
|
||||
979,40
|
||||
|
||||
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
|
@ -0,0 +1,102 @@
|
||||
include("../../AoC2021.jl")
|
||||
|
||||
##
|
||||
|
||||
function parsefile(file)
|
||||
|
||||
points = []
|
||||
|
||||
for line in eachline(file)
|
||||
if line == ""
|
||||
break
|
||||
end
|
||||
|
||||
push!(points, (split(line, ",") .|>
|
||||
Base.Fix1(parse, Int)) |>
|
||||
x -> (x[1], x[2]).+1)
|
||||
end
|
||||
|
||||
paper = zeros(Bool, maximum(map(((x,y),)->y, points)),maximum(map(((x,y),)->x, points)))
|
||||
|
||||
for (x,y) ∈ points
|
||||
paper[y,x] = true
|
||||
end
|
||||
|
||||
folds = map(eachline(file)) do line
|
||||
matches = match(r"fold along (?<axis>[xy])=(?<coord>\d+)", line)
|
||||
|
||||
(matches["axis"] == "x" ? Val(x) : Val(y), parse(Int, matches["coord"])+1)
|
||||
end
|
||||
|
||||
(paper, folds)
|
||||
end
|
||||
|
||||
@enum Axes x y
|
||||
|
||||
function foldpaper(paper, ::Val{x}, coord)
|
||||
folded = paper[:, end:-1:(coord+1)]
|
||||
|
||||
foldedpaper = paper[:, 1:(coord-1)]
|
||||
foldedpaper[:, (end-size(folded, 2)+1):end] .|= folded
|
||||
|
||||
foldedpaper
|
||||
end
|
||||
|
||||
function foldpaper(paper, ::Val{y}, coord)
|
||||
folded = paper[end:-1:(coord+1), :]
|
||||
|
||||
|
||||
foldedpaper = paper[1:(coord-1), :]
|
||||
foldedpaper[(end-size(folded, 1)+1):end, :] .|= folded
|
||||
|
||||
foldedpaper
|
||||
end
|
||||
|
||||
##
|
||||
|
||||
function task0(file)
|
||||
(paper, folds) = parsefile(file)
|
||||
|
||||
sum(foldpaper(paper, folds[1]...))
|
||||
end
|
||||
|
||||
##
|
||||
|
||||
verify(13, 1, 0, 17)
|
||||
verify(13, 1, 1, 693)
|
||||
|
||||
##
|
||||
|
||||
function task1(file)
|
||||
(paper, folds) = parsefile(file)
|
||||
|
||||
folded = foldl((paper, foldins) -> foldpaper(paper, foldins...), folds, init=paper)
|
||||
|
||||
eachrow(map(x-> x ? "█" : " ", folded)) .|>
|
||||
(x->join(x,"")) |>
|
||||
(x->join(x,'\n')) |> println
|
||||
|
||||
folded
|
||||
end
|
||||
|
||||
##
|
||||
|
||||
verify(13, 2, 0,
|
||||
[
|
||||
1 1 1 1 1
|
||||
1 0 0 0 1
|
||||
1 0 0 0 1
|
||||
1 0 0 0 1
|
||||
1 1 1 1 1
|
||||
0 0 0 0 0
|
||||
0 0 0 0 0
|
||||
])
|
||||
verify(13, 2, 1,
|
||||
[
|
||||
1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0
|
||||
1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0
|
||||
1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0
|
||||
1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0
|
||||
1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0
|
||||
0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0
|
||||
])
|
Loading…
Reference in New Issue