Day 5: Add C solution
This commit is contained in:
parent
402bc1862d
commit
5fb0db17fb
3 changed files with 577 additions and 0 deletions
500
05/input.txt
Normal file
500
05/input.txt
Normal file
|
@ -0,0 +1,500 @@
|
|||
452,244 -> 452,303
|
||||
958,109 -> 958,639
|
||||
809,31 -> 778,31
|
||||
927,139 -> 917,139
|
||||
56,298 -> 273,298
|
||||
959,53 -> 959,739
|
||||
80,255 -> 434,255
|
||||
750,500 -> 73,500
|
||||
528,920 -> 428,820
|
||||
455,552 -> 289,718
|
||||
800,363 -> 800,25
|
||||
688,745 -> 688,696
|
||||
364,41 -> 364,351
|
||||
693,642 -> 693,67
|
||||
564,143 -> 755,143
|
||||
622,682 -> 622,869
|
||||
311,515 -> 311,120
|
||||
210,255 -> 210,363
|
||||
66,550 -> 540,550
|
||||
243,485 -> 381,623
|
||||
321,712 -> 680,712
|
||||
549,501 -> 70,22
|
||||
357,893 -> 823,893
|
||||
797,882 -> 536,621
|
||||
389,724 -> 389,329
|
||||
859,75 -> 859,591
|
||||
195,618 -> 161,618
|
||||
508,668 -> 974,202
|
||||
543,871 -> 889,525
|
||||
99,659 -> 371,387
|
||||
602,553 -> 547,553
|
||||
98,930 -> 98,683
|
||||
741,522 -> 895,522
|
||||
143,636 -> 683,636
|
||||
56,751 -> 56,555
|
||||
696,117 -> 784,117
|
||||
625,827 -> 277,827
|
||||
908,633 -> 213,633
|
||||
482,290 -> 256,290
|
||||
717,566 -> 717,923
|
||||
258,34 -> 728,34
|
||||
862,54 -> 862,869
|
||||
57,983 -> 987,53
|
||||
749,712 -> 715,678
|
||||
342,291 -> 147,291
|
||||
48,308 -> 48,600
|
||||
44,749 -> 823,749
|
||||
671,533 -> 944,533
|
||||
848,804 -> 315,804
|
||||
960,310 -> 980,310
|
||||
730,426 -> 730,330
|
||||
85,633 -> 690,28
|
||||
432,791 -> 692,531
|
||||
217,128 -> 217,763
|
||||
205,275 -> 781,851
|
||||
207,329 -> 201,329
|
||||
338,724 -> 338,783
|
||||
434,89 -> 501,89
|
||||
812,298 -> 812,480
|
||||
299,190 -> 752,190
|
||||
441,301 -> 441,872
|
||||
643,913 -> 643,21
|
||||
518,204 -> 518,442
|
||||
730,601 -> 930,601
|
||||
352,268 -> 766,268
|
||||
444,55 -> 444,372
|
||||
240,914 -> 656,498
|
||||
507,858 -> 507,581
|
||||
246,805 -> 805,805
|
||||
955,960 -> 381,386
|
||||
828,128 -> 818,128
|
||||
218,775 -> 557,436
|
||||
896,529 -> 173,529
|
||||
523,338 -> 581,338
|
||||
972,203 -> 770,203
|
||||
515,635 -> 728,848
|
||||
852,380 -> 852,469
|
||||
963,829 -> 688,829
|
||||
320,161 -> 234,161
|
||||
517,531 -> 919,933
|
||||
971,75 -> 578,75
|
||||
244,666 -> 244,308
|
||||
640,311 -> 164,787
|
||||
373,311 -> 373,611
|
||||
50,784 -> 653,181
|
||||
770,93 -> 96,767
|
||||
30,19 -> 887,876
|
||||
964,860 -> 447,343
|
||||
436,645 -> 436,813
|
||||
10,11 -> 982,983
|
||||
907,638 -> 907,979
|
||||
453,864 -> 453,246
|
||||
578,132 -> 757,132
|
||||
55,456 -> 548,456
|
||||
127,626 -> 493,626
|
||||
816,14 -> 748,14
|
||||
938,873 -> 938,478
|
||||
315,374 -> 902,961
|
||||
137,386 -> 137,478
|
||||
121,954 -> 702,373
|
||||
92,874 -> 714,252
|
||||
521,660 -> 34,660
|
||||
677,401 -> 531,401
|
||||
55,278 -> 331,278
|
||||
400,263 -> 426,237
|
||||
236,974 -> 236,545
|
||||
579,30 -> 579,198
|
||||
886,257 -> 320,823
|
||||
53,67 -> 922,936
|
||||
374,773 -> 470,773
|
||||
241,115 -> 241,61
|
||||
206,252 -> 519,565
|
||||
388,617 -> 388,778
|
||||
423,315 -> 978,315
|
||||
616,759 -> 174,317
|
||||
770,511 -> 770,487
|
||||
118,258 -> 309,258
|
||||
320,908 -> 320,433
|
||||
71,358 -> 50,337
|
||||
37,461 -> 175,323
|
||||
374,758 -> 374,96
|
||||
268,139 -> 268,785
|
||||
72,484 -> 364,484
|
||||
937,286 -> 574,286
|
||||
554,602 -> 554,475
|
||||
677,863 -> 245,863
|
||||
975,33 -> 54,954
|
||||
557,960 -> 560,957
|
||||
989,892 -> 175,78
|
||||
447,47 -> 830,430
|
||||
407,718 -> 634,945
|
||||
418,304 -> 418,103
|
||||
890,278 -> 890,915
|
||||
449,619 -> 243,825
|
||||
798,661 -> 137,661
|
||||
796,251 -> 67,980
|
||||
122,88 -> 122,518
|
||||
505,407 -> 695,217
|
||||
447,961 -> 447,524
|
||||
608,708 -> 390,708
|
||||
110,636 -> 878,636
|
||||
376,517 -> 376,409
|
||||
400,213 -> 767,213
|
||||
369,220 -> 369,203
|
||||
141,934 -> 921,154
|
||||
808,243 -> 808,983
|
||||
529,923 -> 529,438
|
||||
399,324 -> 350,324
|
||||
632,83 -> 276,83
|
||||
254,632 -> 812,74
|
||||
981,594 -> 453,594
|
||||
30,893 -> 472,893
|
||||
22,355 -> 614,355
|
||||
519,732 -> 519,911
|
||||
392,425 -> 392,710
|
||||
987,953 -> 987,82
|
||||
519,108 -> 370,108
|
||||
52,897 -> 52,449
|
||||
17,83 -> 913,979
|
||||
612,305 -> 118,799
|
||||
225,365 -> 225,639
|
||||
878,928 -> 45,95
|
||||
238,279 -> 908,279
|
||||
352,27 -> 352,572
|
||||
72,11 -> 347,286
|
||||
332,195 -> 332,189
|
||||
273,726 -> 204,726
|
||||
401,817 -> 498,817
|
||||
118,170 -> 118,675
|
||||
924,868 -> 528,472
|
||||
721,948 -> 886,948
|
||||
735,379 -> 331,379
|
||||
256,298 -> 256,187
|
||||
600,886 -> 314,886
|
||||
937,275 -> 937,385
|
||||
840,777 -> 92,29
|
||||
844,96 -> 844,691
|
||||
833,597 -> 833,762
|
||||
475,138 -> 475,207
|
||||
32,984 -> 675,984
|
||||
101,528 -> 101,497
|
||||
884,399 -> 302,981
|
||||
178,124 -> 670,616
|
||||
363,84 -> 527,84
|
||||
744,784 -> 336,784
|
||||
588,963 -> 588,543
|
||||
298,525 -> 626,525
|
||||
610,496 -> 265,496
|
||||
648,294 -> 460,106
|
||||
859,646 -> 859,867
|
||||
469,48 -> 987,566
|
||||
273,689 -> 103,859
|
||||
556,745 -> 440,745
|
||||
44,923 -> 941,26
|
||||
569,777 -> 781,565
|
||||
791,408 -> 276,923
|
||||
289,185 -> 289,608
|
||||
866,783 -> 760,783
|
||||
302,153 -> 420,35
|
||||
45,545 -> 479,979
|
||||
309,54 -> 850,54
|
||||
36,48 -> 973,985
|
||||
698,671 -> 129,102
|
||||
778,339 -> 587,339
|
||||
114,566 -> 114,621
|
||||
747,450 -> 583,286
|
||||
558,698 -> 558,912
|
||||
60,43 -> 987,970
|
||||
770,243 -> 770,490
|
||||
58,811 -> 58,131
|
||||
839,364 -> 839,614
|
||||
833,633 -> 833,208
|
||||
685,441 -> 600,526
|
||||
919,894 -> 769,894
|
||||
478,799 -> 601,922
|
||||
957,957 -> 237,957
|
||||
472,169 -> 472,96
|
||||
269,185 -> 269,117
|
||||
582,187 -> 582,460
|
||||
243,506 -> 722,506
|
||||
702,191 -> 125,768
|
||||
542,63 -> 542,398
|
||||
379,222 -> 920,763
|
||||
930,658 -> 930,724
|
||||
524,33 -> 524,739
|
||||
987,949 -> 50,12
|
||||
976,71 -> 852,71
|
||||
46,59 -> 921,934
|
||||
906,526 -> 906,623
|
||||
621,455 -> 621,590
|
||||
954,55 -> 954,499
|
||||
740,52 -> 740,448
|
||||
185,959 -> 937,207
|
||||
563,349 -> 261,651
|
||||
852,938 -> 114,938
|
||||
972,22 -> 16,978
|
||||
249,142 -> 199,142
|
||||
282,469 -> 282,831
|
||||
667,686 -> 685,686
|
||||
901,95 -> 901,578
|
||||
186,903 -> 336,903
|
||||
662,248 -> 99,811
|
||||
485,248 -> 833,248
|
||||
12,154 -> 734,154
|
||||
87,270 -> 760,270
|
||||
926,191 -> 799,191
|
||||
796,793 -> 451,448
|
||||
443,292 -> 625,292
|
||||
944,62 -> 944,859
|
||||
988,489 -> 374,489
|
||||
693,279 -> 693,55
|
||||
893,617 -> 893,247
|
||||
168,905 -> 910,905
|
||||
850,429 -> 773,429
|
||||
943,13 -> 364,13
|
||||
409,880 -> 409,806
|
||||
620,646 -> 567,699
|
||||
194,949 -> 194,660
|
||||
775,682 -> 775,456
|
||||
741,161 -> 581,161
|
||||
889,91 -> 42,938
|
||||
725,495 -> 273,43
|
||||
211,22 -> 897,22
|
||||
314,604 -> 562,604
|
||||
299,193 -> 914,193
|
||||
240,388 -> 612,16
|
||||
367,752 -> 367,114
|
||||
330,34 -> 931,34
|
||||
809,909 -> 809,757
|
||||
912,140 -> 224,140
|
||||
545,804 -> 503,804
|
||||
848,758 -> 848,638
|
||||
917,226 -> 538,226
|
||||
43,34 -> 43,97
|
||||
47,54 -> 47,435
|
||||
32,52 -> 843,863
|
||||
200,361 -> 398,163
|
||||
466,388 -> 705,388
|
||||
928,127 -> 104,951
|
||||
869,940 -> 869,787
|
||||
697,563 -> 167,563
|
||||
754,828 -> 754,141
|
||||
661,100 -> 968,100
|
||||
582,44 -> 582,182
|
||||
876,550 -> 876,268
|
||||
737,240 -> 27,950
|
||||
664,730 -> 633,730
|
||||
244,805 -> 228,805
|
||||
226,605 -> 211,605
|
||||
911,524 -> 548,524
|
||||
814,256 -> 889,181
|
||||
432,944 -> 432,235
|
||||
445,25 -> 445,499
|
||||
233,619 -> 91,477
|
||||
151,248 -> 880,977
|
||||
267,149 -> 317,149
|
||||
968,346 -> 968,371
|
||||
665,617 -> 665,770
|
||||
518,625 -> 518,579
|
||||
451,458 -> 628,635
|
||||
764,442 -> 255,442
|
||||
240,363 -> 680,803
|
||||
443,153 -> 863,153
|
||||
674,880 -> 973,581
|
||||
876,236 -> 876,817
|
||||
569,335 -> 569,907
|
||||
74,400 -> 74,679
|
||||
495,804 -> 827,472
|
||||
182,76 -> 832,726
|
||||
376,370 -> 986,370
|
||||
986,233 -> 541,233
|
||||
386,379 -> 386,837
|
||||
624,637 -> 454,637
|
||||
844,866 -> 179,201
|
||||
392,89 -> 627,89
|
||||
559,326 -> 525,326
|
||||
681,188 -> 418,188
|
||||
796,386 -> 796,637
|
||||
35,72 -> 952,989
|
||||
735,873 -> 407,873
|
||||
756,238 -> 328,238
|
||||
872,284 -> 394,284
|
||||
157,873 -> 243,873
|
||||
621,657 -> 913,657
|
||||
13,42 -> 13,598
|
||||
831,725 -> 831,270
|
||||
944,51 -> 87,908
|
||||
409,820 -> 913,316
|
||||
250,323 -> 622,323
|
||||
435,397 -> 435,409
|
||||
691,198 -> 691,952
|
||||
302,352 -> 872,352
|
||||
370,790 -> 362,790
|
||||
114,74 -> 926,74
|
||||
561,273 -> 561,169
|
||||
240,658 -> 240,584
|
||||
677,357 -> 557,477
|
||||
480,796 -> 544,732
|
||||
981,568 -> 319,568
|
||||
63,928 -> 957,34
|
||||
715,145 -> 81,779
|
||||
918,554 -> 292,554
|
||||
943,550 -> 943,23
|
||||
425,477 -> 277,329
|
||||
428,718 -> 428,612
|
||||
213,647 -> 244,616
|
||||
549,610 -> 549,39
|
||||
433,330 -> 433,922
|
||||
903,921 -> 148,166
|
||||
357,706 -> 913,150
|
||||
990,254 -> 990,368
|
||||
937,47 -> 937,34
|
||||
868,86 -> 260,694
|
||||
919,905 -> 140,126
|
||||
256,918 -> 980,194
|
||||
880,346 -> 331,895
|
||||
706,392 -> 706,328
|
||||
283,986 -> 758,511
|
||||
967,106 -> 123,106
|
||||
486,92 -> 486,47
|
||||
298,338 -> 888,928
|
||||
665,767 -> 987,767
|
||||
139,898 -> 139,94
|
||||
257,808 -> 257,388
|
||||
865,631 -> 865,624
|
||||
168,913 -> 168,984
|
||||
848,936 -> 197,285
|
||||
195,249 -> 764,249
|
||||
117,900 -> 249,900
|
||||
813,130 -> 10,933
|
||||
693,81 -> 693,554
|
||||
595,448 -> 987,840
|
||||
293,140 -> 904,751
|
||||
198,289 -> 234,289
|
||||
714,671 -> 989,396
|
||||
161,600 -> 161,465
|
||||
458,955 -> 807,955
|
||||
485,124 -> 485,835
|
||||
352,911 -> 691,911
|
||||
896,949 -> 103,156
|
||||
618,171 -> 618,847
|
||||
563,887 -> 44,887
|
||||
293,801 -> 293,492
|
||||
903,714 -> 651,714
|
||||
959,18 -> 265,712
|
||||
28,134 -> 851,957
|
||||
888,374 -> 647,374
|
||||
184,566 -> 184,411
|
||||
977,244 -> 926,193
|
||||
864,189 -> 427,626
|
||||
687,262 -> 700,275
|
||||
86,82 -> 891,887
|
||||
517,779 -> 517,599
|
||||
850,59 -> 256,653
|
||||
595,352 -> 595,142
|
||||
62,191 -> 618,747
|
||||
56,395 -> 124,463
|
||||
902,138 -> 418,138
|
||||
603,131 -> 185,549
|
||||
446,546 -> 446,397
|
||||
278,788 -> 916,788
|
||||
153,19 -> 707,573
|
||||
580,468 -> 502,390
|
||||
278,794 -> 447,963
|
||||
260,495 -> 315,550
|
||||
648,392 -> 726,392
|
||||
232,457 -> 633,858
|
||||
475,697 -> 740,697
|
||||
526,186 -> 526,588
|
||||
868,287 -> 868,668
|
||||
88,57 -> 88,984
|
||||
539,963 -> 539,859
|
||||
499,214 -> 963,678
|
||||
105,16 -> 937,848
|
||||
566,158 -> 566,26
|
||||
675,915 -> 675,555
|
||||
702,123 -> 360,123
|
||||
37,47 -> 120,130
|
||||
826,787 -> 79,787
|
||||
232,33 -> 833,634
|
||||
455,775 -> 455,919
|
||||
300,488 -> 300,92
|
||||
36,84 -> 36,514
|
||||
700,916 -> 700,391
|
||||
710,585 -> 710,14
|
||||
989,938 -> 120,69
|
||||
437,514 -> 437,277
|
||||
400,358 -> 400,623
|
||||
482,908 -> 802,908
|
||||
869,842 -> 53,26
|
||||
531,560 -> 180,560
|
||||
18,312 -> 18,223
|
||||
541,888 -> 541,438
|
||||
631,751 -> 631,238
|
||||
820,208 -> 192,836
|
||||
976,453 -> 561,38
|
||||
118,544 -> 318,744
|
||||
283,818 -> 283,138
|
||||
876,623 -> 327,623
|
||||
11,855 -> 283,855
|
||||
438,460 -> 145,167
|
||||
788,379 -> 250,379
|
||||
376,130 -> 890,130
|
||||
616,747 -> 538,825
|
||||
906,403 -> 906,306
|
||||
710,371 -> 710,200
|
||||
871,917 -> 629,917
|
||||
751,103 -> 345,103
|
||||
374,608 -> 641,608
|
||||
481,902 -> 198,902
|
||||
512,686 -> 590,764
|
||||
187,134 -> 949,896
|
||||
628,58 -> 170,516
|
||||
54,370 -> 23,401
|
||||
391,718 -> 523,718
|
||||
617,637 -> 448,637
|
||||
108,208 -> 233,208
|
||||
57,478 -> 633,478
|
||||
122,693 -> 734,693
|
||||
980,537 -> 980,639
|
||||
134,448 -> 134,439
|
||||
81,812 -> 515,812
|
||||
483,133 -> 215,133
|
||||
68,250 -> 68,476
|
||||
204,101 -> 204,934
|
||||
525,626 -> 924,227
|
||||
783,519 -> 373,929
|
||||
813,166 -> 813,837
|
||||
12,988 -> 988,12
|
||||
49,180 -> 46,180
|
||||
782,585 -> 782,194
|
||||
798,98 -> 459,437
|
||||
904,83 -> 333,654
|
||||
404,417 -> 404,819
|
||||
289,228 -> 431,86
|
||||
281,876 -> 964,193
|
||||
66,15 -> 66,570
|
||||
134,159 -> 784,809
|
||||
356,684 -> 442,598
|
||||
211,624 -> 572,624
|
||||
19,985 -> 986,18
|
||||
978,429 -> 978,791
|
||||
181,955 -> 832,304
|
||||
566,859 -> 566,281
|
||||
391,232 -> 535,232
|
||||
798,848 -> 17,67
|
||||
530,203 -> 530,932
|
||||
502,562 -> 287,562
|
||||
710,499 -> 451,758
|
||||
886,420 -> 163,420
|
||||
858,289 -> 632,515
|
||||
939,441 -> 939,280
|
||||
293,220 -> 444,220
|
||||
363,676 -> 159,676
|
||||
983,24 -> 46,961
|
||||
725,585 -> 154,14
|
||||
236,453 -> 467,453
|
||||
806,395 -> 806,557
|
||||
149,583 -> 149,200
|
||||
858,704 -> 858,272
|
36
05/solution_1.c
Normal file
36
05/solution_1.c
Normal file
|
@ -0,0 +1,36 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int main(void) {
|
||||
FILE *fp = fopen("input.txt", "r");
|
||||
unsigned char map[1000][1000] = {0};
|
||||
unsigned x0, x1, y0, y1;
|
||||
unsigned intersections = 0;
|
||||
|
||||
while (fscanf(fp, "%u,%u -> %u,%u", &x0, &y0, &x1, &y1) == 4) {
|
||||
char inc = 1;
|
||||
if (x0 == x1) {
|
||||
if (y0 > y1)
|
||||
inc = -1;
|
||||
for (unsigned y = y0; y != y1; y += inc) {
|
||||
map[x0][y]++;
|
||||
}
|
||||
map[x0][y1]++;
|
||||
} else if (y0 == y1) {
|
||||
if (x0 > x1)
|
||||
inc = -1;
|
||||
for (unsigned x = x0; x != x1; x += inc) {
|
||||
map[x][y0]++;
|
||||
}
|
||||
map[x1][y0]++;
|
||||
}
|
||||
}
|
||||
|
||||
for (unsigned y = 0; y < 1000; y++) {
|
||||
for (unsigned x = 0; x < 1000; x++) {
|
||||
if (map[x][y] > 1)
|
||||
intersections++;
|
||||
}
|
||||
}
|
||||
|
||||
printf("Answer: %d\n", intersections);
|
||||
}
|
41
05/solution_2.c
Normal file
41
05/solution_2.c
Normal file
|
@ -0,0 +1,41 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int main(void) {
|
||||
FILE *fp = fopen("input.txt", "r");
|
||||
unsigned char map[1000][1000] = {0};
|
||||
unsigned x0, x1, y0, y1;
|
||||
unsigned intersections = 0;
|
||||
|
||||
while (fscanf(fp, "%u,%u -> %u,%u", &x0, &y0, &x1, &y1) == 4) {
|
||||
char incY = y0 < y1 ? 1 : -1;
|
||||
char incX = x0 < x1 ? 1 : -1;
|
||||
if (x0 == x1) {
|
||||
for (unsigned y = y0; y != y1; y += incY) {
|
||||
map[x0][y]++;
|
||||
}
|
||||
map[x0][y1]++;
|
||||
} else if (y0 == y1) {
|
||||
for (unsigned x = x0; x != x1; x += incX) {
|
||||
map[x][y0]++;
|
||||
}
|
||||
map[x1][y0]++;
|
||||
} else {
|
||||
unsigned x = x0, y = y0;
|
||||
while (x != x1 && y != y1) {
|
||||
map[x][y]++;
|
||||
x += incX;
|
||||
y += incY;
|
||||
}
|
||||
map[x][y]++;
|
||||
}
|
||||
}
|
||||
|
||||
for (unsigned y = 0; y < 1000; y++) {
|
||||
for (unsigned x = 0; x < 1000; x++) {
|
||||
if (map[x][y] > 1)
|
||||
intersections++;
|
||||
}
|
||||
}
|
||||
|
||||
printf("Answer: %d\n", intersections);
|
||||
}
|
Loading…
Reference in a new issue