day 14 done and clippied
This commit is contained in:
149
day14/input.txt
Normal file
149
day14/input.txt
Normal file
@@ -0,0 +1,149 @@
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
494,23 -> 494,26 -> 486,26 -> 486,29 -> 502,29 -> 502,26 -> 496,26 -> 496,23
|
||||
456,66 -> 456,70 -> 455,70 -> 455,77 -> 466,77 -> 466,70 -> 462,70 -> 462,66
|
||||
446,83 -> 450,83
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
497,13 -> 497,16 -> 496,16 -> 496,20 -> 508,20 -> 508,16 -> 503,16 -> 503,13
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
429,138 -> 429,140 -> 428,140 -> 428,146 -> 436,146 -> 436,140 -> 433,140 -> 433,138
|
||||
466,59 -> 470,59
|
||||
420,134 -> 420,135 -> 429,135 -> 429,134
|
||||
449,79 -> 449,80 -> 463,80
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
469,61 -> 473,61
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
472,63 -> 476,63
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
431,94 -> 435,94
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
428,102 -> 432,102
|
||||
437,94 -> 441,94
|
||||
429,138 -> 429,140 -> 428,140 -> 428,146 -> 436,146 -> 436,140 -> 433,140 -> 433,138
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
452,87 -> 456,87
|
||||
425,99 -> 429,99
|
||||
475,57 -> 479,57
|
||||
429,138 -> 429,140 -> 428,140 -> 428,146 -> 436,146 -> 436,140 -> 433,140 -> 433,138
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
469,57 -> 473,57
|
||||
456,66 -> 456,70 -> 455,70 -> 455,77 -> 466,77 -> 466,70 -> 462,70 -> 462,66
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
429,138 -> 429,140 -> 428,140 -> 428,146 -> 436,146 -> 436,140 -> 433,140 -> 433,138
|
||||
449,85 -> 453,85
|
||||
420,134 -> 420,135 -> 429,135 -> 429,134
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
440,87 -> 444,87
|
||||
478,32 -> 478,33 -> 490,33 -> 490,32
|
||||
443,94 -> 447,94
|
||||
431,105 -> 435,105
|
||||
481,61 -> 485,61
|
||||
460,63 -> 464,63
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
440,96 -> 444,96
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
429,138 -> 429,140 -> 428,140 -> 428,146 -> 436,146 -> 436,140 -> 433,140 -> 433,138
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
434,92 -> 438,92
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
434,96 -> 438,96
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
456,66 -> 456,70 -> 455,70 -> 455,77 -> 466,77 -> 466,70 -> 462,70 -> 462,66
|
||||
475,61 -> 479,61
|
||||
422,102 -> 426,102
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
494,23 -> 494,26 -> 486,26 -> 486,29 -> 502,29 -> 502,26 -> 496,26 -> 496,23
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
456,66 -> 456,70 -> 455,70 -> 455,77 -> 466,77 -> 466,70 -> 462,70 -> 462,66
|
||||
494,23 -> 494,26 -> 486,26 -> 486,29 -> 502,29 -> 502,26 -> 496,26 -> 496,23
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
494,23 -> 494,26 -> 486,26 -> 486,29 -> 502,29 -> 502,26 -> 496,26 -> 496,23
|
||||
420,134 -> 420,135 -> 429,135 -> 429,134
|
||||
478,63 -> 482,63
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
425,105 -> 429,105
|
||||
494,23 -> 494,26 -> 486,26 -> 486,29 -> 502,29 -> 502,26 -> 496,26 -> 496,23
|
||||
497,13 -> 497,16 -> 496,16 -> 496,20 -> 508,20 -> 508,16 -> 503,16 -> 503,13
|
||||
456,66 -> 456,70 -> 455,70 -> 455,77 -> 466,77 -> 466,70 -> 462,70 -> 462,66
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
471,38 -> 471,39 -> 480,39
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
456,66 -> 456,70 -> 455,70 -> 455,77 -> 466,77 -> 466,70 -> 462,70 -> 462,66
|
||||
497,13 -> 497,16 -> 496,16 -> 496,20 -> 508,20 -> 508,16 -> 503,16 -> 503,13
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
446,87 -> 450,87
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
429,138 -> 429,140 -> 428,140 -> 428,146 -> 436,146 -> 436,140 -> 433,140 -> 433,138
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
440,92 -> 444,92
|
||||
449,79 -> 449,80 -> 463,80
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
429,138 -> 429,140 -> 428,140 -> 428,146 -> 436,146 -> 436,140 -> 433,140 -> 433,138
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
446,96 -> 450,96
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
471,38 -> 471,39 -> 480,39
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
456,66 -> 456,70 -> 455,70 -> 455,77 -> 466,77 -> 466,70 -> 462,70 -> 462,66
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
466,63 -> 470,63
|
||||
494,23 -> 494,26 -> 486,26 -> 486,29 -> 502,29 -> 502,26 -> 496,26 -> 496,23
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
497,13 -> 497,16 -> 496,16 -> 496,20 -> 508,20 -> 508,16 -> 503,16 -> 503,13
|
||||
497,13 -> 497,16 -> 496,16 -> 496,20 -> 508,20 -> 508,16 -> 503,16 -> 503,13
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
443,85 -> 447,85
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
478,32 -> 478,33 -> 490,33 -> 490,32
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
472,55 -> 476,55
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
419,105 -> 423,105
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
437,90 -> 441,90
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
478,32 -> 478,33 -> 490,33 -> 490,32
|
||||
472,59 -> 476,59
|
||||
463,61 -> 467,61
|
||||
497,13 -> 497,16 -> 496,16 -> 496,20 -> 508,20 -> 508,16 -> 503,16 -> 503,13
|
||||
428,96 -> 432,96
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
421,131 -> 421,127 -> 421,131 -> 423,131 -> 423,124 -> 423,131 -> 425,131 -> 425,130 -> 425,131 -> 427,131 -> 427,128 -> 427,131
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
478,59 -> 482,59
|
||||
410,118 -> 410,108 -> 410,118 -> 412,118 -> 412,114 -> 412,118 -> 414,118 -> 414,115 -> 414,118 -> 416,118 -> 416,108 -> 416,118 -> 418,118 -> 418,112 -> 418,118 -> 420,118 -> 420,116 -> 420,118 -> 422,118 -> 422,116 -> 422,118 -> 424,118 -> 424,108 -> 424,118
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
494,23 -> 494,26 -> 486,26 -> 486,29 -> 502,29 -> 502,26 -> 496,26 -> 496,23
|
||||
419,159 -> 419,156 -> 419,159 -> 421,159 -> 421,158 -> 421,159 -> 423,159 -> 423,152 -> 423,159 -> 425,159 -> 425,155 -> 425,159 -> 427,159 -> 427,156 -> 427,159 -> 429,159 -> 429,153 -> 429,159 -> 431,159 -> 431,155 -> 431,159 -> 433,159 -> 433,153 -> 433,159
|
||||
475,52 -> 475,50 -> 475,52 -> 477,52 -> 477,46 -> 477,52 -> 479,52 -> 479,49 -> 479,52 -> 481,52 -> 481,49 -> 481,52 -> 483,52 -> 483,42 -> 483,52 -> 485,52 -> 485,47 -> 485,52
|
||||
484,63 -> 488,63
|
||||
497,13 -> 497,16 -> 496,16 -> 496,20 -> 508,20 -> 508,16 -> 503,16 -> 503,13
|
||||
@@ -1,3 +1,147 @@
|
||||
fn main() {
|
||||
println!("Hello, world!");
|
||||
#![warn(clippy::all, clippy::pedantic)]
|
||||
|
||||
use std::{collections::HashMap, fmt::Display, fs};
|
||||
|
||||
use nom::{
|
||||
bytes::complete::tag,
|
||||
character::complete::{self, newline},
|
||||
multi::separated_list0,
|
||||
sequence::separated_pair,
|
||||
};
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
enum Square {
|
||||
Air,
|
||||
Wall,
|
||||
Sand,
|
||||
}
|
||||
|
||||
impl Square {
|
||||
pub fn is_sand(self) -> bool {
|
||||
matches!(self, Self::Sand)
|
||||
}
|
||||
pub fn is_rock(self) -> bool {
|
||||
matches!(self, Self::Wall)
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for Square {
|
||||
fn default() -> Self {
|
||||
Self::Air
|
||||
}
|
||||
}
|
||||
impl Display for Square {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
let display = match self {
|
||||
Self::Air => '.',
|
||||
Self::Wall => '#',
|
||||
Self::Sand => 'o',
|
||||
};
|
||||
write!(f, "{display}")
|
||||
}
|
||||
}
|
||||
|
||||
fn rock_wall(input: &str) -> nom::IResult<&str, HashMap<(usize, usize), Square>> {
|
||||
let (input, pts) = separated_list0(
|
||||
tag(" -> "),
|
||||
separated_pair(complete::u64, tag(","), complete::u64),
|
||||
)(input)?;
|
||||
let mut rocks = HashMap::new();
|
||||
pts.iter()
|
||||
.enumerate()
|
||||
.take(pts.len() - 1)
|
||||
.flat_map(|(i, start)| {
|
||||
let start = (
|
||||
usize::try_from(start.0).unwrap(),
|
||||
usize::try_from(start.1).unwrap(),
|
||||
);
|
||||
let (ex, ey) = pts.get(i + 1).unwrap();
|
||||
let end = (usize::try_from(*ex).unwrap(), usize::try_from(*ey).unwrap());
|
||||
if start.0 == end.0 {
|
||||
let (s, e) = if start.1 < end.1 {
|
||||
(start.1, end.1)
|
||||
} else {
|
||||
(end.1, start.1)
|
||||
};
|
||||
(s..=e).map(|y| (start.0, y)).collect::<Vec<_>>()
|
||||
} else if start.1 == end.1 {
|
||||
let (s, e) = if start.0 < end.0 {
|
||||
(start.0, end.0)
|
||||
} else {
|
||||
(end.0, start.0)
|
||||
};
|
||||
(s..=e).map(|x| (x, start.1)).collect::<Vec<_>>()
|
||||
} else {
|
||||
panic!("wee wooo");
|
||||
}
|
||||
})
|
||||
.for_each(|pt| {
|
||||
rocks.insert(pt, Square::Wall);
|
||||
});
|
||||
Ok((input, rocks))
|
||||
}
|
||||
|
||||
fn parse_input(input: &str) -> nom::IResult<&str, HashMap<(usize, usize), Square>> {
|
||||
let (input, walls) = separated_list0(newline, rock_wall)(input)?;
|
||||
let walls = walls
|
||||
.iter()
|
||||
.flatten()
|
||||
.map(|(pt, s)| (*pt, *s))
|
||||
.collect::<HashMap<(usize, usize), Square>>();
|
||||
Ok((input, walls))
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let file = fs::read_to_string("./input.txt").unwrap();
|
||||
let (_, mut board) = parse_input(&file).unwrap();
|
||||
|
||||
//insert rocks
|
||||
//get lowest rock
|
||||
let lowest = board
|
||||
.iter()
|
||||
.filter_map(|((_, y), typ)| if typ.is_rock() { Some(y) } else { None })
|
||||
.max()
|
||||
.unwrap()
|
||||
.to_owned();
|
||||
while board.get(&(500_usize, 0_usize)).is_none() {
|
||||
let mut square = (500_usize, 0_usize);
|
||||
//drop - find the place to insert
|
||||
while square.1 < lowest {
|
||||
let checks = [
|
||||
(square.0, square.1 + 1),
|
||||
(square.0 - 1, square.1 + 1),
|
||||
(square.0 + 1, square.1 + 1),
|
||||
];
|
||||
square = if let Some(new) = checks.iter().find(|pos| board.get(pos).is_none()) {
|
||||
*new
|
||||
} else {
|
||||
break;
|
||||
};
|
||||
}
|
||||
if square.1 >= lowest {
|
||||
break;
|
||||
}
|
||||
board.insert(square, Square::Sand);
|
||||
}
|
||||
let part1 = board.values().filter(|x| x.is_sand()).count();
|
||||
println!("Part 1: {part1}");
|
||||
while board.get(&(500_usize, 0_usize)).is_none() {
|
||||
let mut square = (500_usize, 0_usize);
|
||||
//drop - find the place to insert
|
||||
while square.1 < lowest + 1 {
|
||||
let checks = [
|
||||
(square.0, square.1 + 1),
|
||||
(square.0 - 1, square.1 + 1),
|
||||
(square.0 + 1, square.1 + 1),
|
||||
];
|
||||
square = if let Some(new) = checks.iter().find(|pos| board.get(pos).is_none()) {
|
||||
*new
|
||||
} else {
|
||||
break;
|
||||
};
|
||||
}
|
||||
board.insert(square, Square::Sand);
|
||||
}
|
||||
let part2 = board.values().filter(|x| x.is_sand()).count();
|
||||
println!("Part 2: {part2}");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user