day 13
parent
ad4db01ba7
commit
3d524f518e
@ -0,0 +1,859 @@
|
||||
176,226
|
||||
749,474
|
||||
1218,784
|
||||
1193,451
|
||||
478,224
|
||||
1019,620
|
||||
865,667
|
||||
884,178
|
||||
622,505
|
||||
43,856
|
||||
475,619
|
||||
1295,96
|
||||
497,499
|
||||
589,326
|
||||
117,267
|
||||
559,361
|
||||
402,863
|
||||
1220,277
|
||||
167,617
|
||||
955,560
|
||||
1011,135
|
||||
311,618
|
||||
865,198
|
||||
855,761
|
||||
698,241
|
||||
180,786
|
||||
728,523
|
||||
832,222
|
||||
865,67
|
||||
1280,649
|
||||
155,844
|
||||
990,406
|
||||
688,505
|
||||
990,488
|
||||
1116,288
|
||||
1047,266
|
||||
181,408
|
||||
27,401
|
||||
883,257
|
||||
253,610
|
||||
1213,131
|
||||
967,395
|
||||
581,605
|
||||
316,302
|
||||
1260,425
|
||||
967,171
|
||||
721,774
|
||||
618,668
|
||||
604,51
|
||||
858,323
|
||||
520,553
|
||||
271,730
|
||||
749,567
|
||||
1274,892
|
||||
1054,102
|
||||
117,301
|
||||
201,598
|
||||
227,257
|
||||
1193,267
|
||||
146,658
|
||||
87,498
|
||||
1017,313
|
||||
1211,628
|
||||
118,668
|
||||
1059,259
|
||||
48,169
|
||||
698,292
|
||||
405,516
|
||||
676,110
|
||||
1101,667
|
||||
298,453
|
||||
251,119
|
||||
1046,529
|
||||
1245,774
|
||||
1019,722
|
||||
1009,365
|
||||
117,593
|
||||
27,469
|
||||
599,164
|
||||
915,775
|
||||
1088,91
|
||||
530,407
|
||||
124,571
|
||||
494,378
|
||||
97,59
|
||||
995,443
|
||||
311,49
|
||||
345,822
|
||||
175,469
|
||||
174,560
|
||||
427,66
|
||||
261,120
|
||||
371,38
|
||||
73,844
|
||||
145,637
|
||||
674,675
|
||||
1275,646
|
||||
787,44
|
||||
1074,57
|
||||
478,229
|
||||
1140,630
|
||||
999,51
|
||||
559,252
|
||||
30,649
|
||||
1256,182
|
||||
836,882
|
||||
801,679
|
||||
271,394
|
||||
176,665
|
||||
989,211
|
||||
887,533
|
||||
431,147
|
||||
760,539
|
||||
1207,523
|
||||
73,172
|
||||
786,690
|
||||
504,674
|
||||
1039,858
|
||||
1034,702
|
||||
540,277
|
||||
457,89
|
||||
393,436
|
||||
995,397
|
||||
728,371
|
||||
556,850
|
||||
180,747
|
||||
345,72
|
||||
887,361
|
||||
484,742
|
||||
692,598
|
||||
835,619
|
||||
1057,158
|
||||
1159,891
|
||||
412,201
|
||||
801,33
|
||||
391,628
|
||||
1116,736
|
||||
1240,344
|
||||
530,487
|
||||
667,397
|
||||
639,171
|
||||
880,168
|
||||
390,813
|
||||
788,176
|
||||
1250,793
|
||||
780,487
|
||||
445,667
|
||||
1217,857
|
||||
832,705
|
||||
42,763
|
||||
813,499
|
||||
700,444
|
||||
114,619
|
||||
1191,884
|
||||
119,10
|
||||
791,313
|
||||
917,436
|
||||
1243,343
|
||||
1290,513
|
||||
15,798
|
||||
728,75
|
||||
179,833
|
||||
683,873
|
||||
773,260
|
||||
830,271
|
||||
567,620
|
||||
610,450
|
||||
395,567
|
||||
231,361
|
||||
1135,469
|
||||
1278,46
|
||||
1136,399
|
||||
780,357
|
||||
403,567
|
||||
671,778
|
||||
343,51
|
||||
902,78
|
||||
676,241
|
||||
345,486
|
||||
504,224
|
||||
136,593
|
||||
458,400
|
||||
806,224
|
||||
274,873
|
||||
753,347
|
||||
591,714
|
||||
699,856
|
||||
966,427
|
||||
991,773
|
||||
169,859
|
||||
85,339
|
||||
817,175
|
||||
470,733
|
||||
932,52
|
||||
378,310
|
||||
164,694
|
||||
999,619
|
||||
552,168
|
||||
523,44
|
||||
807,303
|
||||
843,623
|
||||
999,299
|
||||
160,826
|
||||
97,723
|
||||
557,347
|
||||
790,553
|
||||
1143,617
|
||||
701,637
|
||||
1109,598
|
||||
1193,515
|
||||
418,505
|
||||
522,649
|
||||
184,733
|
||||
801,705
|
||||
227,42
|
||||
1255,235
|
||||
222,159
|
||||
92,784
|
||||
95,364
|
||||
912,344
|
||||
85,787
|
||||
1170,511
|
||||
756,809
|
||||
473,184
|
||||
226,731
|
||||
676,513
|
||||
1130,108
|
||||
251,775
|
||||
219,484
|
||||
219,708
|
||||
151,357
|
||||
1192,674
|
||||
360,505
|
||||
1267,486
|
||||
972,592
|
||||
626,221
|
||||
1268,292
|
||||
445,248
|
||||
830,495
|
||||
69,143
|
||||
401,485
|
||||
1213,884
|
||||
1175,313
|
||||
1241,303
|
||||
612,627
|
||||
634,676
|
||||
947,620
|
||||
729,498
|
||||
721,326
|
||||
1299,451
|
||||
544,537
|
||||
1079,306
|
||||
373,172
|
||||
1036,873
|
||||
519,357
|
||||
1163,203
|
||||
1197,268
|
||||
802,147
|
||||
95,585
|
||||
181,413
|
||||
858,213
|
||||
604,537
|
||||
452,323
|
||||
662,488
|
||||
276,401
|
||||
1178,357
|
||||
743,128
|
||||
236,57
|
||||
1210,309
|
||||
905,516
|
||||
99,492
|
||||
430,168
|
||||
1083,637
|
||||
706,625
|
||||
345,408
|
||||
569,555
|
||||
831,61
|
||||
32,400
|
||||
1208,352
|
||||
892,505
|
||||
97,884
|
||||
58,7
|
||||
227,852
|
||||
1143,572
|
||||
643,751
|
||||
311,548
|
||||
12,450
|
||||
276,394
|
||||
505,707
|
||||
370,355
|
||||
599,659
|
||||
445,67
|
||||
557,884
|
||||
1211,154
|
||||
1084,137
|
||||
1238,523
|
||||
551,747
|
||||
264,589
|
||||
755,850
|
||||
887,431
|
||||
311,845
|
||||
27,465
|
||||
254,814
|
||||
102,726
|
||||
10,750
|
||||
184,676
|
||||
676,784
|
||||
831,541
|
||||
1039,500
|
||||
937,172
|
||||
140,607
|
||||
831,353
|
||||
479,61
|
||||
264,813
|
||||
259,119
|
||||
840,733
|
||||
239,262
|
||||
1136,750
|
||||
68,341
|
||||
1275,248
|
||||
445,26
|
||||
766,537
|
||||
1265,396
|
||||
1098,53
|
||||
774,668
|
||||
50,537
|
||||
152,175
|
||||
118,674
|
||||
472,331
|
||||
1283,401
|
||||
1299,443
|
||||
1163,691
|
||||
1012,493
|
||||
909,50
|
||||
639,723
|
||||
870,393
|
||||
975,185
|
||||
1212,492
|
||||
229,777
|
||||
1310,172
|
||||
627,149
|
||||
42,292
|
||||
1206,287
|
||||
136,145
|
||||
97,131
|
||||
11,443
|
||||
671,171
|
||||
335,325
|
||||
686,549
|
||||
44,444
|
||||
1059,119
|
||||
1208,726
|
||||
197,420
|
||||
1120,301
|
||||
753,803
|
||||
1215,642
|
||||
975,709
|
||||
564,281
|
||||
197,474
|
||||
207,150
|
||||
805,707
|
||||
552,253
|
||||
144,563
|
||||
556,716
|
||||
1083,497
|
||||
503,357
|
||||
271,500
|
||||
1268,602
|
||||
145,215
|
||||
756,163
|
||||
290,296
|
||||
589,120
|
||||
1176,341
|
||||
691,198
|
||||
535,296
|
||||
962,625
|
||||
296,574
|
||||
555,873
|
||||
445,446
|
||||
171,722
|
||||
932,584
|
||||
944,401
|
||||
955,807
|
||||
580,479
|
||||
723,103
|
||||
355,334
|
||||
910,814
|
||||
73,624
|
||||
971,3
|
||||
698,653
|
||||
202,547
|
||||
1295,723
|
||||
1083,66
|
||||
283,436
|
||||
65,777
|
||||
295,738
|
||||
751,361
|
||||
1190,750
|
||||
519,177
|
||||
991,26
|
||||
494,826
|
||||
95,82
|
||||
1084,731
|
||||
1083,257
|
||||
1027,436
|
||||
1213,579
|
||||
75,150
|
||||
792,77
|
||||
518,77
|
||||
704,171
|
||||
72,523
|
||||
1116,158
|
||||
306,513
|
||||
388,65
|
||||
315,443
|
||||
97,619
|
||||
93,663
|
||||
282,892
|
||||
112,254
|
||||
134,647
|
||||
373,274
|
||||
113,268
|
||||
69,420
|
||||
151,751
|
||||
426,626
|
||||
1178,494
|
||||
473,486
|
||||
1211,413
|
||||
1119,465
|
||||
519,313
|
||||
691,795
|
||||
535,598
|
||||
170,712
|
||||
831,93
|
||||
1299,133
|
||||
1266,444
|
||||
937,786
|
||||
125,184
|
||||
718,813
|
||||
423,431
|
||||
229,290
|
||||
440,393
|
||||
1074,281
|
||||
1197,178
|
||||
965,72
|
||||
214,501
|
||||
263,621
|
||||
922,9
|
||||
788,649
|
||||
306,558
|
||||
909,284
|
||||
55,730
|
||||
1207,371
|
||||
1198,469
|
||||
994,302
|
||||
263,721
|
||||
311,299
|
||||
104,287
|
||||
550,355
|
||||
391,714
|
||||
216,331
|
||||
808,175
|
||||
1265,498
|
||||
694,855
|
||||
749,409
|
||||
746,613
|
||||
212,53
|
||||
378,584
|
||||
1026,355
|
||||
145,355
|
||||
425,604
|
||||
132,357
|
||||
557,507
|
||||
1047,621
|
||||
1159,3
|
||||
284,66
|
||||
1026,592
|
||||
28,553
|
||||
257,143
|
||||
470,228
|
||||
309,408
|
||||
315,497
|
||||
530,805
|
||||
882,611
|
||||
1113,420
|
||||
372,892
|
||||
1165,705
|
||||
892,11
|
||||
1236,479
|
||||
683,745
|
||||
20,513
|
||||
447,150
|
||||
753,507
|
||||
1290,558
|
||||
251,635
|
||||
721,120
|
||||
1193,739
|
||||
60,218
|
||||
309,486
|
||||
927,858
|
||||
509,705
|
||||
1178,537
|
||||
320,488
|
||||
1032,501
|
||||
618,598
|
||||
1034,500
|
||||
344,19
|
||||
763,858
|
||||
892,883
|
||||
1292,667
|
||||
561,679
|
||||
99,266
|
||||
774,226
|
||||
113,324
|
||||
627,877
|
||||
671,723
|
||||
907,567
|
||||
1056,841
|
||||
100,507
|
||||
253,64
|
||||
1237,605
|
||||
38,407
|
||||
1034,425
|
||||
654,172
|
||||
445,491
|
||||
348,625
|
||||
1233,128
|
||||
832,224
|
||||
445,448
|
||||
401,284
|
||||
140,511
|
||||
554,809
|
||||
1088,735
|
||||
567,498
|
||||
1116,437
|
||||
1135,751
|
||||
730,479
|
||||
581,50
|
||||
967,51
|
||||
709,745
|
||||
370,715
|
||||
32,46
|
||||
231,306
|
||||
209,739
|
||||
67,343
|
||||
837,315
|
||||
1196,723
|
||||
98,402
|
||||
1036,425
|
||||
98,850
|
||||
1233,340
|
||||
946,2
|
||||
1292,227
|
||||
1225,339
|
||||
920,529
|
||||
1283,465
|
||||
284,539
|
||||
1079,809
|
||||
868,53
|
||||
1059,567
|
||||
780,537
|
||||
171,172
|
||||
1215,812
|
||||
468,287
|
||||
1059,635
|
||||
401,50
|
||||
479,833
|
||||
999,49
|
||||
587,791
|
||||
611,486
|
||||
977,824
|
||||
343,52
|
||||
1303,284
|
||||
1017,784
|
||||
574,526
|
||||
1165,215
|
||||
127,722
|
||||
253,158
|
||||
512,228
|
||||
612,205
|
||||
643,397
|
||||
927,659
|
||||
1300,144
|
||||
1126,676
|
||||
1299,751
|
||||
80,424
|
||||
1200,537
|
||||
692,296
|
||||
535,436
|
||||
641,855
|
||||
919,714
|
||||
223,299
|
||||
725,591
|
||||
1213,723
|
||||
658,516
|
||||
838,331
|
||||
826,294
|
||||
1267,856
|
||||
470,653
|
||||
97,212
|
||||
837,710
|
||||
756,835
|
||||
831,425
|
||||
502,175
|
||||
290,2
|
||||
319,773
|
||||
1049,355
|
||||
919,833
|
||||
591,845
|
||||
373,786
|
||||
636,219
|
||||
540,802
|
||||
1257,597
|
||||
478,222
|
||||
298,1
|
||||
28,341
|
||||
850,9
|
||||
184,666
|
||||
251,327
|
||||
554,835
|
||||
995,891
|
||||
848,190
|
||||
1087,147
|
||||
1282,553
|
||||
152,560
|
||||
1236,415
|
||||
879,147
|
||||
674,219
|
||||
591,180
|
||||
370,144
|
||||
293,110
|
||||
1159,751
|
||||
940,592
|
||||
1073,830
|
||||
97,275
|
||||
503,21
|
||||
321,742
|
||||
1176,647
|
||||
1243,418
|
||||
107,858
|
||||
840,666
|
||||
281,219
|
||||
1265,189
|
||||
97,579
|
||||
291,620
|
||||
67,418
|
||||
749,679
|
||||
278,501
|
||||
272,182
|
||||
319,26
|
||||
1193,634
|
||||
6,488
|
||||
1001,408
|
||||
1131,61
|
||||
20,336
|
||||
666,750
|
||||
223,147
|
||||
1255,164
|
||||
1197,324
|
||||
20,241
|
||||
1139,722
|
||||
940,403
|
||||
627,45
|
||||
366,407
|
||||
363,172
|
||||
126,668
|
||||
1004,336
|
||||
711,164
|
||||
534,144
|
||||
773,525
|
||||
610,444
|
||||
520,647
|
||||
6,600
|
||||
455,133
|
||||
759,747
|
||||
766,357
|
||||
509,355
|
||||
759,147
|
||||
692,2
|
||||
1268,355
|
||||
530,313
|
||||
325,119
|
||||
117,379
|
||||
711,730
|
||||
753,91
|
||||
760,735
|
||||
1211,292
|
||||
775,296
|
||||
420,782
|
||||
338,592
|
||||
706,537
|
||||
465,697
|
||||
460,9
|
||||
503,143
|
||||
428,78
|
||||
1193,155
|
||||
1220,617
|
||||
1217,791
|
||||
528,226
|
||||
355,87
|
||||
1044,885
|
||||
801,579
|
||||
536,226
|
||||
145,539
|
||||
388,9
|
||||
551,147
|
||||
1155,844
|
||||
1012,45
|
||||
1260,619
|
||||
431,523
|
||||
1034,873
|
||||
84,873
|
||||
74,479
|
||||
691,696
|
||||
202,213
|
||||
229,499
|
||||
353,529
|
||||
643,451
|
||||
194,288
|
||||
169,35
|
||||
38,39
|
||||
93,499
|
||||
54,182
|
||||
966,19
|
||||
790,229
|
||||
170,630
|
||||
132,89
|
||||
1215,687
|
||||
1260,537
|
||||
1038,40
|
||||
175,21
|
||||
55,164
|
||||
425,731
|
||||
1101,739
|
||||
753,884
|
||||
793,107
|
||||
321,11
|
||||
922,829
|
||||
1081,499
|
||||
1079,85
|
||||
883,66
|
||||
194,736
|
||||
547,858
|
||||
356,893
|
||||
465,197
|
||||
540,275
|
||||
791,357
|
||||
522,89
|
||||
865,827
|
||||
38,597
|
||||
59,75
|
||||
135,313
|
||||
50,843
|
||||
749,215
|
||||
311,346
|
||||
378,52
|
||||
325,775
|
||||
775,744
|
||||
669,855
|
||||
683,149
|
||||
487,870
|
||||
1245,120
|
||||
1081,395
|
||||
769,122
|
||||
1282,445
|
||||
190,301
|
||||
1178,649
|
||||
946,892
|
||||
42,539
|
||||
1283,493
|
||||
209,369
|
||||
1196,171
|
||||
753,547
|
||||
529,184
|
||||
1146,200
|
||||
823,277
|
||||
647,284
|
||||
567,128
|
||||
107,36
|
||||
517,787
|
||||
423,361
|
||||
644,750
|
||||
1252,7
|
||||
333,294
|
||||
1217,26
|
||||
1303,610
|
||||
45,396
|
||||
175,61
|
||||
920,813
|
||||
952,544
|
||||
522,718
|
||||
848,359
|
||||
348,241
|
||||
1046,589
|
||||
263,861
|
||||
791,537
|
||||
356,1
|
||||
868,617
|
||||
1049,774
|
||||
823,572
|
||||
301,365
|
||||
634,381
|
||||
442,841
|
||||
1198,254
|
||||
27,493
|
||||
1283,849
|
||||
432,735
|
||||
33,558
|
||||
875,708
|
||||
38,855
|
||||
770,725
|
||||
263,609
|
||||
361,110
|
||||
1272,39
|
||||
729,172
|
||||
363,620
|
||||
1083,738
|
||||
908,31
|
||||
910,53
|
||||
848,862
|
||||
1178,89
|
||||
1010,369
|
||||
509,691
|
||||
72,11
|
||||
69,474
|
||||
676,676
|
||||
281,257
|
||||
1113,474
|
||||
544,357
|
||||
1174,593
|
||||
348,65
|
||||
38,465
|
||||
1260,394
|
||||
760,159
|
||||
145,189
|
||||
731,744
|
||||
266,885
|
||||
971,397
|
||||
181,481
|
||||
634,218
|
||||
103,523
|
||||
816,378
|
||||
1242,789
|
||||
145,257
|
||||
999,276
|
||||
1186,123
|
||||
|
||||
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,135 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type FoldAxis bool
|
||||
|
||||
const (
|
||||
Y FoldAxis = false
|
||||
X FoldAxis = true
|
||||
)
|
||||
|
||||
type Fold struct {
|
||||
direction FoldAxis
|
||||
line int
|
||||
}
|
||||
|
||||
func main() {
|
||||
grid, folds := setUpGrid()
|
||||
|
||||
var count int
|
||||
for i, f := range folds {
|
||||
grid, count = fold(&grid, f.direction, f.line)
|
||||
if i == 0 {
|
||||
fmt.Println(count)
|
||||
}
|
||||
}
|
||||
|
||||
for y := 0; y < len(grid); y++ {
|
||||
for x := 0; x < len(grid[0]); x++ {
|
||||
if grid[y][x] == 1 {
|
||||
fmt.Print("█")
|
||||
} else {
|
||||
fmt.Print(" ")
|
||||
}
|
||||
}
|
||||
fmt.Println()
|
||||
}
|
||||
}
|
||||
|
||||
func fold(g *[][]int, axis FoldAxis, line int) (grid [][]int, count int) {
|
||||
count = 0
|
||||
if axis == Y {
|
||||
grid = make([][]int, line)
|
||||
for i := range grid {
|
||||
grid[i] = make([]int, len((*g)[0]))
|
||||
}
|
||||
|
||||
for i := 1; i+line < len(*g) && line-i >= 0; i++ {
|
||||
aboveLine, belowLine := (*g)[i+line], (*g)[line-i]
|
||||
newLine := make([]int, len(aboveLine))
|
||||
for colNum := range newLine {
|
||||
if aboveLine[colNum] == 1 || belowLine[colNum] == 1 {
|
||||
newLine[colNum] = 1
|
||||
count++
|
||||
}
|
||||
}
|
||||
grid[line-i] = newLine
|
||||
}
|
||||
} else if axis == X {
|
||||
grid = make([][]int, len(*g))
|
||||
for i := range grid {
|
||||
grid[i] = make([]int, line)
|
||||
}
|
||||
for i1, v := range *g {
|
||||
for i := 0; i < line; i++ {
|
||||
if v[i] == 1 || v[len(v)-1-i] == 1 {
|
||||
grid[i1][i] = 1
|
||||
count++
|
||||
} else {
|
||||
grid[i1][i] = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func setUpGrid() (grid [][]int, folds []Fold) {
|
||||
folds = make([]Fold, 0)
|
||||
file, err := os.Open("input.txt")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
scanner := bufio.NewScanner(file)
|
||||
scanner.Split(bufio.ScanLines)
|
||||
|
||||
var maxX, maxY int
|
||||
dots := make([][]int, 0)
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
if line == "" {
|
||||
continue
|
||||
} else if strings.HasPrefix(line, "fold along x") {
|
||||
f := Fold{X, 0}
|
||||
fmt.Sscanf(line, "fold along x=%d", &f.line)
|
||||
folds = append(folds, f)
|
||||
} else if strings.HasPrefix(line, "fold along y") {
|
||||
f := Fold{Y, 0}
|
||||
fmt.Sscanf(line, "fold along y=%d", &f.line)
|
||||
folds = append(folds, f)
|
||||
} else {
|
||||
dotPoints := strings.Split(line, ",")
|
||||
dotPointsInt := make([]int, 2)
|
||||
for i, v := range dotPoints {
|
||||
num, _ := strconv.Atoi(v)
|
||||
dotPointsInt[i] = num
|
||||
if i == 0 && num > maxX {
|
||||
maxX = num
|
||||
}
|
||||
if i == 1 && num > maxY {
|
||||
maxY = num
|
||||
}
|
||||
}
|
||||
dots = append(dots, dotPointsInt)
|
||||
}
|
||||
}
|
||||
grid = make([][]int, maxY+1)
|
||||
for i := range grid {
|
||||
grid[i] = make([]int, maxX+1)
|
||||
}
|
||||
|
||||
for _, v := range dots {
|
||||
grid[v[1]][v[0]] = 1
|
||||
}
|
||||
return
|
||||
}
|
Loading…
Reference in New Issue