Day 05.
This commit is contained in:
parent
96b1c8a901
commit
9cdb24bfa5
|
@ -0,0 +1,500 @@
|
||||||
|
629,581 -> 123,75
|
||||||
|
921,643 -> 452,643
|
||||||
|
498,588 -> 503,593
|
||||||
|
861,137 -> 102,896
|
||||||
|
603,339 -> 603,137
|
||||||
|
138,738 -> 117,738
|
||||||
|
14,60 -> 41,60
|
||||||
|
606,810 -> 157,361
|
||||||
|
980,21 -> 56,945
|
||||||
|
43,731 -> 910,731
|
||||||
|
745,329 -> 962,329
|
||||||
|
800,916 -> 390,916
|
||||||
|
737,96 -> 737,24
|
||||||
|
978,777 -> 978,592
|
||||||
|
232,638 -> 232,611
|
||||||
|
833,888 -> 454,509
|
||||||
|
627,659 -> 763,523
|
||||||
|
871,300 -> 310,861
|
||||||
|
987,224 -> 987,909
|
||||||
|
54,234 -> 852,234
|
||||||
|
413,111 -> 277,111
|
||||||
|
264,600 -> 840,24
|
||||||
|
180,477 -> 780,477
|
||||||
|
837,197 -> 837,796
|
||||||
|
943,438 -> 769,438
|
||||||
|
260,801 -> 318,801
|
||||||
|
645,717 -> 593,717
|
||||||
|
542,677 -> 115,250
|
||||||
|
255,251 -> 726,722
|
||||||
|
57,219 -> 57,147
|
||||||
|
898,683 -> 466,251
|
||||||
|
925,900 -> 697,900
|
||||||
|
264,384 -> 12,384
|
||||||
|
240,584 -> 816,584
|
||||||
|
962,932 -> 151,121
|
||||||
|
524,163 -> 253,434
|
||||||
|
981,557 -> 981,942
|
||||||
|
934,176 -> 454,656
|
||||||
|
872,439 -> 111,439
|
||||||
|
449,57 -> 161,57
|
||||||
|
50,72 -> 50,54
|
||||||
|
104,141 -> 603,141
|
||||||
|
219,886 -> 747,358
|
||||||
|
774,257 -> 110,921
|
||||||
|
82,142 -> 845,905
|
||||||
|
416,859 -> 129,572
|
||||||
|
326,640 -> 181,785
|
||||||
|
192,818 -> 192,408
|
||||||
|
309,876 -> 309,811
|
||||||
|
536,860 -> 536,740
|
||||||
|
789,472 -> 789,625
|
||||||
|
760,135 -> 647,22
|
||||||
|
425,788 -> 329,884
|
||||||
|
13,11 -> 971,969
|
||||||
|
342,772 -> 456,772
|
||||||
|
85,758 -> 500,343
|
||||||
|
322,167 -> 830,675
|
||||||
|
977,117 -> 107,117
|
||||||
|
148,902 -> 134,902
|
||||||
|
812,940 -> 45,173
|
||||||
|
544,218 -> 88,674
|
||||||
|
110,536 -> 110,927
|
||||||
|
989,127 -> 129,987
|
||||||
|
89,96 -> 671,678
|
||||||
|
604,368 -> 604,127
|
||||||
|
89,551 -> 89,460
|
||||||
|
590,749 -> 590,147
|
||||||
|
390,224 -> 899,224
|
||||||
|
25,765 -> 488,302
|
||||||
|
624,265 -> 339,265
|
||||||
|
127,712 -> 127,797
|
||||||
|
133,53 -> 133,168
|
||||||
|
934,978 -> 638,978
|
||||||
|
443,119 -> 672,119
|
||||||
|
691,796 -> 486,591
|
||||||
|
153,64 -> 153,859
|
||||||
|
588,78 -> 381,78
|
||||||
|
205,655 -> 90,655
|
||||||
|
965,625 -> 965,388
|
||||||
|
699,500 -> 699,227
|
||||||
|
35,246 -> 791,246
|
||||||
|
305,372 -> 305,326
|
||||||
|
954,695 -> 416,695
|
||||||
|
192,582 -> 712,62
|
||||||
|
759,87 -> 346,500
|
||||||
|
73,153 -> 903,983
|
||||||
|
386,12 -> 937,12
|
||||||
|
287,256 -> 19,524
|
||||||
|
725,761 -> 391,427
|
||||||
|
159,128 -> 159,985
|
||||||
|
839,853 -> 55,69
|
||||||
|
818,257 -> 974,257
|
||||||
|
754,645 -> 738,645
|
||||||
|
164,950 -> 904,210
|
||||||
|
208,370 -> 381,370
|
||||||
|
467,876 -> 42,876
|
||||||
|
779,708 -> 779,56
|
||||||
|
152,504 -> 465,817
|
||||||
|
808,721 -> 965,564
|
||||||
|
957,131 -> 649,131
|
||||||
|
984,12 -> 23,973
|
||||||
|
283,915 -> 283,347
|
||||||
|
775,13 -> 340,448
|
||||||
|
588,294 -> 588,360
|
||||||
|
775,976 -> 775,497
|
||||||
|
891,292 -> 551,292
|
||||||
|
43,860 -> 849,860
|
||||||
|
639,384 -> 639,942
|
||||||
|
932,967 -> 932,762
|
||||||
|
109,66 -> 828,785
|
||||||
|
107,369 -> 107,480
|
||||||
|
606,445 -> 766,605
|
||||||
|
429,10 -> 588,10
|
||||||
|
895,832 -> 586,523
|
||||||
|
938,633 -> 938,152
|
||||||
|
907,683 -> 242,683
|
||||||
|
748,384 -> 748,771
|
||||||
|
256,276 -> 954,276
|
||||||
|
975,444 -> 975,33
|
||||||
|
404,469 -> 84,469
|
||||||
|
105,688 -> 55,688
|
||||||
|
73,105 -> 695,105
|
||||||
|
402,335 -> 402,567
|
||||||
|
524,797 -> 524,603
|
||||||
|
188,171 -> 61,44
|
||||||
|
954,30 -> 11,973
|
||||||
|
794,400 -> 510,116
|
||||||
|
592,845 -> 375,845
|
||||||
|
457,679 -> 634,679
|
||||||
|
35,635 -> 641,635
|
||||||
|
652,667 -> 541,556
|
||||||
|
393,128 -> 393,884
|
||||||
|
302,254 -> 302,297
|
||||||
|
302,145 -> 279,168
|
||||||
|
64,274 -> 432,274
|
||||||
|
560,154 -> 560,511
|
||||||
|
928,755 -> 928,722
|
||||||
|
578,430 -> 891,430
|
||||||
|
505,463 -> 505,476
|
||||||
|
62,248 -> 661,248
|
||||||
|
573,603 -> 573,781
|
||||||
|
61,800 -> 61,723
|
||||||
|
925,357 -> 925,233
|
||||||
|
883,336 -> 753,466
|
||||||
|
535,647 -> 48,160
|
||||||
|
981,931 -> 269,219
|
||||||
|
980,981 -> 14,15
|
||||||
|
404,675 -> 112,383
|
||||||
|
861,472 -> 568,765
|
||||||
|
17,439 -> 17,530
|
||||||
|
839,411 -> 754,411
|
||||||
|
944,408 -> 793,257
|
||||||
|
910,963 -> 910,382
|
||||||
|
640,101 -> 987,101
|
||||||
|
33,100 -> 779,846
|
||||||
|
799,981 -> 799,985
|
||||||
|
787,610 -> 787,990
|
||||||
|
967,567 -> 502,567
|
||||||
|
369,452 -> 876,959
|
||||||
|
830,725 -> 604,499
|
||||||
|
112,255 -> 726,869
|
||||||
|
746,291 -> 930,475
|
||||||
|
170,795 -> 170,72
|
||||||
|
587,183 -> 981,183
|
||||||
|
588,226 -> 588,328
|
||||||
|
643,747 -> 504,747
|
||||||
|
882,445 -> 627,445
|
||||||
|
849,274 -> 849,135
|
||||||
|
536,225 -> 212,225
|
||||||
|
143,538 -> 143,832
|
||||||
|
319,25 -> 984,690
|
||||||
|
278,189 -> 278,526
|
||||||
|
527,414 -> 527,704
|
||||||
|
935,141 -> 122,954
|
||||||
|
623,626 -> 111,114
|
||||||
|
211,495 -> 211,924
|
||||||
|
146,914 -> 836,224
|
||||||
|
573,423 -> 956,423
|
||||||
|
902,188 -> 463,188
|
||||||
|
807,950 -> 925,950
|
||||||
|
956,60 -> 35,981
|
||||||
|
791,480 -> 383,888
|
||||||
|
886,872 -> 886,471
|
||||||
|
441,840 -> 65,464
|
||||||
|
367,596 -> 367,846
|
||||||
|
566,799 -> 574,799
|
||||||
|
590,202 -> 803,202
|
||||||
|
988,17 -> 17,988
|
||||||
|
566,640 -> 63,137
|
||||||
|
304,316 -> 304,470
|
||||||
|
452,808 -> 452,455
|
||||||
|
982,647 -> 494,159
|
||||||
|
654,102 -> 654,580
|
||||||
|
760,122 -> 610,272
|
||||||
|
349,859 -> 114,624
|
||||||
|
72,520 -> 72,790
|
||||||
|
272,910 -> 272,848
|
||||||
|
751,311 -> 751,911
|
||||||
|
396,771 -> 396,356
|
||||||
|
37,909 -> 904,42
|
||||||
|
903,636 -> 939,636
|
||||||
|
661,911 -> 661,967
|
||||||
|
246,367 -> 246,451
|
||||||
|
179,659 -> 455,935
|
||||||
|
65,977 -> 975,67
|
||||||
|
525,539 -> 525,523
|
||||||
|
211,310 -> 850,310
|
||||||
|
327,158 -> 961,158
|
||||||
|
224,46 -> 15,255
|
||||||
|
177,624 -> 177,297
|
||||||
|
949,833 -> 949,711
|
||||||
|
732,43 -> 616,159
|
||||||
|
537,397 -> 112,822
|
||||||
|
432,490 -> 509,567
|
||||||
|
70,130 -> 872,932
|
||||||
|
810,584 -> 810,679
|
||||||
|
863,967 -> 145,249
|
||||||
|
919,840 -> 574,840
|
||||||
|
955,534 -> 955,77
|
||||||
|
90,685 -> 90,858
|
||||||
|
24,974 -> 986,12
|
||||||
|
980,940 -> 115,75
|
||||||
|
41,154 -> 705,818
|
||||||
|
196,976 -> 901,271
|
||||||
|
80,855 -> 526,409
|
||||||
|
190,314 -> 818,942
|
||||||
|
195,400 -> 195,968
|
||||||
|
698,976 -> 698,171
|
||||||
|
351,753 -> 292,753
|
||||||
|
433,163 -> 433,411
|
||||||
|
37,615 -> 62,615
|
||||||
|
696,724 -> 696,170
|
||||||
|
625,793 -> 625,359
|
||||||
|
387,469 -> 387,552
|
||||||
|
24,568 -> 522,70
|
||||||
|
569,695 -> 272,695
|
||||||
|
16,87 -> 634,705
|
||||||
|
986,611 -> 986,827
|
||||||
|
581,196 -> 581,180
|
||||||
|
373,716 -> 373,304
|
||||||
|
562,767 -> 562,493
|
||||||
|
506,430 -> 474,430
|
||||||
|
362,878 -> 624,616
|
||||||
|
888,288 -> 33,288
|
||||||
|
483,480 -> 709,706
|
||||||
|
261,879 -> 896,879
|
||||||
|
196,71 -> 196,462
|
||||||
|
717,414 -> 296,414
|
||||||
|
973,591 -> 973,149
|
||||||
|
390,140 -> 390,727
|
||||||
|
966,932 -> 913,932
|
||||||
|
693,824 -> 902,824
|
||||||
|
724,898 -> 724,46
|
||||||
|
557,802 -> 902,802
|
||||||
|
968,398 -> 968,124
|
||||||
|
784,727 -> 498,441
|
||||||
|
938,618 -> 938,863
|
||||||
|
119,114 -> 119,636
|
||||||
|
110,933 -> 374,933
|
||||||
|
406,760 -> 895,271
|
||||||
|
499,526 -> 834,526
|
||||||
|
844,464 -> 844,535
|
||||||
|
32,899 -> 903,28
|
||||||
|
796,423 -> 796,498
|
||||||
|
188,144 -> 965,144
|
||||||
|
135,828 -> 591,372
|
||||||
|
616,558 -> 616,129
|
||||||
|
356,818 -> 356,540
|
||||||
|
406,894 -> 519,894
|
||||||
|
303,31 -> 821,549
|
||||||
|
82,472 -> 708,472
|
||||||
|
64,314 -> 355,314
|
||||||
|
236,341 -> 489,341
|
||||||
|
839,118 -> 544,118
|
||||||
|
680,804 -> 96,220
|
||||||
|
204,105 -> 906,807
|
||||||
|
357,662 -> 685,334
|
||||||
|
463,797 -> 555,797
|
||||||
|
973,913 -> 276,216
|
||||||
|
614,852 -> 25,263
|
||||||
|
958,275 -> 812,421
|
||||||
|
963,15 -> 26,952
|
||||||
|
743,136 -> 328,136
|
||||||
|
975,937 -> 625,937
|
||||||
|
984,34 -> 38,980
|
||||||
|
19,516 -> 432,103
|
||||||
|
802,827 -> 802,78
|
||||||
|
12,971 -> 945,38
|
||||||
|
335,331 -> 290,331
|
||||||
|
890,803 -> 170,803
|
||||||
|
950,52 -> 950,417
|
||||||
|
68,391 -> 524,847
|
||||||
|
862,699 -> 786,699
|
||||||
|
542,323 -> 578,323
|
||||||
|
454,171 -> 970,687
|
||||||
|
980,24 -> 990,24
|
||||||
|
253,56 -> 600,403
|
||||||
|
571,27 -> 622,27
|
||||||
|
966,400 -> 527,400
|
||||||
|
624,914 -> 624,43
|
||||||
|
85,819 -> 764,140
|
||||||
|
204,76 -> 958,830
|
||||||
|
208,77 -> 208,284
|
||||||
|
668,342 -> 668,373
|
||||||
|
633,468 -> 786,621
|
||||||
|
972,704 -> 980,704
|
||||||
|
552,601 -> 552,953
|
||||||
|
912,28 -> 199,741
|
||||||
|
884,403 -> 491,10
|
||||||
|
731,897 -> 115,281
|
||||||
|
492,33 -> 492,296
|
||||||
|
295,130 -> 691,130
|
||||||
|
741,389 -> 403,51
|
||||||
|
974,64 -> 68,970
|
||||||
|
954,518 -> 629,518
|
||||||
|
392,722 -> 242,872
|
||||||
|
523,762 -> 183,422
|
||||||
|
431,664 -> 782,313
|
||||||
|
750,696 -> 665,696
|
||||||
|
426,243 -> 308,243
|
||||||
|
602,857 -> 602,598
|
||||||
|
849,682 -> 599,682
|
||||||
|
723,514 -> 447,514
|
||||||
|
403,898 -> 598,898
|
||||||
|
139,555 -> 124,555
|
||||||
|
570,151 -> 135,151
|
||||||
|
205,99 -> 119,185
|
||||||
|
291,271 -> 647,627
|
||||||
|
537,541 -> 871,207
|
||||||
|
647,596 -> 630,596
|
||||||
|
870,967 -> 51,148
|
||||||
|
470,205 -> 470,692
|
||||||
|
238,914 -> 238,55
|
||||||
|
285,661 -> 578,661
|
||||||
|
878,343 -> 140,343
|
||||||
|
274,175 -> 274,944
|
||||||
|
193,829 -> 193,332
|
||||||
|
169,255 -> 824,910
|
||||||
|
695,389 -> 472,389
|
||||||
|
707,336 -> 543,336
|
||||||
|
860,983 -> 567,690
|
||||||
|
732,595 -> 42,595
|
||||||
|
723,603 -> 161,603
|
||||||
|
206,937 -> 328,937
|
||||||
|
981,26 -> 62,26
|
||||||
|
624,696 -> 624,756
|
||||||
|
317,626 -> 317,717
|
||||||
|
353,475 -> 353,809
|
||||||
|
759,54 -> 303,54
|
||||||
|
96,493 -> 70,493
|
||||||
|
457,675 -> 457,812
|
||||||
|
955,577 -> 955,673
|
||||||
|
10,606 -> 559,606
|
||||||
|
945,872 -> 555,872
|
||||||
|
818,651 -> 818,51
|
||||||
|
869,314 -> 90,314
|
||||||
|
271,490 -> 458,490
|
||||||
|
48,880 -> 48,495
|
||||||
|
310,62 -> 310,694
|
||||||
|
61,988 -> 985,64
|
||||||
|
558,128 -> 745,315
|
||||||
|
594,695 -> 549,695
|
||||||
|
98,114 -> 98,204
|
||||||
|
107,513 -> 577,983
|
||||||
|
721,859 -> 150,288
|
||||||
|
102,101 -> 903,902
|
||||||
|
971,547 -> 501,547
|
||||||
|
857,127 -> 290,694
|
||||||
|
486,117 -> 230,117
|
||||||
|
550,46 -> 968,464
|
||||||
|
946,965 -> 40,59
|
||||||
|
757,565 -> 757,613
|
||||||
|
99,597 -> 99,763
|
||||||
|
352,287 -> 352,22
|
||||||
|
826,781 -> 942,781
|
||||||
|
631,667 -> 631,869
|
||||||
|
438,778 -> 736,480
|
||||||
|
974,988 -> 12,26
|
||||||
|
730,69 -> 417,382
|
||||||
|
879,987 -> 10,118
|
||||||
|
433,256 -> 142,256
|
||||||
|
254,285 -> 941,972
|
||||||
|
828,351 -> 257,922
|
||||||
|
830,751 -> 830,347
|
||||||
|
789,244 -> 355,244
|
||||||
|
607,451 -> 607,838
|
||||||
|
853,198 -> 265,198
|
||||||
|
65,738 -> 65,921
|
||||||
|
122,676 -> 122,801
|
||||||
|
493,252 -> 639,252
|
||||||
|
42,977 -> 937,82
|
||||||
|
544,296 -> 271,23
|
||||||
|
772,436 -> 772,979
|
||||||
|
259,403 -> 259,757
|
||||||
|
436,193 -> 436,478
|
||||||
|
227,395 -> 216,395
|
||||||
|
672,205 -> 711,244
|
||||||
|
116,307 -> 116,337
|
||||||
|
768,332 -> 768,314
|
||||||
|
380,867 -> 380,746
|
||||||
|
57,357 -> 57,247
|
||||||
|
326,502 -> 640,188
|
||||||
|
151,512 -> 308,512
|
||||||
|
481,226 -> 481,935
|
||||||
|
835,205 -> 868,238
|
||||||
|
535,920 -> 535,158
|
||||||
|
314,106 -> 221,13
|
||||||
|
304,189 -> 357,189
|
||||||
|
349,169 -> 349,150
|
||||||
|
568,765 -> 849,484
|
||||||
|
680,877 -> 392,589
|
||||||
|
170,924 -> 984,924
|
||||||
|
52,935 -> 714,273
|
||||||
|
542,667 -> 708,667
|
||||||
|
583,522 -> 263,842
|
||||||
|
710,50 -> 710,500
|
||||||
|
713,272 -> 713,897
|
||||||
|
70,843 -> 70,747
|
||||||
|
319,874 -> 290,874
|
||||||
|
56,148 -> 115,89
|
||||||
|
77,136 -> 928,987
|
||||||
|
867,956 -> 152,241
|
||||||
|
206,171 -> 688,171
|
||||||
|
834,81 -> 834,726
|
||||||
|
186,482 -> 888,482
|
||||||
|
785,467 -> 537,467
|
||||||
|
232,100 -> 338,206
|
||||||
|
556,921 -> 556,469
|
||||||
|
630,16 -> 976,16
|
||||||
|
168,977 -> 168,383
|
||||||
|
784,819 -> 694,819
|
||||||
|
298,116 -> 47,116
|
||||||
|
577,19 -> 577,729
|
||||||
|
767,236 -> 682,236
|
||||||
|
222,277 -> 222,952
|
||||||
|
119,196 -> 18,95
|
||||||
|
26,500 -> 26,714
|
||||||
|
324,605 -> 223,706
|
||||||
|
296,224 -> 582,224
|
||||||
|
425,582 -> 425,371
|
||||||
|
922,365 -> 674,365
|
||||||
|
377,302 -> 841,766
|
||||||
|
342,99 -> 342,469
|
||||||
|
181,470 -> 181,473
|
||||||
|
201,803 -> 201,335
|
||||||
|
593,252 -> 262,583
|
||||||
|
138,14 -> 138,375
|
||||||
|
148,713 -> 148,733
|
||||||
|
208,710 -> 777,710
|
||||||
|
333,782 -> 20,782
|
||||||
|
258,680 -> 258,368
|
||||||
|
978,195 -> 301,195
|
||||||
|
600,350 -> 600,22
|
||||||
|
83,442 -> 301,442
|
||||||
|
747,173 -> 67,173
|
||||||
|
869,884 -> 869,291
|
||||||
|
832,979 -> 832,349
|
||||||
|
457,476 -> 457,472
|
||||||
|
521,372 -> 521,630
|
||||||
|
440,408 -> 830,408
|
||||||
|
530,175 -> 530,600
|
||||||
|
664,158 -> 282,158
|
||||||
|
942,757 -> 942,852
|
||||||
|
76,763 -> 76,658
|
||||||
|
379,831 -> 379,75
|
||||||
|
74,35 -> 391,35
|
||||||
|
39,349 -> 794,349
|
||||||
|
591,211 -> 226,211
|
||||||
|
143,215 -> 143,808
|
||||||
|
965,19 -> 26,958
|
||||||
|
475,33 -> 623,181
|
||||||
|
791,212 -> 791,913
|
||||||
|
95,942 -> 927,110
|
||||||
|
977,434 -> 755,656
|
||||||
|
340,762 -> 404,698
|
||||||
|
518,321 -> 61,778
|
||||||
|
238,620 -> 238,666
|
||||||
|
568,522 -> 568,757
|
||||||
|
716,821 -> 716,404
|
||||||
|
57,34 -> 929,906
|
||||||
|
949,483 -> 785,483
|
||||||
|
408,255 -> 408,191
|
||||||
|
590,62 -> 436,62
|
||||||
|
729,44 -> 591,182
|
||||||
|
557,740 -> 902,395
|
||||||
|
900,467 -> 741,467
|
||||||
|
90,258 -> 653,258
|
||||||
|
653,323 -> 420,556
|
||||||
|
85,933 -> 592,933
|
||||||
|
938,59 -> 218,779
|
||||||
|
226,467 -> 226,937
|
||||||
|
587,330 -> 587,51
|
||||||
|
487,797 -> 924,797
|
||||||
|
216,11 -> 216,875
|
||||||
|
316,263 -> 301,263
|
||||||
|
981,487 -> 981,519
|
||||||
|
97,936 -> 896,137
|
||||||
|
704,560 -> 548,560
|
||||||
|
44,340 -> 617,340
|
||||||
|
160,751 -> 787,124
|
4
lib.rkt
4
lib.rkt
|
@ -122,8 +122,8 @@
|
||||||
;; sum : (listof number) -> number
|
;; sum : (listof number) -> number
|
||||||
(define (sum ns) (apply + ns))
|
(define (sum ns) (apply + ns))
|
||||||
|
|
||||||
;; != : number -> number -> boolean
|
;; ≠ : number -> number -> boolean
|
||||||
(define (!= n1 n2)
|
(define (≠ n1 n2)
|
||||||
(not (= n1 n2)))
|
(not (= n1 n2)))
|
||||||
|
|
||||||
;; nzero? : number -> boolean
|
;; nzero? : number -> boolean
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
#lang curly-fn racket
|
||||||
|
|
||||||
|
(require "../lib.rkt")
|
||||||
|
|
||||||
|
(define input (problem-input 5))
|
||||||
|
|
||||||
|
(define lines
|
||||||
|
(for/list ([line input])
|
||||||
|
(~> line
|
||||||
|
(regexp-match #px"(\\d+),(\\d+) -> (\\d+),(\\d+)" _)
|
||||||
|
rest
|
||||||
|
(map string->number _))))
|
||||||
|
|
||||||
|
(define-values (hvs diags)
|
||||||
|
(partition #{or (= (first %) (third %))
|
||||||
|
(= (second %) (fourth %))} lines))
|
||||||
|
|
||||||
|
(define (count-crosses grid)
|
||||||
|
(count #{> % 1} (hash-values grid)))
|
||||||
|
|
||||||
|
(define grid (make-hash))
|
||||||
|
|
||||||
|
(for ([hv hvs])
|
||||||
|
(match hv
|
||||||
|
[`(,x ,y1 ,x ,y2)
|
||||||
|
(for ([y (range (min y1 y2) (add1 (max y1 y2)))])
|
||||||
|
(hash-update! grid (list x y) add1 0))]
|
||||||
|
[`(,x1 ,y ,x2 ,y)
|
||||||
|
(for ([x (range (min x1 x2) (add1 (max x1 x2)))])
|
||||||
|
(hash-update! grid (list x y) add1 0))]))
|
||||||
|
|
||||||
|
(define part1 (count-crosses grid))
|
||||||
|
|
||||||
|
(for ([diag diags])
|
||||||
|
(match diag
|
||||||
|
[`(,x1 ,y1 ,x2 ,y2)
|
||||||
|
(define-values (x-offset x-step)
|
||||||
|
(if (>= x2 x1) (values add1 1) (values sub1 -1)))
|
||||||
|
(define-values (y-offset y-step)
|
||||||
|
(if (>= y2 y1) (values add1 1) (values sub1 -1)))
|
||||||
|
(for ([x (range x1 (x-offset x2) x-step)]
|
||||||
|
[y (range y1 (y-offset y2) y-step)])
|
||||||
|
(hash-update! grid (list x y) add1 0))]))
|
||||||
|
|
||||||
|
(define part2 (count-crosses grid))
|
||||||
|
|
||||||
|
(show-solution part1 part2)
|
Loading…
Reference in New Issue