Added solutions for 13th day: Transparent Origami
This commit is contained in:
parent
86a723beeb
commit
457c0bc2af
4 changed files with 1143 additions and 0 deletions
21
2021/13/example
Normal file
21
2021/13/example
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
|
108
2021/13/first.go
Normal file
108
2021/13/first.go
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
dots [][]bool
|
||||||
|
width = -1
|
||||||
|
height = -1
|
||||||
|
)
|
||||||
|
|
||||||
|
func min(a, b int) int {
|
||||||
|
if a < b {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
func foldx(n int) {
|
||||||
|
for y := 0; y < height; y++ {
|
||||||
|
if len(dots[y]) < n {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if len(dots[y]) < width {
|
||||||
|
dots[y] = append(dots[y], make([]bool, width-len(dots[y])+1)...)
|
||||||
|
}
|
||||||
|
for i := 1; i <= n; i++ {
|
||||||
|
if dots[y][n+i] {
|
||||||
|
dots[y][n-i] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
width = n
|
||||||
|
}
|
||||||
|
|
||||||
|
func foldy(n int) {
|
||||||
|
for i := 1; i <= n; i++ {
|
||||||
|
dots[n-i] = append(dots[n-i], make([]bool, width-len(dots[n-i])+1)...)
|
||||||
|
for x := 0; x < len(dots[n+i]); x++ {
|
||||||
|
if dots[n+i][x] {
|
||||||
|
dots[n-i][x] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
height = n
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
scanner := bufio.NewScanner(os.Stdin)
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := strings.Split(scanner.Text(), ",")
|
||||||
|
if len(line) < 2 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
x, _ := strconv.Atoi(line[0])
|
||||||
|
y, _ := strconv.Atoi(line[1])
|
||||||
|
if y >= height {
|
||||||
|
dots = append(dots, make([][]bool, y-height+1)...)
|
||||||
|
height = y + 1
|
||||||
|
}
|
||||||
|
if x >= len(dots[y]) {
|
||||||
|
dots[y] = append(dots[y], make([]bool, x-len(dots[y])+1)...)
|
||||||
|
if x >= width {
|
||||||
|
width = x + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dots[y][x] = true
|
||||||
|
}
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := strings.Split(scanner.Text(), "=")
|
||||||
|
letter := line[0][11]
|
||||||
|
n, _ := strconv.Atoi(line[1])
|
||||||
|
if letter == 'y' {
|
||||||
|
foldy(n)
|
||||||
|
} else {
|
||||||
|
foldx(n)
|
||||||
|
}
|
||||||
|
for y := 0; y < height; y++ {
|
||||||
|
w := min(width, len(dots[y]))
|
||||||
|
for x := 0; x < w; x++ {
|
||||||
|
if dots[y][x] {
|
||||||
|
fmt.Printf("#")
|
||||||
|
} else {
|
||||||
|
fmt.Printf(".")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Println()
|
||||||
|
}
|
||||||
|
fmt.Println()
|
||||||
|
fmt.Println("---")
|
||||||
|
break
|
||||||
|
}
|
||||||
|
score := 0
|
||||||
|
for y := 0; y < height; y++ {
|
||||||
|
w := min(width, len(dots[y]))
|
||||||
|
for x := 0; x < w; x++ {
|
||||||
|
if dots[y][x] {
|
||||||
|
score++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Println(score)
|
||||||
|
}
|
916
2021/13/input
Normal file
916
2021/13/input
Normal file
|
@ -0,0 +1,916 @@
|
||||||
|
1213,736
|
||||||
|
1158,890
|
||||||
|
626,303
|
||||||
|
98,10
|
||||||
|
878,268
|
||||||
|
1208,143
|
||||||
|
112,400
|
||||||
|
865,894
|
||||||
|
1218,179
|
||||||
|
1089,418
|
||||||
|
535,886
|
||||||
|
726,515
|
||||||
|
1263,786
|
||||||
|
589,270
|
||||||
|
80,518
|
||||||
|
288,322
|
||||||
|
1101,483
|
||||||
|
989,308
|
||||||
|
1002,707
|
||||||
|
467,18
|
||||||
|
1036,364
|
||||||
|
552,591
|
||||||
|
445,280
|
||||||
|
912,40
|
||||||
|
1268,761
|
||||||
|
984,47
|
||||||
|
883,574
|
||||||
|
815,784
|
||||||
|
719,236
|
||||||
|
865,166
|
||||||
|
836,581
|
||||||
|
656,735
|
||||||
|
228,264
|
||||||
|
23,466
|
||||||
|
1099,515
|
||||||
|
1284,665
|
||||||
|
432,268
|
||||||
|
195,493
|
||||||
|
1001,308
|
||||||
|
430,222
|
||||||
|
1294,537
|
||||||
|
427,646
|
||||||
|
574,381
|
||||||
|
1116,829
|
||||||
|
1143,808
|
||||||
|
950,578
|
||||||
|
293,579
|
||||||
|
28,751
|
||||||
|
169,341
|
||||||
|
326,159
|
||||||
|
257,721
|
||||||
|
773,670
|
||||||
|
1231,556
|
||||||
|
306,436
|
||||||
|
454,520
|
||||||
|
1267,522
|
||||||
|
85,309
|
||||||
|
1273,358
|
||||||
|
1019,208
|
||||||
|
870,504
|
||||||
|
647,175
|
||||||
|
408,544
|
||||||
|
1310,386
|
||||||
|
912,854
|
||||||
|
512,10
|
||||||
|
674,770
|
||||||
|
273,742
|
||||||
|
626,584
|
||||||
|
112,10
|
||||||
|
736,420
|
||||||
|
1198,884
|
||||||
|
214,620
|
||||||
|
139,751
|
||||||
|
448,782
|
||||||
|
771,646
|
||||||
|
709,796
|
||||||
|
755,460
|
||||||
|
179,838
|
||||||
|
360,578
|
||||||
|
274,364
|
||||||
|
656,401
|
||||||
|
810,61
|
||||||
|
194,310
|
||||||
|
584,515
|
||||||
|
773,238
|
||||||
|
184,241
|
||||||
|
932,661
|
||||||
|
105,333
|
||||||
|
1096,838
|
||||||
|
959,838
|
||||||
|
252,341
|
||||||
|
1237,338
|
||||||
|
112,884
|
||||||
|
746,812
|
||||||
|
735,556
|
||||||
|
45,75
|
||||||
|
815,838
|
||||||
|
654,719
|
||||||
|
1225,309
|
||||||
|
1226,892
|
||||||
|
453,465
|
||||||
|
783,520
|
||||||
|
987,446
|
||||||
|
348,458
|
||||||
|
976,175
|
||||||
|
487,392
|
||||||
|
1307,558
|
||||||
|
1279,882
|
||||||
|
145,509
|
||||||
|
909,444
|
||||||
|
1310,389
|
||||||
|
626,527
|
||||||
|
356,527
|
||||||
|
363,774
|
||||||
|
142,130
|
||||||
|
246,581
|
||||||
|
1064,581
|
||||||
|
925,837
|
||||||
|
166,842
|
||||||
|
529,877
|
||||||
|
124,341
|
||||||
|
709,546
|
||||||
|
651,490
|
||||||
|
372,16
|
||||||
|
537,614
|
||||||
|
1004,213
|
||||||
|
1198,661
|
||||||
|
1240,40
|
||||||
|
701,504
|
||||||
|
1103,120
|
||||||
|
638,462
|
||||||
|
857,351
|
||||||
|
269,794
|
||||||
|
1099,122
|
||||||
|
624,360
|
||||||
|
1284,217
|
||||||
|
902,26
|
||||||
|
102,672
|
||||||
|
691,208
|
||||||
|
850,287
|
||||||
|
1083,698
|
||||||
|
636,770
|
||||||
|
475,539
|
||||||
|
1280,735
|
||||||
|
495,712
|
||||||
|
1273,655
|
||||||
|
217,854
|
||||||
|
1109,687
|
||||||
|
345,565
|
||||||
|
939,43
|
||||||
|
902,203
|
||||||
|
803,241
|
||||||
|
35,838
|
||||||
|
169,624
|
||||||
|
206,236
|
||||||
|
413,718
|
||||||
|
617,599
|
||||||
|
729,786
|
||||||
|
372,430
|
||||||
|
467,242
|
||||||
|
771,324
|
||||||
|
924,268
|
||||||
|
574,854
|
||||||
|
167,502
|
||||||
|
141,738
|
||||||
|
166,52
|
||||||
|
659,336
|
||||||
|
1240,123
|
||||||
|
672,462
|
||||||
|
902,581
|
||||||
|
883,320
|
||||||
|
37,655
|
||||||
|
209,0
|
||||||
|
897,875
|
||||||
|
823,630
|
||||||
|
1074,264
|
||||||
|
385,794
|
||||||
|
1131,838
|
||||||
|
1151,504
|
||||||
|
1294,357
|
||||||
|
1260,396
|
||||||
|
1228,768
|
||||||
|
209,57
|
||||||
|
1225,360
|
||||||
|
1111,710
|
||||||
|
333,586
|
||||||
|
996,371
|
||||||
|
954,140
|
||||||
|
790,367
|
||||||
|
843,348
|
||||||
|
1058,877
|
||||||
|
252,509
|
||||||
|
181,385
|
||||||
|
1218,267
|
||||||
|
1123,428
|
||||||
|
191,98
|
||||||
|
1039,372
|
||||||
|
214,504
|
||||||
|
274,260
|
||||||
|
359,751
|
||||||
|
1109,753
|
||||||
|
659,359
|
||||||
|
10,674
|
||||||
|
835,56
|
||||||
|
730,490
|
||||||
|
378,1
|
||||||
|
0,539
|
||||||
|
35,182
|
||||||
|
276,661
|
||||||
|
469,626
|
||||||
|
1061,533
|
||||||
|
783,432
|
||||||
|
656,847
|
||||||
|
281,707
|
||||||
|
187,428
|
||||||
|
1275,568
|
||||||
|
716,143
|
||||||
|
938,878
|
||||||
|
663,117
|
||||||
|
738,254
|
||||||
|
954,86
|
||||||
|
467,796
|
||||||
|
966,761
|
||||||
|
405,311
|
||||||
|
209,651
|
||||||
|
38,98
|
||||||
|
1233,824
|
||||||
|
430,837
|
||||||
|
1290,841
|
||||||
|
865,280
|
||||||
|
1123,18
|
||||||
|
985,170
|
||||||
|
182,859
|
||||||
|
1164,245
|
||||||
|
656,607
|
||||||
|
979,784
|
||||||
|
634,10
|
||||||
|
460,829
|
||||||
|
768,172
|
||||||
|
1126,317
|
||||||
|
1000,805
|
||||||
|
1198,830
|
||||||
|
629,536
|
||||||
|
208,542
|
||||||
|
1193,747
|
||||||
|
328,60
|
||||||
|
1123,751
|
||||||
|
1004,10
|
||||||
|
1056,571
|
||||||
|
254,571
|
||||||
|
1086,57
|
||||||
|
192,815
|
||||||
|
1287,204
|
||||||
|
1012,754
|
||||||
|
838,411
|
||||||
|
1225,361
|
||||||
|
380,310
|
||||||
|
616,117
|
||||||
|
621,243
|
||||||
|
1165,509
|
||||||
|
706,781
|
||||||
|
564,530
|
||||||
|
905,311
|
||||||
|
162,763
|
||||||
|
354,889
|
||||||
|
975,103
|
||||||
|
10,226
|
||||||
|
326,847
|
||||||
|
184,317
|
||||||
|
1261,143
|
||||||
|
1310,65
|
||||||
|
310,462
|
||||||
|
1208,672
|
||||||
|
402,17
|
||||||
|
85,361
|
||||||
|
129,847
|
||||||
|
1020,486
|
||||||
|
16,462
|
||||||
|
618,856
|
||||||
|
440,102
|
||||||
|
686,381
|
||||||
|
925,794
|
||||||
|
453,65
|
||||||
|
1287,639
|
||||||
|
180,656
|
||||||
|
507,91
|
||||||
|
460,65
|
||||||
|
893,271
|
||||||
|
344,581
|
||||||
|
609,208
|
||||||
|
246,432
|
||||||
|
781,246
|
||||||
|
185,268
|
||||||
|
311,696
|
||||||
|
736,488
|
||||||
|
346,707
|
||||||
|
875,708
|
||||||
|
38,565
|
||||||
|
420,267
|
||||||
|
433,18
|
||||||
|
1101,651
|
||||||
|
159,222
|
||||||
|
420,627
|
||||||
|
1245,446
|
||||||
|
905,361
|
||||||
|
954,527
|
||||||
|
909,450
|
||||||
|
495,392
|
||||||
|
755,434
|
||||||
|
179,429
|
||||||
|
1230,868
|
||||||
|
1129,621
|
||||||
|
932,681
|
||||||
|
211,122
|
||||||
|
344,313
|
||||||
|
52,530
|
||||||
|
602,288
|
||||||
|
947,326
|
||||||
|
433,113
|
||||||
|
634,557
|
||||||
|
529,17
|
||||||
|
647,117
|
||||||
|
1253,324
|
||||||
|
331,502
|
||||||
|
580,205
|
||||||
|
1111,184
|
||||||
|
359,143
|
||||||
|
52,36
|
||||||
|
32,409
|
||||||
|
1280,584
|
||||||
|
112,661
|
||||||
|
1143,392
|
||||||
|
1228,126
|
||||||
|
32,485
|
||||||
|
28,310
|
||||||
|
768,436
|
||||||
|
1000,761
|
||||||
|
281,502
|
||||||
|
753,214
|
||||||
|
443,646
|
||||||
|
1213,680
|
||||||
|
97,515
|
||||||
|
939,820
|
||||||
|
112,172
|
||||||
|
1068,674
|
||||||
|
371,43
|
||||||
|
1089,642
|
||||||
|
1064,82
|
||||||
|
1131,429
|
||||||
|
947,840
|
||||||
|
684,751
|
||||||
|
420,264
|
||||||
|
1082,660
|
||||||
|
965,553
|
||||||
|
52,82
|
||||||
|
795,751
|
||||||
|
351,98
|
||||||
|
1143,726
|
||||||
|
815,224
|
||||||
|
80,656
|
||||||
|
900,605
|
||||||
|
897,360
|
||||||
|
706,333
|
||||||
|
880,57
|
||||||
|
676,841
|
||||||
|
119,877
|
||||||
|
938,16
|
||||||
|
393,176
|
||||||
|
1001,586
|
||||||
|
507,388
|
||||||
|
31,194
|
||||||
|
405,182
|
||||||
|
35,470
|
||||||
|
185,716
|
||||||
|
1310,57
|
||||||
|
733,70
|
||||||
|
391,658
|
||||||
|
815,182
|
||||||
|
31,65
|
||||||
|
868,866
|
||||||
|
356,140
|
||||||
|
628,229
|
||||||
|
841,492
|
||||||
|
691,712
|
||||||
|
1195,696
|
||||||
|
634,287
|
||||||
|
523,65
|
||||||
|
345,138
|
||||||
|
310,49
|
||||||
|
663,623
|
||||||
|
474,581
|
||||||
|
520,639
|
||||||
|
224,57
|
||||||
|
1287,428
|
||||||
|
328,579
|
||||||
|
323,392
|
||||||
|
351,504
|
||||||
|
1287,255
|
||||||
|
815,360
|
||||||
|
194,136
|
||||||
|
207,269
|
||||||
|
542,436
|
||||||
|
432,178
|
||||||
|
110,634
|
||||||
|
878,716
|
||||||
|
201,829
|
||||||
|
897,718
|
||||||
|
52,726
|
||||||
|
328,159
|
||||||
|
1258,502
|
||||||
|
1307,87
|
||||||
|
1129,733
|
||||||
|
979,315
|
||||||
|
323,427
|
||||||
|
1002,187
|
||||||
|
351,639
|
||||||
|
938,430
|
||||||
|
527,520
|
||||||
|
870,176
|
||||||
|
1069,639
|
||||||
|
1307,467
|
||||||
|
36,856
|
||||||
|
23,31
|
||||||
|
413,534
|
||||||
|
402,341
|
||||||
|
687,65
|
||||||
|
619,120
|
||||||
|
634,884
|
||||||
|
1258,858
|
||||||
|
18,203
|
||||||
|
542,885
|
||||||
|
604,781
|
||||||
|
1282,758
|
||||||
|
5,553
|
||||||
|
1294,385
|
||||||
|
378,437
|
||||||
|
1096,56
|
||||||
|
835,838
|
||||||
|
23,876
|
||||||
|
1111,278
|
||||||
|
1011,33
|
||||||
|
308,707
|
||||||
|
117,798
|
||||||
|
331,763
|
||||||
|
470,241
|
||||||
|
830,732
|
||||||
|
1265,691
|
||||||
|
982,287
|
||||||
|
950,709
|
||||||
|
755,196
|
||||||
|
691,694
|
||||||
|
776,12
|
||||||
|
1290,765
|
||||||
|
619,40
|
||||||
|
738,640
|
||||||
|
1121,88
|
||||||
|
938,464
|
||||||
|
951,143
|
||||||
|
537,208
|
||||||
|
736,518
|
||||||
|
405,126
|
||||||
|
453,543
|
||||||
|
365,694
|
||||||
|
157,329
|
||||||
|
385,57
|
||||||
|
37,358
|
||||||
|
482,341
|
||||||
|
442,28
|
||||||
|
870,457
|
||||||
|
984,336
|
||||||
|
693,239
|
||||||
|
917,176
|
||||||
|
45,158
|
||||||
|
892,264
|
||||||
|
1258,812
|
||||||
|
1113,534
|
||||||
|
303,7
|
||||||
|
1004,661
|
||||||
|
569,869
|
||||||
|
281,158
|
||||||
|
378,681
|
||||||
|
569,534
|
||||||
|
16,509
|
||||||
|
435,708
|
||||||
|
373,840
|
||||||
|
1192,542
|
||||||
|
721,606
|
||||||
|
1041,794
|
||||||
|
1151,392
|
||||||
|
343,646
|
||||||
|
684,143
|
||||||
|
1064,740
|
||||||
|
552,751
|
||||||
|
1151,182
|
||||||
|
1143,616
|
||||||
|
698,313
|
||||||
|
1064,812
|
||||||
|
446,800
|
||||||
|
564,812
|
||||||
|
1191,717
|
||||||
|
452,105
|
||||||
|
85,360
|
||||||
|
947,504
|
||||||
|
380,82
|
||||||
|
937,483
|
||||||
|
319,551
|
||||||
|
922,815
|
||||||
|
1213,515
|
||||||
|
984,607
|
||||||
|
73,556
|
||||||
|
309,852
|
||||||
|
50,661
|
||||||
|
1181,847
|
||||||
|
1300,535
|
||||||
|
448,560
|
||||||
|
291,854
|
||||||
|
447,8
|
||||||
|
0,91
|
||||||
|
1191,625
|
||||||
|
932,233
|
||||||
|
371,689
|
||||||
|
361,131
|
||||||
|
865,798
|
||||||
|
1169,738
|
||||||
|
446,94
|
||||||
|
966,581
|
||||||
|
110,309
|
||||||
|
74,404
|
||||||
|
1000,49
|
||||||
|
1,842
|
||||||
|
798,354
|
||||||
|
20,884
|
||||||
|
1233,406
|
||||||
|
1230,243
|
||||||
|
492,267
|
||||||
|
867,248
|
||||||
|
346,187
|
||||||
|
1245,472
|
||||||
|
736,406
|
||||||
|
656,287
|
||||||
|
962,590
|
||||||
|
572,640
|
||||||
|
544,260
|
||||||
|
927,522
|
||||||
|
841,786
|
||||||
|
1029,392
|
||||||
|
169,278
|
||||||
|
378,445
|
||||||
|
420,630
|
||||||
|
488,52
|
||||||
|
626,751
|
||||||
|
927,372
|
||||||
|
691,854
|
||||||
|
803,355
|
||||||
|
3,87
|
||||||
|
1230,26
|
||||||
|
154,341
|
||||||
|
612,313
|
||||||
|
823,560
|
||||||
|
802,245
|
||||||
|
216,137
|
||||||
|
987,427
|
||||||
|
207,120
|
||||||
|
775,877
|
||||||
|
897,176
|
||||||
|
1266,654
|
||||||
|
541,191
|
||||||
|
159,110
|
||||||
|
1275,182
|
||||||
|
678,268
|
||||||
|
1153,565
|
||||||
|
1274,856
|
||||||
|
991,656
|
||||||
|
15,696
|
||||||
|
172,341
|
||||||
|
691,504
|
||||||
|
310,705
|
||||||
|
1275,470
|
||||||
|
574,243
|
||||||
|
448,637
|
||||||
|
1111,262
|
||||||
|
951,751
|
||||||
|
619,390
|
||||||
|
539,324
|
||||||
|
626,143
|
||||||
|
733,809
|
||||||
|
656,281
|
||||||
|
0,837
|
||||||
|
529,429
|
||||||
|
862,180
|
||||||
|
1279,194
|
||||||
|
947,568
|
||||||
|
227,574
|
||||||
|
378,400
|
||||||
|
418,364
|
||||||
|
556,182
|
||||||
|
969,481
|
||||||
|
500,61
|
||||||
|
947,774
|
||||||
|
761,333
|
||||||
|
1012,136
|
||||||
|
1258,530
|
||||||
|
574,518
|
||||||
|
666,311
|
||||||
|
326,558
|
||||||
|
512,130
|
||||||
|
870,718
|
||||||
|
689,682
|
||||||
|
1104,658
|
||||||
|
1101,614
|
||||||
|
187,876
|
||||||
|
1237,556
|
||||||
|
313,861
|
||||||
|
222,716
|
||||||
|
676,884
|
||||||
|
201,375
|
||||||
|
336,28
|
||||||
|
1058,509
|
||||||
|
469,492
|
||||||
|
1081,232
|
||||||
|
361,763
|
||||||
|
42,761
|
||||||
|
1183,462
|
||||||
|
1148,110
|
||||||
|
1273,239
|
||||||
|
905,712
|
||||||
|
863,438
|
||||||
|
905,518
|
||||||
|
736,474
|
||||||
|
1034,445
|
||||||
|
1088,716
|
||||||
|
1022,677
|
||||||
|
117,224
|
||||||
|
1265,686
|
||||||
|
1171,751
|
||||||
|
862,112
|
||||||
|
0,165
|
||||||
|
1123,546
|
||||||
|
1310,508
|
||||||
|
49,143
|
||||||
|
880,837
|
||||||
|
976,719
|
||||||
|
684,361
|
||||||
|
1233,70
|
||||||
|
28,478
|
||||||
|
82,126
|
||||||
|
1053,721
|
||||||
|
131,625
|
||||||
|
900,289
|
||||||
|
1193,278
|
||||||
|
373,65
|
||||||
|
1272,796
|
||||||
|
490,617
|
||||||
|
1016,633
|
||||||
|
413,176
|
||||||
|
82,96
|
||||||
|
1116,584
|
||||||
|
469,786
|
||||||
|
867,646
|
||||||
|
843,652
|
||||||
|
1118,815
|
||||||
|
775,886
|
||||||
|
624,829
|
||||||
|
166,500
|
||||||
|
555,574
|
||||||
|
385,837
|
||||||
|
455,278
|
||||||
|
487,840
|
||||||
|
65,446
|
||||||
|
1139,819
|
||||||
|
1211,460
|
||||||
|
1169,114
|
||||||
|
1101,894
|
||||||
|
624,381
|
||||||
|
227,250
|
||||||
|
119,269
|
||||||
|
1029,56
|
||||||
|
616,98
|
||||||
|
905,126
|
||||||
|
937,449
|
||||||
|
1096,504
|
||||||
|
1141,624
|
||||||
|
1099,772
|
||||||
|
201,687
|
||||||
|
1116,65
|
||||||
|
217,40
|
||||||
|
708,136
|
||||||
|
787,65
|
||||||
|
1273,648
|
||||||
|
1155,338
|
||||||
|
659,87
|
||||||
|
201,207
|
||||||
|
402,161
|
||||||
|
1091,708
|
||||||
|
440,722
|
||||||
|
447,269
|
||||||
|
1022,572
|
||||||
|
939,205
|
||||||
|
497,329
|
||||||
|
1058,553
|
||||||
|
542,661
|
||||||
|
863,886
|
||||||
|
155,338
|
||||||
|
622,857
|
||||||
|
92,715
|
||||||
|
612,133
|
||||||
|
962,458
|
||||||
|
634,159
|
||||||
|
28,30
|
||||||
|
288,677
|
||||||
|
1028,878
|
||||||
|
1183,520
|
||||||
|
169,176
|
||||||
|
23,428
|
||||||
|
1292,203
|
||||||
|
754,182
|
||||||
|
555,320
|
||||||
|
35,208
|
||||||
|
701,75
|
||||||
|
1022,322
|
||||||
|
684,533
|
||||||
|
320,623
|
||||||
|
857,95
|
||||||
|
18,770
|
||||||
|
214,50
|
||||||
|
7,777
|
||||||
|
398,406
|
||||||
|
261,176
|
||||||
|
783,462
|
||||||
|
709,98
|
||||||
|
1123,815
|
||||||
|
440,457
|
||||||
|
708,168
|
||||||
|
447,625
|
||||||
|
359,418
|
||||||
|
1278,485
|
||||||
|
1012,143
|
||||||
|
159,504
|
||||||
|
38,796
|
||||||
|
1230,332
|
||||||
|
418,530
|
||||||
|
877,255
|
||||||
|
654,505
|
||||||
|
28,136
|
||||||
|
912,406
|
||||||
|
1193,320
|
||||||
|
485,46
|
||||||
|
351,838
|
||||||
|
1265,75
|
||||||
|
758,143
|
||||||
|
1300,226
|
||||||
|
1282,527
|
||||||
|
612,761
|
||||||
|
575,556
|
||||||
|
979,763
|
||||||
|
77,70
|
||||||
|
654,607
|
||||||
|
688,261
|
||||||
|
766,585
|
||||||
|
145,385
|
||||||
|
363,504
|
||||||
|
676,287
|
||||||
|
788,607
|
||||||
|
857,465
|
||||||
|
1128,35
|
||||||
|
574,513
|
||||||
|
1200,309
|
||||||
|
10,668
|
||||||
|
169,553
|
||||||
|
654,57
|
||||||
|
1064,868
|
||||||
|
191,796
|
||||||
|
45,686
|
||||||
|
982,159
|
||||||
|
795,79
|
||||||
|
413,361
|
||||||
|
761,863
|
||||||
|
473,273
|
||||||
|
0,401
|
||||||
|
1017,579
|
||||||
|
840,808
|
||||||
|
99,434
|
||||||
|
79,556
|
||||||
|
162,784
|
||||||
|
459,418
|
||||||
|
798,10
|
||||||
|
195,418
|
||||||
|
651,404
|
||||||
|
520,527
|
||||||
|
959,887
|
||||||
|
965,565
|
||||||
|
288,217
|
||||||
|
730,404
|
||||||
|
1282,478
|
||||||
|
602,364
|
||||||
|
803,315
|
||||||
|
962,304
|
||||||
|
820,617
|
||||||
|
741,534
|
||||||
|
549,333
|
||||||
|
862,714
|
||||||
|
363,326
|
||||||
|
102,222
|
||||||
|
348,436
|
||||||
|
1156,553
|
||||||
|
1064,463
|
||||||
|
97,214
|
||||||
|
609,691
|
||||||
|
214,722
|
||||||
|
827,208
|
||||||
|
372,688
|
||||||
|
453,519
|
||||||
|
385,401
|
||||||
|
622,633
|
||||||
|
70,40
|
||||||
|
455,616
|
||||||
|
949,763
|
||||||
|
693,599
|
||||||
|
194,758
|
||||||
|
512,541
|
||||||
|
1169,786
|
||||||
|
617,536
|
||||||
|
1086,837
|
||||||
|
112,494
|
||||||
|
910,161
|
||||||
|
984,495
|
||||||
|
959,56
|
||||||
|
977,586
|
||||||
|
454,262
|
||||||
|
1141,341
|
||||||
|
609,203
|
||||||
|
748,19
|
||||||
|
1143,560
|
||||||
|
656,508
|
||||||
|
541,703
|
||||||
|
1181,495
|
||||||
|
1183,246
|
||||||
|
542,102
|
||||||
|
736,189
|
||||||
|
433,866
|
||||||
|
661,756
|
||||||
|
659,490
|
||||||
|
331,446
|
||||||
|
236,630
|
||||||
|
610,688
|
||||||
|
3,467
|
||||||
|
446,268
|
||||||
|
694,117
|
||||||
|
308,35
|
||||||
|
537,350
|
||||||
|
1101,243
|
||||||
|
951,418
|
||||||
|
127,432
|
||||||
|
979,110
|
||||||
|
802,705
|
||||||
|
741,86
|
||||||
|
787,829
|
||||||
|
1198,233
|
||||||
|
808,890
|
||||||
|
1279,12
|
||||||
|
50,396
|
||||||
|
1183,14
|
||||||
|
23,255
|
||||||
|
636,124
|
||||||
|
448,714
|
||||||
|
1236,205
|
||||||
|
1193,798
|
||||||
|
1103,625
|
||||||
|
945,694
|
||||||
|
1139,108
|
||||||
|
522,287
|
||||||
|
624,513
|
||||||
|
997,33
|
||||||
|
1190,658
|
||||||
|
35,56
|
||||||
|
1275,406
|
||||||
|
773,208
|
||||||
|
1125,716
|
||||||
|
69,621
|
||||||
|
1093,518
|
||||||
|
1310,837
|
||||||
|
1125,268
|
||||||
|
865,448
|
||||||
|
1102,94
|
||||||
|
306,10
|
||||||
|
373,483
|
||||||
|
442,866
|
||||||
|
858,105
|
||||||
|
602,168
|
||||||
|
624,159
|
||||||
|
334,719
|
||||||
|
480,162
|
||||||
|
870,172
|
||||||
|
602,736
|
||||||
|
0,508
|
||||||
|
1064,154
|
||||||
|
1056,712
|
||||||
|
582,161
|
||||||
|
1261,591
|
||||||
|
661,308
|
||||||
|
35,200
|
||||||
|
92,19
|
||||||
|
214,390
|
||||||
|
|
||||||
|
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
|
98
2021/13/second.go
Normal file
98
2021/13/second.go
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
dots [][]bool
|
||||||
|
width = -1
|
||||||
|
height = -1
|
||||||
|
)
|
||||||
|
|
||||||
|
func min(a, b int) int {
|
||||||
|
if a < b {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
func foldx(n int) {
|
||||||
|
for y := 0; y < height; y++ {
|
||||||
|
if len(dots[y]) < n {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
for i := 1; i <= n; i++ {
|
||||||
|
if dots[y][n+i] {
|
||||||
|
dots[y][n-i] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
width = n
|
||||||
|
}
|
||||||
|
|
||||||
|
func foldy(n int) {
|
||||||
|
for i := 1; i <= n; i++ {
|
||||||
|
for x := 0; x < len(dots[n+i]); x++ {
|
||||||
|
if dots[n+i][x] {
|
||||||
|
dots[n-i][x] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
height = n
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
scanner := bufio.NewScanner(os.Stdin)
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := strings.Split(scanner.Text(), ",")
|
||||||
|
if len(line) < 2 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
x, _ := strconv.Atoi(line[0])
|
||||||
|
y, _ := strconv.Atoi(line[1])
|
||||||
|
if y >= height {
|
||||||
|
dots = append(dots, make([][]bool, y-height+1)...)
|
||||||
|
height = y + 1
|
||||||
|
}
|
||||||
|
if x >= len(dots[y]) {
|
||||||
|
dots[y] = append(dots[y], make([]bool, x-len(dots[y])+1)...)
|
||||||
|
if x >= width {
|
||||||
|
width = x + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dots[y][x] = true
|
||||||
|
}
|
||||||
|
for y := 0; y < height; y++ {
|
||||||
|
if len(dots[y]) <= width {
|
||||||
|
dots[y] = append(dots[y], make([]bool, width-len(dots[y])+1)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := strings.Split(scanner.Text(), "=")
|
||||||
|
letter := line[0][11]
|
||||||
|
n, _ := strconv.Atoi(line[1])
|
||||||
|
if letter == 'y' {
|
||||||
|
foldy(n)
|
||||||
|
} else {
|
||||||
|
foldx(n)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for y := 0; y < height; y++ {
|
||||||
|
w := min(width, len(dots[y]))
|
||||||
|
for x := 0; x < w; x++ {
|
||||||
|
if dots[y][x] {
|
||||||
|
fmt.Printf("#")
|
||||||
|
} else {
|
||||||
|
fmt.Printf(".")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Println()
|
||||||
|
}
|
||||||
|
fmt.Println()
|
||||||
|
fmt.Println("---")
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue