parent
89a87bf95b
commit
d8448356ef
5 changed files with 687 additions and 0 deletions
@ -0,0 +1,10 @@ |
|||||||
|
solution-part%: solution-part%.c |
||||||
|
gcc $< -o $@
|
||||||
|
|
||||||
|
test-%: solution-% example.txt |
||||||
|
$< example.txt
|
||||||
|
|
||||||
|
run-%: solution-% realinput.txt |
||||||
|
$< realinput.txt
|
||||||
|
|
||||||
|
.PHONY: $(patsubst %,run-%, 1 2) $(patsubst %,test-%, 1 2) |
@ -0,0 +1,10 @@ |
|||||||
|
0,9 -> 5,9 |
||||||
|
8,0 -> 0,8 |
||||||
|
9,4 -> 3,4 |
||||||
|
2,2 -> 2,1 |
||||||
|
7,0 -> 7,4 |
||||||
|
6,4 -> 2,0 |
||||||
|
0,9 -> 2,9 |
||||||
|
3,4 -> 1,4 |
||||||
|
0,0 -> 8,8 |
||||||
|
5,5 -> 8,2 |
@ -0,0 +1,500 @@ |
|||||||
|
682,519 -> 682,729 |
||||||
|
852,131 -> 25,958 |
||||||
|
303,481 -> 206,481 |
||||||
|
199,682 -> 183,666 |
||||||
|
363,190 -> 571,190 |
||||||
|
930,290 -> 221,290 |
||||||
|
364,627 -> 952,39 |
||||||
|
234,309 -> 234,821 |
||||||
|
130,864 -> 130,886 |
||||||
|
462,347 -> 699,110 |
||||||
|
375,969 -> 481,969 |
||||||
|
989,859 -> 275,145 |
||||||
|
221,748 -> 212,748 |
||||||
|
870,173 -> 106,937 |
||||||
|
604,33 -> 604,142 |
||||||
|
780,35 -> 780,206 |
||||||
|
636,808 -> 721,808 |
||||||
|
944,989 -> 334,989 |
||||||
|
477,113 -> 192,113 |
||||||
|
879,265 -> 879,358 |
||||||
|
754,974 -> 17,974 |
||||||
|
10,989 -> 989,10 |
||||||
|
337,320 -> 674,657 |
||||||
|
225,96 -> 557,428 |
||||||
|
129,354 -> 299,354 |
||||||
|
717,695 -> 695,695 |
||||||
|
94,255 -> 317,478 |
||||||
|
90,87 -> 90,187 |
||||||
|
77,942 -> 952,67 |
||||||
|
804,315 -> 989,315 |
||||||
|
619,470 -> 491,342 |
||||||
|
466,90 -> 466,755 |
||||||
|
840,121 -> 840,469 |
||||||
|
638,127 -> 638,77 |
||||||
|
844,40 -> 151,40 |
||||||
|
653,987 -> 653,631 |
||||||
|
195,583 -> 195,623 |
||||||
|
88,985 -> 570,503 |
||||||
|
921,897 -> 165,141 |
||||||
|
230,27 -> 171,27 |
||||||
|
737,771 -> 832,771 |
||||||
|
563,365 -> 665,467 |
||||||
|
942,940 -> 776,774 |
||||||
|
12,903 -> 644,903 |
||||||
|
308,390 -> 308,971 |
||||||
|
572,943 -> 572,15 |
||||||
|
104,389 -> 104,73 |
||||||
|
346,721 -> 974,93 |
||||||
|
30,53 -> 562,53 |
||||||
|
804,682 -> 804,120 |
||||||
|
952,45 -> 15,982 |
||||||
|
475,456 -> 475,348 |
||||||
|
409,247 -> 664,247 |
||||||
|
345,18 -> 816,489 |
||||||
|
571,158 -> 505,158 |
||||||
|
59,195 -> 27,195 |
||||||
|
230,681 -> 23,681 |
||||||
|
258,711 -> 921,711 |
||||||
|
658,112 -> 366,404 |
||||||
|
842,220 -> 842,825 |
||||||
|
815,744 -> 540,744 |
||||||
|
192,314 -> 703,825 |
||||||
|
869,573 -> 869,888 |
||||||
|
603,268 -> 603,301 |
||||||
|
816,668 -> 816,189 |
||||||
|
148,606 -> 948,606 |
||||||
|
117,461 -> 506,461 |
||||||
|
986,955 -> 986,315 |
||||||
|
131,250 -> 192,189 |
||||||
|
988,148 -> 518,618 |
||||||
|
682,900 -> 31,900 |
||||||
|
652,839 -> 652,236 |
||||||
|
466,812 -> 466,611 |
||||||
|
881,346 -> 401,346 |
||||||
|
229,639 -> 731,639 |
||||||
|
104,476 -> 840,476 |
||||||
|
10,988 -> 988,10 |
||||||
|
29,15 -> 987,973 |
||||||
|
825,348 -> 825,240 |
||||||
|
989,989 -> 10,10 |
||||||
|
430,796 -> 926,796 |
||||||
|
49,293 -> 610,854 |
||||||
|
325,288 -> 918,288 |
||||||
|
625,309 -> 439,495 |
||||||
|
536,150 -> 356,150 |
||||||
|
834,558 -> 822,558 |
||||||
|
315,408 -> 315,635 |
||||||
|
257,973 -> 813,973 |
||||||
|
713,52 -> 122,52 |
||||||
|
323,970 -> 578,970 |
||||||
|
447,49 -> 829,49 |
||||||
|
941,709 -> 941,390 |
||||||
|
148,323 -> 391,80 |
||||||
|
23,171 -> 23,49 |
||||||
|
475,265 -> 322,112 |
||||||
|
506,407 -> 69,844 |
||||||
|
567,284 -> 483,368 |
||||||
|
114,745 -> 114,765 |
||||||
|
392,252 -> 109,535 |
||||||
|
65,188 -> 455,188 |
||||||
|
732,779 -> 732,52 |
||||||
|
233,214 -> 759,214 |
||||||
|
232,969 -> 957,244 |
||||||
|
20,669 -> 20,308 |
||||||
|
49,972 -> 285,972 |
||||||
|
501,383 -> 433,383 |
||||||
|
918,15 -> 32,901 |
||||||
|
255,268 -> 935,948 |
||||||
|
757,588 -> 757,919 |
||||||
|
530,803 -> 284,557 |
||||||
|
688,926 -> 48,286 |
||||||
|
331,245 -> 331,777 |
||||||
|
448,544 -> 209,544 |
||||||
|
10,970 -> 951,29 |
||||||
|
233,11 -> 897,11 |
||||||
|
145,392 -> 628,392 |
||||||
|
935,971 -> 935,280 |
||||||
|
169,632 -> 54,632 |
||||||
|
155,244 -> 155,334 |
||||||
|
56,284 -> 205,284 |
||||||
|
553,428 -> 553,520 |
||||||
|
977,176 -> 497,656 |
||||||
|
323,339 -> 971,987 |
||||||
|
616,355 -> 616,248 |
||||||
|
72,660 -> 72,334 |
||||||
|
644,822 -> 510,956 |
||||||
|
356,841 -> 587,841 |
||||||
|
413,468 -> 605,468 |
||||||
|
85,22 -> 645,582 |
||||||
|
924,850 -> 522,850 |
||||||
|
448,45 -> 345,148 |
||||||
|
102,566 -> 551,566 |
||||||
|
80,39 -> 847,806 |
||||||
|
936,436 -> 934,436 |
||||||
|
53,24 -> 495,466 |
||||||
|
234,173 -> 282,173 |
||||||
|
145,680 -> 456,680 |
||||||
|
960,759 -> 960,282 |
||||||
|
984,814 -> 308,138 |
||||||
|
398,808 -> 716,808 |
||||||
|
509,536 -> 25,52 |
||||||
|
289,777 -> 803,263 |
||||||
|
766,892 -> 257,892 |
||||||
|
301,733 -> 688,733 |
||||||
|
24,109 -> 887,972 |
||||||
|
180,32 -> 577,429 |
||||||
|
985,801 -> 687,503 |
||||||
|
901,582 -> 586,582 |
||||||
|
50,56 -> 50,267 |
||||||
|
344,373 -> 437,373 |
||||||
|
542,133 -> 905,496 |
||||||
|
420,624 -> 420,716 |
||||||
|
645,106 -> 645,574 |
||||||
|
356,37 -> 114,37 |
||||||
|
324,919 -> 357,919 |
||||||
|
126,797 -> 120,797 |
||||||
|
288,689 -> 435,836 |
||||||
|
93,915 -> 639,369 |
||||||
|
106,391 -> 478,19 |
||||||
|
277,501 -> 714,64 |
||||||
|
253,277 -> 643,277 |
||||||
|
568,972 -> 350,972 |
||||||
|
213,235 -> 213,406 |
||||||
|
595,888 -> 595,233 |
||||||
|
577,63 -> 37,603 |
||||||
|
649,732 -> 931,732 |
||||||
|
469,892 -> 549,892 |
||||||
|
953,895 -> 953,457 |
||||||
|
222,213 -> 290,213 |
||||||
|
841,800 -> 841,336 |
||||||
|
685,143 -> 25,143 |
||||||
|
441,127 -> 441,146 |
||||||
|
646,586 -> 56,586 |
||||||
|
698,122 -> 465,122 |
||||||
|
641,502 -> 641,240 |
||||||
|
111,91 -> 185,91 |
||||||
|
927,755 -> 874,808 |
||||||
|
108,151 -> 108,567 |
||||||
|
309,453 -> 309,210 |
||||||
|
890,657 -> 491,657 |
||||||
|
404,244 -> 404,123 |
||||||
|
939,28 -> 26,941 |
||||||
|
596,970 -> 596,870 |
||||||
|
489,556 -> 489,589 |
||||||
|
607,621 -> 903,325 |
||||||
|
912,284 -> 571,284 |
||||||
|
921,702 -> 743,524 |
||||||
|
719,36 -> 719,394 |
||||||
|
100,905 -> 798,207 |
||||||
|
316,260 -> 316,887 |
||||||
|
799,940 -> 885,940 |
||||||
|
835,287 -> 199,923 |
||||||
|
422,760 -> 64,760 |
||||||
|
727,113 -> 727,679 |
||||||
|
733,56 -> 59,730 |
||||||
|
141,399 -> 485,743 |
||||||
|
769,629 -> 769,797 |
||||||
|
62,486 -> 62,205 |
||||||
|
192,332 -> 800,332 |
||||||
|
15,931 -> 727,931 |
||||||
|
854,915 -> 988,915 |
||||||
|
349,610 -> 886,610 |
||||||
|
72,110 -> 72,903 |
||||||
|
955,110 -> 78,987 |
||||||
|
591,553 -> 591,428 |
||||||
|
708,467 -> 516,467 |
||||||
|
397,589 -> 353,589 |
||||||
|
930,336 -> 930,532 |
||||||
|
639,50 -> 228,50 |
||||||
|
472,17 -> 472,244 |
||||||
|
420,825 -> 420,562 |
||||||
|
203,197 -> 203,35 |
||||||
|
984,964 -> 223,203 |
||||||
|
944,269 -> 935,260 |
||||||
|
933,119 -> 87,965 |
||||||
|
696,290 -> 696,580 |
||||||
|
925,960 -> 52,87 |
||||||
|
451,470 -> 235,254 |
||||||
|
562,71 -> 562,149 |
||||||
|
405,126 -> 405,67 |
||||||
|
356,424 -> 356,673 |
||||||
|
859,649 -> 859,291 |
||||||
|
210,651 -> 210,544 |
||||||
|
403,783 -> 403,122 |
||||||
|
672,87 -> 586,87 |
||||||
|
409,668 -> 984,668 |
||||||
|
917,352 -> 511,758 |
||||||
|
395,953 -> 141,953 |
||||||
|
152,795 -> 152,313 |
||||||
|
839,344 -> 811,372 |
||||||
|
114,649 -> 650,649 |
||||||
|
60,517 -> 60,27 |
||||||
|
448,392 -> 845,392 |
||||||
|
33,849 -> 719,163 |
||||||
|
151,988 -> 876,988 |
||||||
|
805,556 -> 124,556 |
||||||
|
361,538 -> 706,193 |
||||||
|
974,941 -> 141,108 |
||||||
|
271,813 -> 968,116 |
||||||
|
500,697 -> 80,277 |
||||||
|
586,731 -> 586,480 |
||||||
|
128,147 -> 174,101 |
||||||
|
882,681 -> 882,745 |
||||||
|
531,730 -> 677,730 |
||||||
|
989,11 -> 11,989 |
||||||
|
74,332 -> 234,492 |
||||||
|
360,326 -> 932,898 |
||||||
|
136,288 -> 113,311 |
||||||
|
666,645 -> 916,895 |
||||||
|
977,478 -> 561,62 |
||||||
|
20,83 -> 566,83 |
||||||
|
331,942 -> 331,646 |
||||||
|
180,291 -> 405,291 |
||||||
|
637,763 -> 637,941 |
||||||
|
120,138 -> 120,820 |
||||||
|
951,24 -> 14,961 |
||||||
|
204,304 -> 204,51 |
||||||
|
84,168 -> 880,168 |
||||||
|
955,145 -> 955,903 |
||||||
|
437,427 -> 437,354 |
||||||
|
875,67 -> 189,753 |
||||||
|
46,767 -> 802,11 |
||||||
|
52,59 -> 889,896 |
||||||
|
926,56 -> 102,880 |
||||||
|
500,30 -> 964,30 |
||||||
|
329,488 -> 329,972 |
||||||
|
63,11 -> 889,837 |
||||||
|
707,168 -> 707,584 |
||||||
|
580,10 -> 735,10 |
||||||
|
105,620 -> 105,110 |
||||||
|
187,531 -> 323,531 |
||||||
|
82,947 -> 82,941 |
||||||
|
737,199 -> 737,851 |
||||||
|
612,650 -> 217,650 |
||||||
|
971,15 -> 82,904 |
||||||
|
16,590 -> 506,100 |
||||||
|
950,877 -> 832,759 |
||||||
|
570,470 -> 570,276 |
||||||
|
213,411 -> 213,195 |
||||||
|
670,755 -> 89,755 |
||||||
|
906,963 -> 906,984 |
||||||
|
458,463 -> 442,463 |
||||||
|
956,969 -> 10,23 |
||||||
|
87,215 -> 195,107 |
||||||
|
819,454 -> 819,467 |
||||||
|
594,793 -> 686,793 |
||||||
|
395,724 -> 787,332 |
||||||
|
315,461 -> 644,461 |
||||||
|
448,247 -> 249,48 |
||||||
|
620,302 -> 247,675 |
||||||
|
607,134 -> 932,134 |
||||||
|
312,776 -> 312,289 |
||||||
|
850,942 -> 54,146 |
||||||
|
31,538 -> 851,538 |
||||||
|
729,126 -> 640,126 |
||||||
|
702,199 -> 702,706 |
||||||
|
402,783 -> 254,783 |
||||||
|
110,59 -> 203,59 |
||||||
|
27,10 -> 965,948 |
||||||
|
747,261 -> 47,261 |
||||||
|
628,742 -> 972,742 |
||||||
|
712,742 -> 657,797 |
||||||
|
877,871 -> 877,758 |
||||||
|
665,313 -> 449,529 |
||||||
|
498,157 -> 498,68 |
||||||
|
870,922 -> 27,79 |
||||||
|
856,697 -> 856,429 |
||||||
|
447,271 -> 963,787 |
||||||
|
495,302 -> 495,520 |
||||||
|
526,47 -> 721,47 |
||||||
|
826,179 -> 826,741 |
||||||
|
565,461 -> 893,461 |
||||||
|
512,328 -> 127,328 |
||||||
|
487,920 -> 522,920 |
||||||
|
614,452 -> 614,146 |
||||||
|
331,574 -> 331,840 |
||||||
|
985,79 -> 285,779 |
||||||
|
812,320 -> 985,320 |
||||||
|
118,69 -> 429,69 |
||||||
|
644,525 -> 644,878 |
||||||
|
271,132 -> 156,132 |
||||||
|
955,782 -> 565,392 |
||||||
|
630,939 -> 630,372 |
||||||
|
51,203 -> 840,203 |
||||||
|
202,490 -> 202,479 |
||||||
|
579,868 -> 579,92 |
||||||
|
979,336 -> 979,623 |
||||||
|
843,865 -> 260,282 |
||||||
|
685,872 -> 685,503 |
||||||
|
721,193 -> 721,510 |
||||||
|
908,661 -> 908,955 |
||||||
|
19,950 -> 715,254 |
||||||
|
233,730 -> 233,101 |
||||||
|
922,954 -> 27,954 |
||||||
|
399,444 -> 399,403 |
||||||
|
380,712 -> 380,718 |
||||||
|
238,264 -> 849,875 |
||||||
|
458,577 -> 458,139 |
||||||
|
418,244 -> 469,295 |
||||||
|
460,375 -> 964,879 |
||||||
|
276,445 -> 815,445 |
||||||
|
463,910 -> 648,725 |
||||||
|
26,384 -> 968,384 |
||||||
|
955,385 -> 955,143 |
||||||
|
942,775 -> 733,566 |
||||||
|
425,326 -> 531,326 |
||||||
|
364,545 -> 364,873 |
||||||
|
182,759 -> 182,819 |
||||||
|
390,757 -> 390,475 |
||||||
|
217,417 -> 217,157 |
||||||
|
669,286 -> 65,890 |
||||||
|
257,11 -> 257,858 |
||||||
|
557,397 -> 557,20 |
||||||
|
888,946 -> 32,90 |
||||||
|
971,938 -> 971,578 |
||||||
|
874,248 -> 874,485 |
||||||
|
87,268 -> 87,135 |
||||||
|
756,679 -> 103,26 |
||||||
|
771,250 -> 771,107 |
||||||
|
320,711 -> 967,711 |
||||||
|
293,219 -> 293,706 |
||||||
|
103,565 -> 103,538 |
||||||
|
388,256 -> 388,261 |
||||||
|
468,953 -> 503,953 |
||||||
|
424,142 -> 287,142 |
||||||
|
24,930 -> 850,930 |
||||||
|
316,167 -> 316,161 |
||||||
|
481,421 -> 208,148 |
||||||
|
938,926 -> 938,933 |
||||||
|
701,653 -> 701,780 |
||||||
|
536,390 -> 536,559 |
||||||
|
40,954 -> 829,165 |
||||||
|
404,985 -> 247,985 |
||||||
|
94,628 -> 94,500 |
||||||
|
441,637 -> 441,271 |
||||||
|
766,946 -> 97,277 |
||||||
|
428,363 -> 428,37 |
||||||
|
542,694 -> 542,347 |
||||||
|
11,16 -> 979,984 |
||||||
|
938,651 -> 632,957 |
||||||
|
779,127 -> 243,663 |
||||||
|
636,294 -> 636,787 |
||||||
|
533,744 -> 636,641 |
||||||
|
521,950 -> 458,950 |
||||||
|
988,12 -> 18,982 |
||||||
|
954,621 -> 954,271 |
||||||
|
638,951 -> 813,951 |
||||||
|
822,911 -> 632,911 |
||||||
|
714,849 -> 512,849 |
||||||
|
696,88 -> 385,88 |
||||||
|
65,451 -> 65,687 |
||||||
|
976,973 -> 976,907 |
||||||
|
368,489 -> 368,571 |
||||||
|
358,831 -> 690,499 |
||||||
|
436,704 -> 178,704 |
||||||
|
690,619 -> 606,535 |
||||||
|
96,701 -> 358,701 |
||||||
|
885,562 -> 420,562 |
||||||
|
581,480 -> 613,512 |
||||||
|
44,970 -> 970,44 |
||||||
|
216,796 -> 892,120 |
||||||
|
72,623 -> 72,72 |
||||||
|
896,283 -> 896,326 |
||||||
|
794,195 -> 22,967 |
||||||
|
134,326 -> 134,889 |
||||||
|
420,141 -> 944,665 |
||||||
|
941,194 -> 941,421 |
||||||
|
940,525 -> 298,525 |
||||||
|
653,300 -> 769,300 |
||||||
|
227,424 -> 406,603 |
||||||
|
275,850 -> 113,850 |
||||||
|
648,850 -> 92,850 |
||||||
|
638,389 -> 638,10 |
||||||
|
379,404 -> 584,609 |
||||||
|
833,931 -> 833,520 |
||||||
|
772,286 -> 500,558 |
||||||
|
372,262 -> 333,262 |
||||||
|
689,18 -> 131,576 |
||||||
|
687,499 -> 687,188 |
||||||
|
344,499 -> 37,806 |
||||||
|
778,496 -> 134,496 |
||||||
|
938,87 -> 344,681 |
||||||
|
788,401 -> 479,401 |
||||||
|
828,903 -> 756,903 |
||||||
|
423,625 -> 285,763 |
||||||
|
218,489 -> 218,819 |
||||||
|
488,384 -> 891,787 |
||||||
|
817,532 -> 788,532 |
||||||
|
512,27 -> 512,149 |
||||||
|
369,794 -> 54,794 |
||||||
|
534,590 -> 827,883 |
||||||
|
84,310 -> 39,265 |
||||||
|
357,545 -> 665,545 |
||||||
|
539,807 -> 539,781 |
||||||
|
378,683 -> 22,327 |
||||||
|
71,909 -> 943,37 |
||||||
|
740,552 -> 348,552 |
||||||
|
698,315 -> 45,968 |
||||||
|
516,835 -> 360,835 |
||||||
|
629,141 -> 629,385 |
||||||
|
695,908 -> 303,908 |
||||||
|
795,707 -> 386,707 |
||||||
|
211,397 -> 291,397 |
||||||
|
64,620 -> 236,620 |
||||||
|
97,638 -> 97,445 |
||||||
|
46,103 -> 893,950 |
||||||
|
468,122 -> 979,122 |
||||||
|
810,486 -> 433,486 |
||||||
|
532,899 -> 461,970 |
||||||
|
232,60 -> 235,60 |
||||||
|
549,708 -> 549,90 |
||||||
|
294,978 -> 294,124 |
||||||
|
865,406 -> 640,406 |
||||||
|
755,305 -> 664,305 |
||||||
|
12,989 -> 987,14 |
||||||
|
275,249 -> 260,234 |
||||||
|
502,783 -> 67,783 |
||||||
|
863,938 -> 297,372 |
||||||
|
516,961 -> 516,272 |
||||||
|
67,510 -> 611,510 |
||||||
|
980,951 -> 312,283 |
||||||
|
325,512 -> 325,169 |
||||||
|
142,429 -> 542,29 |
||||||
|
273,964 -> 822,964 |
||||||
|
370,217 -> 508,217 |
||||||
|
131,131 -> 331,331 |
||||||
|
734,824 -> 734,817 |
||||||
|
75,89 -> 687,701 |
||||||
|
155,255 -> 702,802 |
||||||
|
577,395 -> 130,395 |
||||||
|
684,94 -> 555,94 |
||||||
|
393,881 -> 173,881 |
||||||
|
894,750 -> 773,750 |
||||||
|
380,269 -> 380,338 |
||||||
|
427,36 -> 427,77 |
||||||
|
637,107 -> 637,846 |
||||||
|
53,437 -> 53,221 |
||||||
|
128,979 -> 960,147 |
||||||
|
838,211 -> 838,645 |
||||||
|
898,39 -> 849,39 |
||||||
|
862,495 -> 951,495 |
||||||
|
754,406 -> 76,406 |
||||||
|
951,960 -> 113,122 |
||||||
|
830,125 -> 15,940 |
||||||
|
190,117 -> 190,973 |
||||||
|
192,956 -> 718,430 |
||||||
|
895,162 -> 88,969 |
||||||
|
135,196 -> 70,131 |
||||||
|
578,642 -> 578,789 |
||||||
|
713,268 -> 625,268 |
||||||
|
938,719 -> 938,604 |
||||||
|
30,863 -> 99,863 |
||||||
|
844,309 -> 287,309 |
||||||
|
131,837 -> 459,509 |
||||||
|
61,206 -> 722,867 |
||||||
|
95,974 -> 283,974 |
||||||
|
746,672 -> 558,672 |
||||||
|
552,32 -> 352,32 |
||||||
|
21,637 -> 21,781 |
||||||
|
945,847 -> 945,303 |
@ -0,0 +1,77 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
#include <stdbool.h> |
||||||
|
#include <string.h> |
||||||
|
|
||||||
|
#define MAX(a, b) ((a) < (b) ? (b) : (a)) |
||||||
|
#define MIN(a, b) ((a) < (b) ? (a) : (b)) |
||||||
|
|
||||||
|
void printGrid(unsigned int maxx, unsigned int maxy, unsigned int grid[maxx+1][maxy+1]){ |
||||||
|
for( unsigned int y = 0; y <= maxy; y++ ){ |
||||||
|
for( unsigned int x = 0; x <= maxx; x++ ){ |
||||||
|
printf("%3i", grid[x][y]); |
||||||
|
} |
||||||
|
printf("\n"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
int main( int argc, char *argv[] ){ |
||||||
|
if( argc == 2 ) { |
||||||
|
|
||||||
|
|
||||||
|
FILE *fp=fopen(argv[1], "r"); |
||||||
|
|
||||||
|
unsigned int maxx=0, maxy=0; |
||||||
|
|
||||||
|
while (!feof (fp)){ |
||||||
|
unsigned int x1=0,x2=0,y1=0,y2=0; |
||||||
|
|
||||||
|
fscanf(fp, "%i,%i -> %i,%i\n", &x1,&y1,&x2,&y2); |
||||||
|
|
||||||
|
maxx= MAX( maxx, MAX( x1, x2 ) ); |
||||||
|
maxy= MAX( maxy, MAX( y1, y2 ) ); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
unsigned int grid[maxx+1][maxy+1]; |
||||||
|
memset( &grid, 0, (maxx+1)*(maxy+1)*sizeof(int) ); |
||||||
|
|
||||||
|
rewind(fp); |
||||||
|
|
||||||
|
unsigned int cellsWithOverlap=0; |
||||||
|
|
||||||
|
while (!feof (fp)){ |
||||||
|
unsigned int x1=0,x2=0,y1=0,y2=0; |
||||||
|
|
||||||
|
fscanf(fp, "%i,%i -> %i,%i\n", &x1,&y1,&x2,&y2); |
||||||
|
|
||||||
|
|
||||||
|
if ( x1 == x2 ){ |
||||||
|
for( unsigned int y = MIN(y1,y2); y<=MAX(y1,y2); y++ ) |
||||||
|
if ( 1 == grid[x1][y]++) cellsWithOverlap++; |
||||||
|
} |
||||||
|
|
||||||
|
if ( y1 == y2 ){ |
||||||
|
for( unsigned int x = MIN(x1,x2); x<=MAX(x1,x2); x++ ) |
||||||
|
if ( 1 == grid[x][y1]++) cellsWithOverlap++; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
printf("%i cells with overlap\n", cellsWithOverlap); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fclose(fp); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return 0; |
||||||
|
} else { |
||||||
|
printf("You need to provide a file\n"); |
||||||
|
return 1; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,90 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
#include <string.h> |
||||||
|
#include <stdlib.h> |
||||||
|
|
||||||
|
|
||||||
|
#define MAX(a, b) ((a) < (b) ? (b) : (a)) |
||||||
|
#define MIN(a, b) ((a) < (b) ? (a) : (b)) |
||||||
|
|
||||||
|
void printGrid(unsigned int maxx, unsigned int maxy, unsigned int grid[maxx+1][maxy+1]){ |
||||||
|
for( unsigned int y = 0; y <= maxy; y++ ){ |
||||||
|
for( unsigned int x = 0; x <= maxx; x++ ){ |
||||||
|
printf("%3i", grid[x][y]); |
||||||
|
} |
||||||
|
printf("\n"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
int main( int argc, char *argv[] ){ |
||||||
|
if( argc == 2 ) { |
||||||
|
|
||||||
|
|
||||||
|
FILE *fp=fopen(argv[1], "r"); |
||||||
|
|
||||||
|
unsigned int maxx=0, maxy=0; |
||||||
|
|
||||||
|
while (!feof (fp)){ |
||||||
|
int x1=0,x2=0,y1=0,y2=0; |
||||||
|
|
||||||
|
fscanf(fp, "%i,%i -> %i,%i\n", &x1,&y1,&x2,&y2); |
||||||
|
|
||||||
|
maxx= MAX( maxx, MAX( x1, x2 ) ); |
||||||
|
maxy= MAX( maxy, MAX( y1, y2 ) ); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
unsigned int grid[maxx+1][maxy+1]; |
||||||
|
memset( &grid, 0, (maxx+1)*(maxy+1)*sizeof(int) ); |
||||||
|
|
||||||
|
rewind(fp); |
||||||
|
|
||||||
|
unsigned int cellsWithOverlap=0; |
||||||
|
|
||||||
|
unsigned int iteration = 0; |
||||||
|
while (!feof (fp)){ |
||||||
|
int x1=0,x2=0,y1=0,y2=0; |
||||||
|
|
||||||
|
fscanf(fp, "%i,%i -> %i,%i\n", &x1,&y1,&x2,&y2); |
||||||
|
|
||||||
|
//printf("Iteration: %i\n", iteration);
|
||||||
|
|
||||||
|
|
||||||
|
if ( x1 == x2 ){ // Virtical lines
|
||||||
|
for( unsigned int y = MIN(y1,y2); y<=MAX(y1,y2); y++ ) |
||||||
|
if ( 1 == grid[x1][y]++) cellsWithOverlap++; |
||||||
|
} else if ( y1 == y2 ){ // Horisontal lines
|
||||||
|
for( unsigned int x = MIN(x1,x2); x<=MAX(x1,x2); x++ ) |
||||||
|
if ( 1 == grid[x][y1]++) cellsWithOverlap++; |
||||||
|
} else { // Diaganal lines
|
||||||
|
// Since we know all diagonals are 45 deg we only need to worry about if this is 1 or -1
|
||||||
|
int dx = (x2 - x1) / abs(x2 - x1); |
||||||
|
int dy = (y2 - y1) / abs(y2 - y1); |
||||||
|
for (unsigned int i = 0; i <= MAX(x1,x2) - MIN(x1,x2); i++){ |
||||||
|
unsigned int x = x1 + ( dx * i ); |
||||||
|
unsigned int y = y1 + ( dy * i ); |
||||||
|
if ( 1 == grid[x][y]++) cellsWithOverlap++; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
iteration++; |
||||||
|
} |
||||||
|
|
||||||
|
printf("%i cells with overlap\n", cellsWithOverlap); |
||||||
|
|
||||||
|
|
||||||
|
//printGrid(maxx, maxy, grid);
|
||||||
|
|
||||||
|
fclose(fp); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return 0; |
||||||
|
} else { |
||||||
|
printf("You need to provide a file\n"); |
||||||
|
return 1; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue