day 14 done and clippied
This commit is contained in:
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -112,9 +112,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "memchr"
|
name = "memchr"
|
||||||
version = "2.5.0"
|
version = "2.6.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
|
checksum = "76fc44e2588d5b436dbc3c6cf62aef290f90dab6235744a93dfe1cc18f451e2c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "minimal-lexical"
|
name = "minimal-lexical"
|
||||||
|
|||||||
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() {
|
#![warn(clippy::all, clippy::pedantic)]
|
||||||
println!("Hello, world!");
|
|
||||||
|
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