diff options
Diffstat (limited to 'day05')
-rwxr-xr-x | day05/day05 | bin | 104096 -> 0 bytes | |||
-rw-r--r-- | day05/day05.cpp | 100 | ||||
-rw-r--r-- | day05/day05_input.txt | 500 | ||||
-rw-r--r-- | day05/day05_input_ez.txt | 10 | ||||
-rw-r--r-- | day05/makefile | 2 |
5 files changed, 0 insertions, 612 deletions
diff --git a/day05/day05 b/day05/day05 Binary files differdeleted file mode 100755 index 78ac4fc..0000000 --- a/day05/day05 +++ /dev/null diff --git a/day05/day05.cpp b/day05/day05.cpp deleted file mode 100644 index 895dba0..0000000 --- a/day05/day05.cpp +++ /dev/null @@ -1,100 +0,0 @@ -#include <iostream> -#include <fstream> -#include <string> -#include <vector> -#include <map> - -#include "../utils.h" - -class Line { - public: - Line (int a, int b, int c, int d) : a(a), b(b), c(c), d(d) { } - Line (std::string line) { - std::vector<std::string> parts, start, end; - split(parts, line, "->"); - split(start, parts[0], ","); - split(end, parts[1], ","); - a = std::stoi(start[0]); - b = std::stoi(start[1]); - c = std::stoi(end[0]); - d = std::stoi(end[1]); - if (c-a == 0) xdir = 0; - else { xdir = (c-a) > 0 ? 1 : -1; } - if (d-b == 0) ydir = 0; - else { ydir = (d-b) > 0 ? 1 : -1; } - } - int a, b, c, d, xdir, ydir; - - int length () { return abs(a-c) + abs(b-d); } - - bool operator==(Line& oth) { - return a == oth.a && b == oth.b && c == oth.c && d == oth.d; - } -}; - -int main (int argc, char *argv[]) { - std::string raw; - std::getline(std::ifstream(argv[1]), raw, '\0'); - - std::vector<Line> lines; - std::vector<std::string> strlines; - split(strlines, raw, "\n"); - for (auto strline : strlines) { - if (strline.size() == 0) continue; - Line line { strline }; - if (line.xdir != 0 && line.ydir != 0 - && std::stoi(argv[2]) == 0) continue; - lines.push_back(line); - } - - int intersections = 0; - std::map<std::pair<int, int>, int> overlaps; - for (auto& line : lines) { - int dist = 0; - bool straight = true; - if (line.xdir != 0 && line.ydir != 0) straight = false; - for (int i=0; dist<line.length()+1; i++) { - std::pair pair { line.a + line.xdir*i, line.b + line.ydir*i }; - if (overlaps.count(pair) == 0) overlaps[pair] = 1; - else { - if (overlaps[pair] == 1) intersections += 1; - overlaps[pair] += 1; - } - if (straight) dist ++; - else dist += 2; - } - } - - - int minx = 200; - int maxx = -200; - int miny = 200; - int maxy = -200; - for (auto& line : lines) { - minx = std::min(minx, std::min(line.a, line.c)); - maxx = std::max(maxx, std::max(line.a, line.c)); - miny = std::min(miny, std::min(line.b, line.d)); - maxy = std::max(maxy, std::max(line.b, line.d)); - } - - std::cout << "bounds: " - << minx << " " << maxx << " " - << miny << " " << maxx << std::endl; - - /* visualizer - for (int y=miny; y<maxy+1; y++) { - for (int x=minx; x<maxx+1; x++) { - int amt = overlaps[std::make_pair(x, y)]; - if (amt > 9) amt = 9; - if (amt > 0) std::cout << amt; - else std::cout << "."; - - } - std::cout << std::endl; - } - */ - - std::cout << "intersections: " << intersections << std::endl; - - return 0; -} diff --git a/day05/day05_input.txt b/day05/day05_input.txt deleted file mode 100644 index 58fb409..0000000 --- a/day05/day05_input.txt +++ /dev/null @@ -1,500 +0,0 @@ -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 diff --git a/day05/day05_input_ez.txt b/day05/day05_input_ez.txt deleted file mode 100644 index b258f68..0000000 --- a/day05/day05_input_ez.txt +++ /dev/null @@ -1,10 +0,0 @@ -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 diff --git a/day05/makefile b/day05/makefile deleted file mode 100644 index a197e7d..0000000 --- a/day05/makefile +++ /dev/null @@ -1,2 +0,0 @@ -all day05.cpp: - g++ -std=c++20 -o day05 day05.cpp |