this repo has no description
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

ft: add day 6 (day 5 still not done)

+650 -1
+500
2021/day5.txt
··· 1 + 445,187 -> 912,654 2 + 820,46 -> 25,841 3 + 216,621 -> 458,379 4 + 955,898 -> 67,10 5 + 549,572 -> 549,520 6 + 796,107 -> 109,794 7 + 729,698 -> 338,698 8 + 11,987 -> 968,30 9 + 381,840 -> 381,409 10 + 80,467 -> 80,48 11 + 132,197 -> 132,92 12 + 343,96 -> 343,710 13 + 42,854 -> 346,550 14 + 503,56 -> 804,56 15 + 599,206 -> 60,206 16 + 702,920 -> 474,920 17 + 496,790 -> 223,517 18 + 969,579 -> 583,579 19 + 897,66 -> 604,66 20 + 484,754 -> 640,910 21 + 330,49 -> 949,49 22 + 908,132 -> 714,132 23 + 517,153 -> 97,573 24 + 317,865 -> 678,504 25 + 800,61 -> 800,51 26 + 179,242 -> 179,202 27 + 529,757 -> 529,838 28 + 288,953 -> 393,953 29 + 372,15 -> 925,568 30 + 100,85 -> 654,639 31 + 663,562 -> 737,636 32 + 576,981 -> 245,981 33 + 347,240 -> 347,928 34 + 91,119 -> 413,441 35 + 637,397 -> 330,90 36 + 534,257 -> 950,257 37 + 155,636 -> 694,97 38 + 539,274 -> 539,327 39 + 329,795 -> 824,300 40 + 103,51 -> 961,909 41 + 87,868 -> 168,787 42 + 21,250 -> 157,386 43 + 591,316 -> 670,395 44 + 722,670 -> 630,670 45 + 28,167 -> 28,489 46 + 480,210 -> 68,622 47 + 573,700 -> 354,919 48 + 186,59 -> 700,59 49 + 121,186 -> 670,186 50 + 797,985 -> 671,985 51 + 836,804 -> 335,804 52 + 701,835 -> 104,238 53 + 456,718 -> 456,964 54 + 694,891 -> 694,839 55 + 205,637 -> 205,318 56 + 40,958 -> 773,225 57 + 151,391 -> 151,779 58 + 693,894 -> 417,894 59 + 418,700 -> 656,700 60 + 196,985 -> 896,985 61 + 357,509 -> 608,258 62 + 552,558 -> 552,482 63 + 184,412 -> 170,412 64 + 122,746 -> 643,225 65 + 268,930 -> 247,930 66 + 979,820 -> 407,248 67 + 755,893 -> 845,893 68 + 706,843 -> 706,225 69 + 162,726 -> 895,726 70 + 140,888 -> 289,888 71 + 614,432 -> 903,721 72 + 272,725 -> 272,598 73 + 529,672 -> 967,234 74 + 903,989 -> 785,871 75 + 422,355 -> 422,360 76 + 313,722 -> 713,322 77 + 460,121 -> 460,151 78 + 55,944 -> 946,944 79 + 795,744 -> 221,744 80 + 816,953 -> 471,953 81 + 865,186 -> 557,186 82 + 94,976 -> 747,323 83 + 302,961 -> 811,452 84 + 361,966 -> 921,406 85 + 197,988 -> 571,988 86 + 310,905 -> 722,493 87 + 699,91 -> 272,518 88 + 295,306 -> 84,95 89 + 220,116 -> 395,291 90 + 183,364 -> 523,364 91 + 16,986 -> 16,319 92 + 54,980 -> 635,399 93 + 340,110 -> 651,421 94 + 788,76 -> 788,635 95 + 933,375 -> 458,375 96 + 12,434 -> 494,916 97 + 253,892 -> 962,183 98 + 240,508 -> 240,234 99 + 763,934 -> 506,677 100 + 308,135 -> 239,66 101 + 117,649 -> 751,15 102 + 95,535 -> 428,868 103 + 16,937 -> 902,51 104 + 547,404 -> 547,830 105 + 128,581 -> 970,581 106 + 959,810 -> 564,415 107 + 971,738 -> 378,145 108 + 919,210 -> 295,210 109 + 737,43 -> 231,43 110 + 82,577 -> 455,204 111 + 821,337 -> 570,337 112 + 688,753 -> 538,753 113 + 891,844 -> 124,844 114 + 74,957 -> 946,85 115 + 43,942 -> 43,210 116 + 100,391 -> 100,142 117 + 975,527 -> 175,527 118 + 510,844 -> 395,959 119 + 558,231 -> 558,858 120 + 839,915 -> 262,338 121 + 784,290 -> 875,199 122 + 644,824 -> 812,824 123 + 899,657 -> 500,657 124 + 263,668 -> 263,964 125 + 157,374 -> 820,374 126 + 530,301 -> 530,67 127 + 15,688 -> 15,572 128 + 216,844 -> 479,581 129 + 973,59 -> 68,964 130 + 104,92 -> 104,547 131 + 421,472 -> 421,176 132 + 887,805 -> 231,149 133 + 140,980 -> 852,980 134 + 248,602 -> 346,602 135 + 334,961 -> 334,471 136 + 892,892 -> 958,958 137 + 270,83 -> 270,135 138 + 950,105 -> 404,651 139 + 979,476 -> 930,427 140 + 416,430 -> 879,430 141 + 796,937 -> 796,415 142 + 670,679 -> 72,679 143 + 733,884 -> 733,302 144 + 745,196 -> 306,196 145 + 174,353 -> 667,846 146 + 285,978 -> 254,978 147 + 10,63 -> 936,989 148 + 242,107 -> 242,725 149 + 238,341 -> 238,800 150 + 975,102 -> 174,903 151 + 530,474 -> 530,853 152 + 931,47 -> 467,47 153 + 86,141 -> 821,141 154 + 263,15 -> 654,15 155 + 688,542 -> 378,232 156 + 826,793 -> 989,793 157 + 729,285 -> 729,192 158 + 587,915 -> 587,79 159 + 548,667 -> 877,667 160 + 15,836 -> 783,68 161 + 662,673 -> 71,82 162 + 312,681 -> 910,83 163 + 760,418 -> 491,418 164 + 175,502 -> 443,502 165 + 817,878 -> 29,90 166 + 798,569 -> 811,582 167 + 703,141 -> 743,181 168 + 941,849 -> 941,778 169 + 63,24 -> 500,461 170 + 697,183 -> 119,761 171 + 705,672 -> 152,672 172 + 150,567 -> 656,567 173 + 158,411 -> 965,411 174 + 702,872 -> 276,446 175 + 141,179 -> 741,779 176 + 533,886 -> 817,886 177 + 569,949 -> 285,949 178 + 699,764 -> 699,780 179 + 333,863 -> 805,391 180 + 861,804 -> 524,467 181 + 791,501 -> 718,501 182 + 976,265 -> 976,713 183 + 129,342 -> 339,132 184 + 322,738 -> 212,738 185 + 700,534 -> 622,456 186 + 68,314 -> 14,314 187 + 146,112 -> 215,181 188 + 170,211 -> 482,211 189 + 159,412 -> 159,32 190 + 312,939 -> 312,95 191 + 232,18 -> 912,698 192 + 950,114 -> 950,826 193 + 620,848 -> 620,11 194 + 624,288 -> 544,208 195 + 752,479 -> 752,577 196 + 784,796 -> 784,872 197 + 130,55 -> 974,899 198 + 434,82 -> 434,481 199 + 988,230 -> 892,134 200 + 159,252 -> 159,291 201 + 462,14 -> 462,977 202 + 553,981 -> 553,390 203 + 231,936 -> 51,936 204 + 58,759 -> 60,759 205 + 572,891 -> 584,891 206 + 705,303 -> 124,303 207 + 144,894 -> 970,68 208 + 865,275 -> 865,956 209 + 492,491 -> 470,491 210 + 971,15 -> 977,15 211 + 750,521 -> 33,521 212 + 913,947 -> 387,421 213 + 368,677 -> 570,677 214 + 795,186 -> 882,186 215 + 404,840 -> 678,840 216 + 187,488 -> 403,488 217 + 824,706 -> 642,706 218 + 330,541 -> 330,195 219 + 564,531 -> 774,531 220 + 271,857 -> 20,606 221 + 976,975 -> 976,843 222 + 323,341 -> 21,39 223 + 575,643 -> 267,643 224 + 827,295 -> 827,854 225 + 749,486 -> 749,780 226 + 656,716 -> 656,470 227 + 635,187 -> 417,187 228 + 503,488 -> 503,393 229 + 592,688 -> 592,567 230 + 515,408 -> 128,795 231 + 608,158 -> 780,158 232 + 677,96 -> 11,762 233 + 127,452 -> 339,452 234 + 117,985 -> 291,811 235 + 157,371 -> 157,916 236 + 640,758 -> 983,758 237 + 906,413 -> 906,776 238 + 224,842 -> 627,439 239 + 903,728 -> 903,459 240 + 358,138 -> 822,602 241 + 30,16 -> 929,915 242 + 440,900 -> 294,900 243 + 809,73 -> 987,73 244 + 55,410 -> 304,161 245 + 441,672 -> 315,672 246 + 939,40 -> 234,40 247 + 334,698 -> 309,698 248 + 572,738 -> 572,226 249 + 445,71 -> 445,468 250 + 225,660 -> 427,458 251 + 390,320 -> 449,320 252 + 507,635 -> 507,169 253 + 47,116 -> 738,807 254 + 127,14 -> 689,14 255 + 316,760 -> 316,432 256 + 831,101 -> 250,682 257 + 370,807 -> 370,898 258 + 678,186 -> 491,186 259 + 866,83 -> 539,83 260 + 518,848 -> 518,962 261 + 188,135 -> 81,28 262 + 378,226 -> 597,226 263 + 646,534 -> 141,534 264 + 275,672 -> 275,854 265 + 67,421 -> 676,421 266 + 386,323 -> 988,323 267 + 903,984 -> 10,91 268 + 37,348 -> 529,840 269 + 872,134 -> 358,648 270 + 42,826 -> 42,822 271 + 688,922 -> 21,922 272 + 47,539 -> 942,539 273 + 739,483 -> 375,847 274 + 23,217 -> 800,217 275 + 589,512 -> 589,953 276 + 292,229 -> 107,229 277 + 873,678 -> 873,770 278 + 794,295 -> 739,240 279 + 464,559 -> 936,559 280 + 685,736 -> 368,736 281 + 114,941 -> 114,307 282 + 571,643 -> 74,643 283 + 281,185 -> 273,177 284 + 497,937 -> 497,469 285 + 152,815 -> 702,815 286 + 76,43 -> 980,947 287 + 272,149 -> 101,149 288 + 934,945 -> 107,118 289 + 532,476 -> 759,476 290 + 955,942 -> 397,942 291 + 31,918 -> 931,18 292 + 790,420 -> 389,420 293 + 36,496 -> 215,317 294 + 252,209 -> 139,209 295 + 704,148 -> 719,133 296 + 413,571 -> 165,571 297 + 690,433 -> 864,607 298 + 976,417 -> 517,876 299 + 803,568 -> 443,568 300 + 335,558 -> 335,334 301 + 405,807 -> 691,521 302 + 194,482 -> 486,190 303 + 377,856 -> 377,802 304 + 313,842 -> 313,254 305 + 449,961 -> 198,710 306 + 197,916 -> 197,797 307 + 82,965 -> 959,88 308 + 371,239 -> 829,697 309 + 471,70 -> 596,70 310 + 835,144 -> 835,950 311 + 283,486 -> 506,486 312 + 147,29 -> 147,747 313 + 187,485 -> 187,195 314 + 781,144 -> 480,144 315 + 801,839 -> 925,715 316 + 415,960 -> 415,442 317 + 877,939 -> 29,91 318 + 22,118 -> 22,439 319 + 460,315 -> 450,315 320 + 982,960 -> 71,49 321 + 105,231 -> 105,331 322 + 98,174 -> 551,174 323 + 721,978 -> 38,295 324 + 167,290 -> 167,133 325 + 218,158 -> 218,908 326 + 819,812 -> 758,812 327 + 123,92 -> 123,132 328 + 66,721 -> 66,906 329 + 478,441 -> 967,930 330 + 284,58 -> 464,58 331 + 958,15 -> 37,936 332 + 310,337 -> 359,288 333 + 212,763 -> 212,373 334 + 101,279 -> 101,267 335 + 622,409 -> 106,925 336 + 318,657 -> 318,432 337 + 938,631 -> 938,650 338 + 142,881 -> 254,881 339 + 848,987 -> 848,451 340 + 686,223 -> 481,223 341 + 124,248 -> 812,248 342 + 246,267 -> 246,148 343 + 96,670 -> 324,442 344 + 645,888 -> 385,628 345 + 417,555 -> 417,858 346 + 543,495 -> 543,150 347 + 73,350 -> 440,717 348 + 459,704 -> 459,179 349 + 871,493 -> 871,764 350 + 911,34 -> 64,881 351 + 544,791 -> 703,791 352 + 447,218 -> 62,218 353 + 202,649 -> 396,649 354 + 935,916 -> 55,36 355 + 124,408 -> 477,761 356 + 608,850 -> 484,850 357 + 935,876 -> 582,876 358 + 377,612 -> 269,612 359 + 413,727 -> 365,679 360 + 64,451 -> 850,451 361 + 684,807 -> 357,807 362 + 323,364 -> 372,364 363 + 887,300 -> 419,300 364 + 837,831 -> 837,927 365 + 294,255 -> 768,729 366 + 878,23 -> 141,760 367 + 36,627 -> 157,627 368 + 824,703 -> 824,968 369 + 356,109 -> 657,109 370 + 799,266 -> 313,752 371 + 71,600 -> 650,21 372 + 564,863 -> 564,54 373 + 36,720 -> 109,720 374 + 318,488 -> 682,488 375 + 249,350 -> 979,350 376 + 560,502 -> 255,502 377 + 132,327 -> 132,246 378 + 287,906 -> 791,906 379 + 818,110 -> 818,882 380 + 937,17 -> 113,841 381 + 50,710 -> 673,87 382 + 702,952 -> 702,533 383 + 666,552 -> 611,552 384 + 612,962 -> 112,462 385 + 260,529 -> 351,529 386 + 440,313 -> 440,663 387 + 605,341 -> 405,141 388 + 277,287 -> 461,287 389 + 268,890 -> 268,92 390 + 764,526 -> 877,639 391 + 165,697 -> 832,697 392 + 240,716 -> 801,155 393 + 872,429 -> 578,429 394 + 88,816 -> 338,816 395 + 981,881 -> 981,138 396 + 457,351 -> 457,679 397 + 850,526 -> 850,447 398 + 139,449 -> 165,449 399 + 127,544 -> 127,934 400 + 160,890 -> 745,305 401 + 526,113 -> 303,336 402 + 17,500 -> 17,621 403 + 796,311 -> 181,926 404 + 260,218 -> 787,218 405 + 536,989 -> 536,261 406 + 257,826 -> 257,180 407 + 531,37 -> 531,493 408 + 961,942 -> 206,187 409 + 536,668 -> 536,868 410 + 154,967 -> 154,931 411 + 808,317 -> 808,873 412 + 487,258 -> 599,258 413 + 59,962 -> 802,219 414 + 322,945 -> 322,837 415 + 378,973 -> 33,628 416 + 668,556 -> 691,556 417 + 819,728 -> 787,728 418 + 484,261 -> 484,874 419 + 333,271 -> 278,271 420 + 733,515 -> 741,523 421 + 775,854 -> 523,602 422 + 67,215 -> 616,215 423 + 951,685 -> 951,433 424 + 372,105 -> 372,494 425 + 917,788 -> 917,23 426 + 890,584 -> 245,584 427 + 748,276 -> 893,276 428 + 733,721 -> 733,747 429 + 225,908 -> 897,908 430 + 437,140 -> 423,140 431 + 456,513 -> 136,833 432 + 413,135 -> 413,596 433 + 143,245 -> 879,981 434 + 870,639 -> 942,639 435 + 28,175 -> 696,843 436 + 393,303 -> 393,197 437 + 169,986 -> 458,986 438 + 43,44 -> 952,953 439 + 236,405 -> 60,229 440 + 266,845 -> 292,845 441 + 529,98 -> 95,532 442 + 95,658 -> 695,658 443 + 368,454 -> 112,710 444 + 506,776 -> 662,776 445 + 928,494 -> 604,170 446 + 179,138 -> 900,859 447 + 45,560 -> 408,197 448 + 655,654 -> 37,36 449 + 56,432 -> 56,456 450 + 844,614 -> 844,898 451 + 240,191 -> 240,112 452 + 639,911 -> 213,911 453 + 47,887 -> 830,104 454 + 57,50 -> 977,970 455 + 899,928 -> 111,928 456 + 962,676 -> 962,518 457 + 129,585 -> 469,245 458 + 988,775 -> 988,553 459 + 417,344 -> 842,769 460 + 468,110 -> 506,72 461 + 687,204 -> 687,345 462 + 828,553 -> 765,490 463 + 75,894 -> 75,93 464 + 26,798 -> 11,783 465 + 967,44 -> 967,478 466 + 240,481 -> 947,481 467 + 794,254 -> 162,254 468 + 502,944 -> 812,944 469 + 331,417 -> 410,417 470 + 850,275 -> 850,980 471 + 671,130 -> 671,941 472 + 240,99 -> 240,381 473 + 771,399 -> 318,399 474 + 946,11 -> 28,929 475 + 731,939 -> 824,846 476 + 268,71 -> 832,635 477 + 968,37 -> 968,642 478 + 935,365 -> 515,365 479 + 199,792 -> 932,792 480 + 32,116 -> 371,116 481 + 324,67 -> 941,67 482 + 453,181 -> 453,128 483 + 958,982 -> 115,139 484 + 962,168 -> 154,976 485 + 474,215 -> 333,215 486 + 458,675 -> 458,315 487 + 577,302 -> 300,302 488 + 704,493 -> 704,876 489 + 887,549 -> 887,439 490 + 81,328 -> 724,328 491 + 575,490 -> 670,490 492 + 576,17 -> 576,218 493 + 21,46 -> 963,988 494 + 532,235 -> 532,615 495 + 796,213 -> 796,407 496 + 55,948 -> 980,23 497 + 775,471 -> 272,471 498 + 26,138 -> 344,138 499 + 635,518 -> 915,518 500 + 727,365 -> 727,216
+1
2021/day6.txt
··· 1 + 3,5,2,5,4,3,2,2,3,5,2,3,2,2,2,2,3,5,3,5,5,2,2,3,4,2,3,5,5,3,3,5,2,4,5,4,3,5,3,2,5,4,1,1,1,5,1,4,1,4,3,5,2,3,2,2,2,5,2,1,2,2,2,2,3,4,5,2,5,4,1,3,1,5,5,5,3,5,3,1,5,4,2,5,3,3,5,5,5,3,2,2,1,1,3,2,1,2,2,4,3,4,1,3,4,1,2,2,4,1,3,1,4,3,3,1,2,3,1,3,4,1,1,2,5,1,2,1,2,4,1,3,2,1,1,2,4,3,5,1,3,2,1,3,2,3,4,5,5,4,1,3,4,1,2,3,5,2,3,5,2,1,1,5,5,4,4,4,5,3,3,2,5,4,4,1,5,1,5,5,5,2,2,1,2,4,5,1,2,1,4,5,4,2,4,3,2,5,2,2,1,4,3,5,4,2,1,1,5,1,4,5,1,2,5,5,1,4,1,1,4,5,2,5,3,1,4,5,2,1,3,1,3,3,5,5,1,4,1,3,2,2,3,5,4,3,2,5,1,1,1,2,2,5,3,4,2,1,3,2,5,3,2,2,3,5,2,1,4,5,4,4,5,5,3,3,5,4,5,5,4,3,5,3,5,3,1,3,2,2,1,4,4,5,2,2,4,2,1,4
+149 -1
2021/solutions.livemd
··· 8 8 ## Setup 9 9 10 10 ```elixir 11 - Mix.install([]) 11 + Mix.install([ 12 + {:nx, github: "elixir-nx/nx", sparse: "nx"} 13 + ]) 12 14 ``` 13 15 14 16 ## Day 1 ··· 302 304 ``` 303 305 304 306 ## Day 5 307 + 308 + ```elixir 309 + defmodule Day5 do 310 + defmodule Point do 311 + defstruct [:x, :y] 312 + 313 + def parse(input) do 314 + [x, y] = String.split(input, ",") 315 + 316 + %__MODULE__{x: String.to_integer(x), y: String.to_integer(y)} 317 + end 318 + end 319 + 320 + defmodule Line do 321 + defstruct [:start, :finish] 322 + 323 + def new(a, b) do 324 + {start, finish} = 325 + cond do 326 + a.x < b.x -> {a, b} 327 + a.y < b.y -> {a, b} 328 + true -> {b, a} 329 + end 330 + 331 + %__MODULE__{start: start, finish: finish} 332 + end 333 + 334 + def horizontal?(a), do: a.start.y == a.finish.y 335 + def vertical?(a), do: a.start.x == a.finish.x 336 + 337 + def intersect?(a, b) do 338 + a.start.x in b.start.x..b.finish.y and b.start.y in a.start.y..a.finish.y 339 + end 340 + 341 + def overlapping?(a, b) do 342 + {a.start.x, a.finish.x} == {b.start.x, b.finish.x} or 343 + {a.start.y, a.finish.y} == {b.start.y, b.start.y} 344 + end 345 + 346 + def orientation(a) do 347 + cond do 348 + horizontal?(a) -> :horizontal 349 + vertical?(a) -> :vertical 350 + true -> :diagonal 351 + end 352 + end 353 + end 354 + end 355 + 356 + lines = 357 + File.stream!("day5.txt") 358 + |> Stream.map(&String.trim/1) 359 + |> Stream.map(fn input -> 360 + [a, b] = String.split(input, " -> ") 361 + 362 + pa = Day5.Point.parse(a) 363 + pb = Day5.Point.parse(b) 364 + 365 + Day5.Line.new(pa, pb) 366 + end) 367 + 368 + x_min = 369 + lines 370 + |> Enum.map(& &1.start.x) 371 + |> Enum.min() 372 + 373 + x_max = 374 + lines 375 + |> Enum.map(& &1.finish.x) 376 + |> Enum.max() 377 + 378 + y_min = 379 + lines 380 + |> Enum.map(& &1.start.y) 381 + |> Enum.min() 382 + 383 + y_max = 384 + lines 385 + |> Enum.map(& &1.finish.y) 386 + |> Enum.max() 387 + 388 + {x_min, x_max, y_min, y_max} 389 + 390 + arr = Nx.iota({1000, 1000}) 391 + 392 + arr = Nx.subtract(arr, arr) 393 + 394 + lines 395 + |> Enum.flat_map(fn a -> 396 + case Day5.Line.orientation(a) do 397 + :diagonal -> [(a.start.x - a.finish.x) / (a.start.y - a.finish.y)] 398 + _ -> [] 399 + end 400 + end) 401 + ``` 402 + 403 + ### Task 1 404 + 405 + ```elixir 406 + %{horizontal: horiz, vertical: vert} = Enum.group_by(lines, &Day5.Line.orientation/1) 407 + 408 + horiz = Enum.sort_by(horiz, &{&1.start.x, &1.start.y}) 409 + vert = Enum.sort_by(vert, & &1.start.x) 410 + ``` 411 + 412 + ## Day 6 413 + 414 + ```elixir 415 + initial = for i <- 0..8, into: %{}, do: {i, 0} 416 + 417 + counts = 418 + File.read!("day6.txt") 419 + |> String.trim() 420 + |> String.split(",") 421 + |> Enum.map(&String.to_integer/1) 422 + |> Enum.frequencies() 423 + |> Map.merge(initial, fn _, a, _ -> a end) 424 + ``` 425 + 426 + ### Task 1 427 + 428 + ```elixir 429 + 1..80 430 + |> Enum.reduce(counts, fn _, %{0 => next} = acc -> 431 + 1..8 432 + |> Map.new(fn idx -> {idx - 1, acc[idx]} end) 433 + |> Map.update!(6, &(&1 + next)) 434 + |> Map.put(8, next) 435 + end) 436 + |> Map.values() 437 + |> Enum.sum() 438 + ``` 439 + 440 + ### Task 2 441 + 442 + ```elixir 443 + 1..256 444 + |> Enum.reduce(counts, fn _, %{0 => next} = acc -> 445 + 1..8 446 + |> Map.new(fn idx -> {idx - 1, acc[idx]} end) 447 + |> Map.update!(6, &(&1 + next)) 448 + |> Map.put(8, next) 449 + end) 450 + |> Map.values() 451 + |> Enum.sum() 452 + ```