parent
73ddcce4ae
commit
942c62ae5c
5 changed files with 1164 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,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 |
@ -0,0 +1,936 @@ |
|||||||
|
1148,688 |
||||||
|
1020,159 |
||||||
|
857,707 |
||||||
|
1176,415 |
||||||
|
388,275 |
||||||
|
50,849 |
||||||
|
544,520 |
||||||
|
1,418 |
||||||
|
1119,280 |
||||||
|
217,26 |
||||||
|
358,110 |
||||||
|
1302,684 |
||||||
|
910,791 |
||||||
|
45,287 |
||||||
|
544,806 |
||||||
|
423,859 |
||||||
|
529,866 |
||||||
|
1150,686 |
||||||
|
977,668 |
||||||
|
666,245 |
||||||
|
380,603 |
||||||
|
892,343 |
||||||
|
437,483 |
||||||
|
1109,411 |
||||||
|
296,534 |
||||||
|
763,676 |
||||||
|
711,218 |
||||||
|
139,774 |
||||||
|
923,397 |
||||||
|
1202,341 |
||||||
|
664,12 |
||||||
|
416,89 |
||||||
|
522,54 |
||||||
|
524,401 |
||||||
|
541,796 |
||||||
|
1153,523 |
||||||
|
1101,427 |
||||||
|
977,308 |
||||||
|
102,856 |
||||||
|
769,546 |
||||||
|
966,523 |
||||||
|
1218,820 |
||||||
|
833,682 |
||||||
|
872,806 |
||||||
|
457,542 |
||||||
|
333,586 |
||||||
|
238,537 |
||||||
|
528,103 |
||||||
|
169,840 |
||||||
|
321,44 |
||||||
|
102,408 |
||||||
|
825,346 |
||||||
|
1220,791 |
||||||
|
1223,584 |
||||||
|
907,597 |
||||||
|
785,766 |
||||||
|
147,654 |
||||||
|
201,707 |
||||||
|
775,674 |
||||||
|
746,651 |
||||||
|
221,354 |
||||||
|
213,460 |
||||||
|
843,105 |
||||||
|
59,110 |
||||||
|
224,773 |
||||||
|
654,368 |
||||||
|
666,21 |
||||||
|
1134,736 |
||||||
|
475,121 |
||||||
|
445,799 |
||||||
|
1141,411 |
||||||
|
835,688 |
||||||
|
810,12 |
||||||
|
810,882 |
||||||
|
1064,51 |
||||||
|
1240,805 |
||||||
|
266,723 |
||||||
|
125,812 |
||||||
|
1048,299 |
||||||
|
213,68 |
||||||
|
129,738 |
||||||
|
100,256 |
||||||
|
666,551 |
||||||
|
1004,632 |
||||||
|
1250,505 |
||||||
|
119,674 |
||||||
|
565,264 |
||||||
|
937,220 |
||||||
|
387,497 |
||||||
|
1235,259 |
||||||
|
8,658 |
||||||
|
902,294 |
||||||
|
159,884 |
||||||
|
222,159 |
||||||
|
184,645 |
||||||
|
700,646 |
||||||
|
1251,110 |
||||||
|
53,469 |
||||||
|
1228,282 |
||||||
|
157,779 |
||||||
|
862,759 |
||||||
|
694,31 |
||||||
|
10,876 |
||||||
|
652,110 |
||||||
|
1104,505 |
||||||
|
554,582 |
||||||
|
574,742 |
||||||
|
985,642 |
||||||
|
410,830 |
||||||
|
873,420 |
||||||
|
623,42 |
||||||
|
70,89 |
||||||
|
922,395 |
||||||
|
627,446 |
||||||
|
724,848 |
||||||
|
610,534 |
||||||
|
1042,283 |
||||||
|
852,731 |
||||||
|
370,193 |
||||||
|
109,420 |
||||||
|
1275,239 |
||||||
|
582,546 |
||||||
|
88,537 |
||||||
|
1133,682 |
||||||
|
584,847 |
||||||
|
835,654 |
||||||
|
299,649 |
||||||
|
735,82 |
||||||
|
467,547 |
||||||
|
408,51 |
||||||
|
1278,233 |
||||||
|
758,325 |
||||||
|
1044,171 |
||||||
|
233,364 |
||||||
|
490,16 |
||||||
|
326,187 |
||||||
|
455,114 |
||||||
|
1231,504 |
||||||
|
1300,876 |
||||||
|
403,830 |
||||||
|
1185,418 |
||||||
|
731,187 |
||||||
|
256,354 |
||||||
|
1200,725 |
||||||
|
1101,338 |
||||||
|
781,399 |
||||||
|
1207,147 |
||||||
|
1153,502 |
||||||
|
335,752 |
||||||
|
716,389 |
||||||
|
811,747 |
||||||
|
619,311 |
||||||
|
865,95 |
||||||
|
221,443 |
||||||
|
567,310 |
||||||
|
503,112 |
||||||
|
646,658 |
||||||
|
296,617 |
||||||
|
314,40 |
||||||
|
813,483 |
||||||
|
1223,252 |
||||||
|
813,502 |
||||||
|
566,724 |
||||||
|
445,95 |
||||||
|
832,437 |
||||||
|
191,614 |
||||||
|
268,611 |
||||||
|
162,78 |
||||||
|
303,5 |
||||||
|
865,114 |
||||||
|
373,108 |
||||||
|
688,9 |
||||||
|
692,511 |
||||||
|
403,696 |
||||||
|
1071,724 |
||||||
|
786,401 |
||||||
|
544,164 |
||||||
|
150,457 |
||||||
|
75,198 |
||||||
|
1006,607 |
||||||
|
441,68 |
||||||
|
300,873 |
||||||
|
160,686 |
||||||
|
1059,646 |
||||||
|
53,47 |
||||||
|
850,847 |
||||||
|
458,182 |
||||||
|
1265,259 |
||||||
|
869,826 |
||||||
|
571,241 |
||||||
|
408,395 |
||||||
|
1007,889 |
||||||
|
515,95 |
||||||
|
458,163 |
||||||
|
154,761 |
||||||
|
642,774 |
||||||
|
571,653 |
||||||
|
199,266 |
||||||
|
364,719 |
||||||
|
109,474 |
||||||
|
700,360 |
||||||
|
160,14 |
||||||
|
671,345 |
||||||
|
448,583 |
||||||
|
711,666 |
||||||
|
296,277 |
||||||
|
984,187 |
||||||
|
1096,824 |
||||||
|
381,469 |
||||||
|
649,624 |
||||||
|
1310,635 |
||||||
|
1206,607 |
||||||
|
392,35 |
||||||
|
381,698 |
||||||
|
520,479 |
||||||
|
482,145 |
||||||
|
498,444 |
||||||
|
239,170 |
||||||
|
601,21 |
||||||
|
522,840 |
||||||
|
1067,770 |
||||||
|
415,259 |
||||||
|
827,595 |
||||||
|
52,725 |
||||||
|
251,597 |
||||||
|
0,10 |
||||||
|
150,736 |
||||||
|
194,840 |
||||||
|
504,630 |
||||||
|
586,275 |
||||||
|
140,387 |
||||||
|
716,284 |
||||||
|
619,127 |
||||||
|
1066,178 |
||||||
|
827,299 |
||||||
|
858,634 |
||||||
|
652,336 |
||||||
|
738,612 |
||||||
|
1016,233 |
||||||
|
431,595 |
||||||
|
760,656 |
||||||
|
909,803 |
||||||
|
960,679 |
||||||
|
171,376 |
||||||
|
45,194 |
||||||
|
687,852 |
||||||
|
923,385 |
||||||
|
1116,840 |
||||||
|
112,696 |
||||||
|
1193,575 |
||||||
|
119,786 |
||||||
|
290,159 |
||||||
|
401,803 |
||||||
|
515,662 |
||||||
|
708,110 |
||||||
|
1054,354 |
||||||
|
1019,351 |
||||||
|
1103,408 |
||||||
|
1250,610 |
||||||
|
979,430 |
||||||
|
213,434 |
||||||
|
574,395 |
||||||
|
1153,859 |
||||||
|
654,635 |
||||||
|
671,526 |
||||||
|
912,873 |
||||||
|
664,236 |
||||||
|
1126,697 |
||||||
|
157,819 |
||||||
|
1129,271 |
||||||
|
460,46 |
||||||
|
494,196 |
||||||
|
604,849 |
||||||
|
1131,206 |
||||||
|
975,80 |
||||||
|
1111,655 |
||||||
|
798,473 |
||||||
|
716,262 |
||||||
|
493,644 |
||||||
|
378,607 |
||||||
|
1087,285 |
||||||
|
490,526 |
||||||
|
914,400 |
||||||
|
485,444 |
||||||
|
938,584 |
||||||
|
735,812 |
||||||
|
639,549 |
||||||
|
408,724 |
||||||
|
244,178 |
||||||
|
934,166 |
||||||
|
739,241 |
||||||
|
325,700 |
||||||
|
139,120 |
||||||
|
1067,124 |
||||||
|
950,681 |
||||||
|
356,863 |
||||||
|
639,345 |
||||||
|
618,735 |
||||||
|
1242,270 |
||||||
|
848,302 |
||||||
|
222,107 |
||||||
|
663,142 |
||||||
|
1302,658 |
||||||
|
441,98 |
||||||
|
850,495 |
||||||
|
759,733 |
||||||
|
386,516 |
||||||
|
488,250 |
||||||
|
892,691 |
||||||
|
869,684 |
||||||
|
1136,886 |
||||||
|
1067,572 |
||||||
|
671,318 |
||||||
|
890,560 |
||||||
|
82,53 |
||||||
|
692,735 |
||||||
|
1061,234 |
||||||
|
1097,460 |
||||||
|
922,275 |
||||||
|
1006,679 |
||||||
|
631,341 |
||||||
|
100,424 |
||||||
|
1032,166 |
||||||
|
959,553 |
||||||
|
1046,22 |
||||||
|
422,64 |
||||||
|
537,266 |
||||||
|
340,830 |
||||||
|
945,562 |
||||||
|
190,357 |
||||||
|
1206,516 |
||||||
|
541,546 |
||||||
|
656,78 |
||||||
|
756,190 |
||||||
|
146,411 |
||||||
|
723,15 |
||||||
|
1148,816 |
||||||
|
602,744 |
||||||
|
602,560 |
||||||
|
1171,351 |
||||||
|
262,859 |
||||||
|
761,578 |
||||||
|
410,206 |
||||||
|
923,110 |
||||||
|
223,285 |
||||||
|
554,246 |
||||||
|
420,425 |
||||||
|
251,248 |
||||||
|
1287,229 |
||||||
|
90,651 |
||||||
|
691,311 |
||||||
|
879,161 |
||||||
|
445,418 |
||||||
|
32,9 |
||||||
|
97,681 |
||||||
|
1032,280 |
||||||
|
782,551 |
||||||
|
1228,53 |
||||||
|
479,334 |
||||||
|
869,98 |
||||||
|
1221,264 |
||||||
|
959,889 |
||||||
|
57,120 |
||||||
|
795,120 |
||||||
|
435,452 |
||||||
|
750,830 |
||||||
|
529,674 |
||||||
|
666,721 |
||||||
|
996,152 |
||||||
|
596,740 |
||||||
|
1072,203 |
||||||
|
1141,252 |
||||||
|
937,200 |
||||||
|
825,444 |
||||||
|
192,262 |
||||||
|
117,266 |
||||||
|
969,10 |
||||||
|
45,700 |
||||||
|
202,634 |
||||||
|
909,539 |
||||||
|
930,291 |
||||||
|
852,289 |
||||||
|
1113,459 |
||||||
|
447,668 |
||||||
|
1174,145 |
||||||
|
766,806 |
||||||
|
234,493 |
||||||
|
497,168 |
||||||
|
725,479 |
||||||
|
243,572 |
||||||
|
36,308 |
||||||
|
231,35 |
||||||
|
653,700 |
||||||
|
1155,742 |
||||||
|
967,352 |
||||||
|
90,567 |
||||||
|
1210,256 |
||||||
|
26,133 |
||||||
|
164,430 |
||||||
|
852,182 |
||||||
|
550,835 |
||||||
|
575,278 |
||||||
|
1096,518 |
||||||
|
408,618 |
||||||
|
1126,645 |
||||||
|
291,203 |
||||||
|
843,547 |
||||||
|
393,589 |
||||||
|
251,646 |
||||||
|
403,597 |
||||||
|
956,873 |
||||||
|
504,158 |
||||||
|
438,730 |
||||||
|
1042,611 |
||||||
|
36,383 |
||||||
|
622,233 |
||||||
|
954,255 |
||||||
|
686,336 |
||||||
|
1072,89 |
||||||
|
882,312 |
||||||
|
1012,184 |
||||||
|
1056,231 |
||||||
|
1240,89 |
||||||
|
639,368 |
||||||
|
1185,226 |
||||||
|
37,530 |
||||||
|
1240,133 |
||||||
|
1033,619 |
||||||
|
1116,847 |
||||||
|
624,336 |
||||||
|
1227,770 |
||||||
|
298,38 |
||||||
|
418,243 |
||||||
|
60,877 |
||||||
|
817,112 |
||||||
|
554,638 |
||||||
|
1148,766 |
||||||
|
495,94 |
||||||
|
363,239 |
||||||
|
171,518 |
||||||
|
167,884 |
||||||
|
192,632 |
||||||
|
1227,124 |
||||||
|
119,332 |
||||||
|
1279,42 |
||||||
|
1275,655 |
||||||
|
387,385 |
||||||
|
843,211 |
||||||
|
145,271 |
||||||
|
416,203 |
||||||
|
1042,560 |
||||||
|
560,275 |
||||||
|
378,597 |
||||||
|
199,239 |
||||||
|
1242,723 |
||||||
|
1200,54 |
||||||
|
684,255 |
||||||
|
649,270 |
||||||
|
709,425 |
||||||
|
234,137 |
||||||
|
52,560 |
||||||
|
36,159 |
||||||
|
1298,264 |
||||||
|
1201,420 |
||||||
|
1143,570 |
||||||
|
769,796 |
||||||
|
773,19 |
||||||
|
1181,128 |
||||||
|
474,712 |
||||||
|
535,184 |
||||||
|
713,120 |
||||||
|
1273,635 |
||||||
|
267,385 |
||||||
|
768,849 |
||||||
|
848,592 |
||||||
|
94,718 |
||||||
|
1101,767 |
||||||
|
1054,21 |
||||||
|
156,819 |
||||||
|
827,518 |
||||||
|
1258,560 |
||||||
|
243,770 |
||||||
|
1043,497 |
||||||
|
1278,9 |
||||||
|
234,849 |
||||||
|
962,262 |
||||||
|
602,150 |
||||||
|
720,35 |
||||||
|
1054,522 |
||||||
|
758,38 |
||||||
|
1287,341 |
||||||
|
1207,733 |
||||||
|
1114,849 |
||||||
|
254,572 |
||||||
|
1114,493 |
||||||
|
836,712 |
||||||
|
951,751 |
||||||
|
410,64 |
||||||
|
1282,255 |
||||||
|
818,414 |
||||||
|
776,759 |
||||||
|
813,392 |
||||||
|
1198,824 |
||||||
|
150,158 |
||||||
|
850,757 |
||||||
|
489,334 |
||||||
|
1272,415 |
||||||
|
23,344 |
||||||
|
1043,833 |
||||||
|
110,840 |
||||||
|
104,656 |
||||||
|
750,512 |
||||||
|
766,730 |
||||||
|
1116,137 |
||||||
|
594,610 |
||||||
|
358,534 |
||||||
|
474,182 |
||||||
|
408,276 |
||||||
|
282,870 |
||||||
|
172,749 |
||||||
|
619,799 |
||||||
|
418,19 |
||||||
|
653,418 |
||||||
|
795,792 |
||||||
|
1034,119 |
||||||
|
1191,786 |
||||||
|
1255,228 |
||||||
|
562,220 |
||||||
|
410,688 |
||||||
|
139,214 |
||||||
|
806,630 |
||||||
|
683,446 |
||||||
|
57,827 |
||||||
|
508,147 |
||||||
|
1193,266 |
||||||
|
766,520 |
||||||
|
147,78 |
||||||
|
186,835 |
||||||
|
441,826 |
||||||
|
756,638 |
||||||
|
80,499 |
||||||
|
1141,483 |
||||||
|
1089,443 |
||||||
|
932,597 |
||||||
|
1044,569 |
||||||
|
1185,28 |
||||||
|
937,108 |
||||||
|
915,687 |
||||||
|
165,334 |
||||||
|
954,863 |
||||||
|
468,835 |
||||||
|
246,499 |
||||||
|
671,121 |
||||||
|
89,264 |
||||||
|
745,30 |
||||||
|
542,824 |
||||||
|
311,352 |
||||||
|
395,207 |
||||||
|
878,159 |
||||||
|
981,252 |
||||||
|
104,387 |
||||||
|
623,303 |
||||||
|
333,859 |
||||||
|
972,469 |
||||||
|
1225,155 |
||||||
|
364,287 |
||||||
|
1216,830 |
||||||
|
668,264 |
||||||
|
560,718 |
||||||
|
902,276 |
||||||
|
766,390 |
||||||
|
528,551 |
||||||
|
445,875 |
||||||
|
606,54 |
||||||
|
1242,171 |
||||||
|
1305,668 |
||||||
|
268,507 |
||||||
|
1118,144 |
||||||
|
1076,493 |
||||||
|
112,198 |
||||||
|
773,394 |
||||||
|
403,259 |
||||||
|
1203,228 |
||||||
|
1148,78 |
||||||
|
276,735 |
||||||
|
22,378 |
||||||
|
1029,694 |
||||||
|
1124,835 |
||||||
|
162,206 |
||||||
|
169,483 |
||||||
|
467,120 |
||||||
|
900,830 |
||||||
|
668,64 |
||||||
|
49,367 |
||||||
|
1037,308 |
||||||
|
760,59 |
||||||
|
736,742 |
||||||
|
820,480 |
||||||
|
411,770 |
||||||
|
663,752 |
||||||
|
500,425 |
||||||
|
500,469 |
||||||
|
104,159 |
||||||
|
756,582 |
||||||
|
103,147 |
||||||
|
68,270 |
||||||
|
873,698 |
||||||
|
1146,318 |
||||||
|
1310,240 |
||||||
|
105,764 |
||||||
|
642,64 |
||||||
|
102,38 |
||||||
|
1148,592 |
||||||
|
890,21 |
||||||
|
497,194 |
||||||
|
145,308 |
||||||
|
266,171 |
||||||
|
873,411 |
||||||
|
258,714 |
||||||
|
870,719 |
||||||
|
500,882 |
||||||
|
1253,120 |
||||||
|
261,81 |
||||||
|
744,651 |
||||||
|
1258,520 |
||||||
|
542,70 |
||||||
|
1298,885 |
||||||
|
1115,518 |
||||||
|
813,75 |
||||||
|
852,163 |
||||||
|
587,15 |
||||||
|
460,399 |
||||||
|
552,653 |
||||||
|
89,712 |
||||||
|
806,158 |
||||||
|
88,651 |
||||||
|
381,420 |
||||||
|
726,47 |
||||||
|
547,676 |
||||||
|
925,67 |
||||||
|
1205,92 |
||||||
|
716,610 |
||||||
|
281,786 |
||||||
|
537,319 |
||||||
|
1268,247 |
||||||
|
1208,856 |
||||||
|
497,726 |
||||||
|
460,847 |
||||||
|
181,271 |
||||||
|
981,194 |
||||||
|
1171,571 |
||||||
|
592,200 |
||||||
|
154,133 |
||||||
|
594,505 |
||||||
|
687,303 |
||||||
|
1200,358 |
||||||
|
1255,666 |
||||||
|
159,772 |
||||||
|
535,108 |
||||||
|
453,476 |
||||||
|
1170,112 |
||||||
|
542,268 |
||||||
|
281,694 |
||||||
|
705,815 |
||||||
|
117,866 |
||||||
|
746,203 |
||||||
|
1253,67 |
||||||
|
1191,75 |
||||||
|
119,75 |
||||||
|
328,411 |
||||||
|
850,46 |
||||||
|
1088,607 |
||||||
|
44,646 |
||||||
|
682,761 |
||||||
|
1231,726 |
||||||
|
1200,838 |
||||||
|
445,114 |
||||||
|
176,158 |
||||||
|
335,682 |
||||||
|
129,290 |
||||||
|
1265,194 |
||||||
|
639,318 |
||||||
|
1059,597 |
||||||
|
1116,54 |
||||||
|
45,259 |
||||||
|
701,252 |
||||||
|
644,873 |
||||||
|
1037,831 |
||||||
|
832,736 |
||||||
|
738,393 |
||||||
|
131,70 |
||||||
|
1205,316 |
||||||
|
239,259 |
||||||
|
828,761 |
||||||
|
529,259 |
||||||
|
1086,241 |
||||||
|
1179,824 |
||||||
|
1011,245 |
||||||
|
1295,325 |
||||||
|
791,425 |
||||||
|
282,24 |
||||||
|
792,313 |
||||||
|
879,285 |
||||||
|
441,684 |
||||||
|
1150,219 |
||||||
|
140,283 |
||||||
|
49,115 |
||||||
|
256,873 |
||||||
|
504,264 |
||||||
|
668,824 |
||||||
|
552,508 |
||||||
|
858,260 |
||||||
|
1042,287 |
||||||
|
1146,32 |
||||||
|
594,465 |
||||||
|
431,285 |
||||||
|
1266,646 |
||||||
|
278,166 |
||||||
|
1280,336 |
||||||
|
447,226 |
||||||
|
704,840 |
||||||
|
438,806 |
||||||
|
1298,233 |
||||||
|
687,591 |
||||||
|
1114,737 |
||||||
|
294,885 |
||||||
|
1179,70 |
||||||
|
776,135 |
||||||
|
459,518 |
||||||
|
1144,219 |
||||||
|
666,873 |
||||||
|
1014,617 |
||||||
|
60,389 |
||||||
|
602,179 |
||||||
|
1160,437 |
||||||
|
1153,115 |
||||||
|
915,207 |
||||||
|
100,190 |
||||||
|
1148,480 |
||||||
|
920,263 |
||||||
|
199,655 |
||||||
|
10,245 |
||||||
|
485,848 |
||||||
|
1071,635 |
||||||
|
290,271 |
||||||
|
1054,746 |
||||||
|
387,397 |
||||||
|
177,682 |
||||||
|
586,270 |
||||||
|
658,336 |
||||||
|
1163,654 |
||||||
|
282,758 |
||||||
|
1094,515 |
||||||
|
94,830 |
||||||
|
623,852 |
||||||
|
38,522 |
||||||
|
549,92 |
||||||
|
564,327 |
||||||
|
744,243 |
||||||
|
1200,851 |
||||||
|
495,800 |
||||||
|
1240,668 |
||||||
|
775,786 |
||||||
|
1298,70 |
||||||
|
1200,374 |
||||||
|
835,121 |
||||||
|
186,465 |
||||||
|
415,892 |
||||||
|
851,518 |
||||||
|
564,203 |
||||||
|
1056,663 |
||||||
|
709,873 |
||||||
|
837,623 |
||||||
|
246,395 |
||||||
|
756,424 |
||||||
|
398,204 |
||||||
|
587,187 |
||||||
|
1266,310 |
||||||
|
628,133 |
||||||
|
924,334 |
||||||
|
455,655 |
||||||
|
398,873 |
||||||
|
320,222 |
||||||
|
1170,334 |
||||||
|
83,124 |
||||||
|
739,124 |
||||||
|
959,540 |
||||||
|
1220,679 |
||||||
|
390,631 |
||||||
|
544,88 |
||||||
|
290,607 |
||||||
|
102,632 |
||||||
|
820,576 |
||||||
|
278,280 |
||||||
|
1310,187 |
||||||
|
80,395 |
||||||
|
105,443 |
||||||
|
70,668 |
||||||
|
1044,395 |
||||||
|
251,382 |
||||||
|
68,848 |
||||||
|
267,61 |
||||||
|
1111,332 |
||||||
|
127,556 |
||||||
|
1258,179 |
||||||
|
1044,505 |
||||||
|
738,282 |
||||||
|
82,612 |
||||||
|
934,614 |
||||||
|
1054,204 |
||||||
|
72,348 |
||||||
|
254,663 |
||||||
|
1043,397 |
||||||
|
85,291 |
||||||
|
877,155 |
||||||
|
417,91 |
||||||
|
460,137 |
||||||
|
565,579 |
||||||
|
564,567 |
||||||
|
1041,550 |
||||||
|
565,30 |
||||||
|
1000,859 |
||||||
|
1056,791 |
||||||
|
688,233 |
||||||
|
595,336 |
||||||
|
1012,479 |
||||||
|
140,334 |
||||||
|
256,148 |
||||||
|
1220,651 |
||||||
|
542,178 |
||||||
|
209,767 |
||||||
|
534,759 |
||||||
|
1287,547 |
||||||
|
1213,681 |
||||||
|
1076,849 |
||||||
|
508,747 |
||||||
|
273,831 |
||||||
|
276,149 |
||||||
|
256,298 |
||||||
|
194,54 |
||||||
|
872,88 |
||||||
|
441,656 |
||||||
|
214,175 |
||||||
|
266,569 |
||||||
|
865,875 |
||||||
|
12,630 |
||||||
|
1000,523 |
||||||
|
1242,494 |
||||||
|
873,196 |
||||||
|
157,35 |
||||||
|
420,469 |
||||||
|
445,780 |
||||||
|
551,733 |
||||||
|
760,835 |
||||||
|
1118,750 |
||||||
|
551,161 |
||||||
|
709,831 |
||||||
|
448,311 |
||||||
|
1275,319 |
||||||
|
1057,192 |
||||||
|
136,749 |
||||||
|
628,761 |
||||||
|
365,332 |
||||||
|
1153,75 |
||||||
|
846,117 |
||||||
|
546,133 |
||||||
|
1288,378 |
||||||
|
900,512 |
||||||
|
223,609 |
||||||
|
350,159 |
||||||
|
1287,344 |
||||||
|
1103,668 |
||||||
|
125,418 |
||||||
|
440,719 |
||||||
|
832,826 |
||||||
|
36,586 |
||||||
|
776,57 |
||||||
|
1171,214 |
||||||
|
480,456 |
||||||
|
668,120 |
||||||
|
646,12 |
||||||
|
947,95 |
||||||
|
378,159 |
||||||
|
31,852 |
||||||
|
1170,387 |
||||||
|
535,786 |
||||||
|
572,612 |
||||||
|
619,583 |
||||||
|
1086,101 |
||||||
|
432,159 |
||||||
|
560,619 |
||||||
|
2,320 |
||||||
|
1143,10 |
||||||
|
53,847 |
||||||
|
256,220 |
||||||
|
894,805 |
||||||
|
152,186 |
||||||
|
136,817 |
||||||
|
32,233 |
||||||
|
1101,786 |
||||||
|
579,288 |
||||||
|
117,351 |
||||||
|
1043,845 |
||||||
|
731,707 |
||||||
|
666,18 |
||||||
|
1208,408 |
||||||
|
32,885 |
||||||
|
268,283 |
||||||
|
929,698 |
||||||
|
326,570 |
||||||
|
590,35 |
||||||
|
104,607 |
||||||
|
654,436 |
||||||
|
139,571 |
||||||
|
619,655 |
||||||
|
403,417 |
||||||
|
1076,401 |
||||||
|
1220,243 |
||||||
|
990,672 |
||||||
|
1308,574 |
||||||
|
1109,707 |
||||||
|
1032,614 |
||||||
|
499,152 |
||||||
|
|
||||||
|
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,95 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
#include <stdbool.h> |
||||||
|
#include <string.h> |
||||||
|
#include <stdlib.h> |
||||||
|
|
||||||
|
#define ANSI_COLOR_RED "\x1b[31m" |
||||||
|
#define ANSI_COLOR_YELLOW "\x1b[33m" |
||||||
|
#define ANSI_COLOR_RESET "\x1b[0m" |
||||||
|
|
||||||
|
#define MAX(a, b) ((a) < (b) ? (b) : (a)) |
||||||
|
#define MIN(a, b) ((a) < (b) ? (a) : (b)) |
||||||
|
|
||||||
|
void printPaper( unsigned int width, unsigned int height, bool paper[width][height] ){ |
||||||
|
for ( unsigned int y = 0; y < height; y++ ){ |
||||||
|
printf("Line %i: ", y); |
||||||
|
for ( unsigned int x = 0; x < width; x++ ){ |
||||||
|
if ( paper[x][y] == true ) printf("#"); |
||||||
|
else printf("."); |
||||||
|
} |
||||||
|
printf("\n"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void foldPaperX( unsigned int width, unsigned int height, unsigned int col, bool paper[width][height], bool newPaper[col][height]){ |
||||||
|
for ( unsigned int x = 1; x < width - col; x++ ) |
||||||
|
for ( unsigned int y=0; y < height; y++ ) |
||||||
|
newPaper[col - x][y] = paper[col - x][y] || paper[col + x][y]; |
||||||
|
} |
||||||
|
|
||||||
|
void foldPaperY( unsigned int width, unsigned int height, unsigned int row, bool paper[width][height], bool newPaper[width][row]){ |
||||||
|
for ( unsigned int y=1; y < height - row; y++ ) |
||||||
|
for ( unsigned int x = 0; x < width; x++ ) |
||||||
|
newPaper[x][row - y] = ( paper[x][row - y] || paper[x][row + y] ); |
||||||
|
} |
||||||
|
|
||||||
|
unsigned int countDots( unsigned int width, unsigned int height, bool paper[width][height] ){ |
||||||
|
unsigned int count=0; |
||||||
|
for ( unsigned int y = 0; y < height; y++ ) |
||||||
|
for ( unsigned int x = 0; x < width; x++ ) |
||||||
|
if ( paper[x][y] == true ) count++; |
||||||
|
return count; |
||||||
|
} |
||||||
|
|
||||||
|
int main( int argc, char *argv[] ){ |
||||||
|
if( argc == 2 ) { |
||||||
|
|
||||||
|
|
||||||
|
FILE *fp=fopen(argv[1], "r"); |
||||||
|
|
||||||
|
unsigned int x=0,y=0,maxx=0,maxy=0; |
||||||
|
while ( fscanf( fp, "%i,%i\n",&x,&y )){ |
||||||
|
maxx = MAX(maxx,x); |
||||||
|
maxy = MAX(maxy,y); |
||||||
|
} |
||||||
|
|
||||||
|
bool paper[maxx+1][maxy+1]; |
||||||
|
memset(paper,0,sizeof(bool) * (maxx+1) * (maxy+1) ); |
||||||
|
|
||||||
|
rewind(fp); |
||||||
|
while ( fscanf( fp, "%i,%i\n",&x,&y )){ |
||||||
|
paper[x][y] = true; |
||||||
|
} |
||||||
|
|
||||||
|
printPaper( maxx+1, maxy+1, paper ); |
||||||
|
printf("\n"); |
||||||
|
|
||||||
|
char direction = '\0'; |
||||||
|
unsigned int position = 0, dots = 0; |
||||||
|
fscanf(fp, "fold along %c=%i\n", &direction, &position); |
||||||
|
if ( direction == 'x' ){ |
||||||
|
bool newPaper[position][maxy+1]; |
||||||
|
foldPaperX(maxx+1,maxy+1,position, paper, newPaper); |
||||||
|
printPaper( position, maxy+1, newPaper ); |
||||||
|
dots=countDots( position, maxy+1, newPaper ); |
||||||
|
} else { |
||||||
|
bool newPaper[maxx+1][position]; |
||||||
|
foldPaperY(maxx+1,maxy+1,position, paper, newPaper); |
||||||
|
printPaper( maxx+1, position, newPaper ); |
||||||
|
dots=countDots( maxx+1, position, newPaper ); |
||||||
|
} |
||||||
|
|
||||||
|
printf("\nThere are %i dots\n", dots); |
||||||
|
|
||||||
|
|
||||||
|
fclose(fp); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return 0; |
||||||
|
} else { |
||||||
|
printf("You need to provide a file\n"); |
||||||
|
return 1; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,102 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
#include <stdbool.h> |
||||||
|
#include <string.h> |
||||||
|
#include <stdlib.h> |
||||||
|
|
||||||
|
#define ANSI_COLOR_RED "\x1b[31m" |
||||||
|
#define ANSI_COLOR_YELLOW "\x1b[33m" |
||||||
|
#define ANSI_COLOR_RESET "\x1b[0m" |
||||||
|
|
||||||
|
#define MAX(a, b) ((a) < (b) ? (b) : (a)) |
||||||
|
#define MIN(a, b) ((a) < (b) ? (a) : (b)) |
||||||
|
|
||||||
|
void printPaper( unsigned int width, unsigned int height, bool **paper ){ |
||||||
|
for ( unsigned int y = 0; y < height; y++ ){ |
||||||
|
printf("Line %i: ", y); |
||||||
|
for ( unsigned int x = 0; x < width; x++ ){ |
||||||
|
if ( paper[x][y] == true ) printf("#"); |
||||||
|
else printf("."); |
||||||
|
} |
||||||
|
printf("\n"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
bool** foldPaperX( unsigned int width, unsigned int height, unsigned int col, bool **paper){ |
||||||
|
bool **newPaper=(bool**)malloc( col * sizeof(bool *)); |
||||||
|
for(unsigned int x=0; x < col;x++) { |
||||||
|
newPaper[x]=(bool*)malloc( (height) *sizeof(bool)); |
||||||
|
memset(newPaper[x], 0, sizeof(bool) * ( height )); |
||||||
|
} |
||||||
|
for ( unsigned int x = 1; x < width - col; x++ ) |
||||||
|
for ( unsigned int y=0; y < height; y++ ) |
||||||
|
newPaper[col - x][y] = paper[col - x][y] || paper[col + x][y]; |
||||||
|
return newPaper; |
||||||
|
} |
||||||
|
|
||||||
|
bool** foldPaperY( unsigned int width, unsigned int height, unsigned int row, bool **paper){ |
||||||
|
bool **newPaper=(bool**)malloc( (width) * sizeof(bool *)); |
||||||
|
for(unsigned int x=0; x < width; x++) { |
||||||
|
newPaper[x]=(bool*)malloc( (row) *sizeof(bool)); |
||||||
|
memset(newPaper[x], 0, sizeof(bool) * ( row )); |
||||||
|
} |
||||||
|
for ( unsigned int y=1; y < height - row; y++ ) |
||||||
|
for ( unsigned int x = 0; x < width; x++ ) |
||||||
|
newPaper[x][row - y] = ( paper[x][row - y] || paper[x][row + y] ); |
||||||
|
return newPaper; |
||||||
|
} |
||||||
|
|
||||||
|
int main( int argc, char *argv[] ){ |
||||||
|
if( argc == 2 ) { |
||||||
|
|
||||||
|
FILE *fp=fopen(argv[1], "r"); |
||||||
|
|
||||||
|
unsigned int x=0,y=0,maxx=0,maxy=0; |
||||||
|
while ( fscanf( fp, "%i,%i\n",&x,&y )){ |
||||||
|
maxx = MAX(maxx,x); |
||||||
|
maxy = MAX(maxy,y); |
||||||
|
} |
||||||
|
|
||||||
|
printf("Max x: %i Max y: %i\n", maxx, maxy); |
||||||
|
|
||||||
|
bool **paper=(bool**)malloc( (maxx+1) * sizeof(bool *)); |
||||||
|
for(unsigned int i=0; i<=maxx;i++) |
||||||
|
{ |
||||||
|
paper[i]=(bool*)malloc( (maxy+1) *sizeof(bool)); |
||||||
|
memset(paper[i], 0, sizeof(bool) * ( maxy+1 )); |
||||||
|
} |
||||||
|
|
||||||
|
rewind(fp); |
||||||
|
while ( fscanf( fp, "%i,%i\n",&x,&y )){ |
||||||
|
paper[x][y] = true; |
||||||
|
} |
||||||
|
|
||||||
|
printPaper( maxx+1, maxy+1, paper ); |
||||||
|
printf("\n"); |
||||||
|
|
||||||
|
|
||||||
|
char direction = '\0'; |
||||||
|
unsigned int position = 0; |
||||||
|
while (!feof(fp) && fscanf(fp, "fold along %c=%i\n", &direction, &position)){ |
||||||
|
printf("Trying to fold in %c direction at position %i\n", direction, position); |
||||||
|
if ( direction == 'x' ){ |
||||||
|
paper = foldPaperX(maxx+1, maxy+1, position, paper); |
||||||
|
maxx = position - 1; |
||||||
|
printPaper( maxx + 1, maxy + 1, paper ); |
||||||
|
} else { |
||||||
|
paper = foldPaperY(maxx+1, maxy+1, position, paper); |
||||||
|
maxy = position - 1; |
||||||
|
printPaper( maxx+1, maxy+1, paper ); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
fclose(fp); |
||||||
|
|
||||||
|
return 0; |
||||||
|
} else { |
||||||
|
printf("You need to provide a file\n"); |
||||||
|
return 1; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue