Day 14
This commit is contained in:
parent
22a46d10a6
commit
ae19a80e72
4 changed files with 304 additions and 1 deletions
158
res/14/input.txt
Normal file
158
res/14/input.txt
Normal file
|
@ -0,0 +1,158 @@
|
|||
498,32 -> 503,32
|
||||
538,63 -> 538,65 -> 534,65 -> 534,70 -> 551,70 -> 551,65 -> 544,65 -> 544,63
|
||||
525,56 -> 530,56
|
||||
552,86 -> 557,86
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
594,151 -> 594,154 -> 591,154 -> 591,162 -> 602,162 -> 602,154 -> 598,154 -> 598,151
|
||||
504,56 -> 509,56
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
503,52 -> 508,52
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
551,90 -> 551,91 -> 561,91 -> 561,90
|
||||
521,59 -> 521,60 -> 540,60 -> 540,59
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
563,107 -> 563,111 -> 556,111 -> 556,117 -> 574,117 -> 574,111 -> 566,111 -> 566,107
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
594,151 -> 594,154 -> 591,154 -> 591,162 -> 602,162 -> 602,154 -> 598,154 -> 598,151
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
558,80 -> 563,80
|
||||
594,151 -> 594,154 -> 591,154 -> 591,162 -> 602,162 -> 602,154 -> 598,154 -> 598,151
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
563,107 -> 563,111 -> 556,111 -> 556,117 -> 574,117 -> 574,111 -> 566,111 -> 566,107
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
511,56 -> 516,56
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
518,56 -> 523,56
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
521,59 -> 521,60 -> 540,60 -> 540,59
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
563,107 -> 563,111 -> 556,111 -> 556,117 -> 574,117 -> 574,111 -> 566,111 -> 566,107
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
538,63 -> 538,65 -> 534,65 -> 534,70 -> 551,70 -> 551,65 -> 544,65 -> 544,63
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
594,151 -> 594,154 -> 591,154 -> 591,162 -> 602,162 -> 602,154 -> 598,154 -> 598,151
|
||||
563,107 -> 563,111 -> 556,111 -> 556,117 -> 574,117 -> 574,111 -> 566,111 -> 566,107
|
||||
594,151 -> 594,154 -> 591,154 -> 591,162 -> 602,162 -> 602,154 -> 598,154 -> 598,151
|
||||
572,120 -> 572,123 -> 569,123 -> 569,129 -> 584,129 -> 584,123 -> 577,123 -> 577,120
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
563,107 -> 563,111 -> 556,111 -> 556,117 -> 574,117 -> 574,111 -> 566,111 -> 566,107
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
553,75 -> 557,75
|
||||
559,86 -> 564,86
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
581,167 -> 581,168 -> 600,168 -> 600,167
|
||||
572,120 -> 572,123 -> 569,123 -> 569,129 -> 584,129 -> 584,123 -> 577,123 -> 577,120
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
584,135 -> 594,135 -> 594,134
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
501,29 -> 506,29
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
514,54 -> 519,54
|
||||
562,83 -> 567,83
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
500,54 -> 505,54
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
551,90 -> 551,91 -> 561,91 -> 561,90
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
538,63 -> 538,65 -> 534,65 -> 534,70 -> 551,70 -> 551,65 -> 544,65 -> 544,63
|
||||
544,77 -> 548,77
|
||||
506,50 -> 511,50
|
||||
505,32 -> 510,32
|
||||
594,151 -> 594,154 -> 591,154 -> 591,162 -> 602,162 -> 602,154 -> 598,154 -> 598,151
|
||||
538,63 -> 538,65 -> 534,65 -> 534,70 -> 551,70 -> 551,65 -> 544,65 -> 544,63
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
497,56 -> 502,56
|
||||
566,86 -> 571,86
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
581,167 -> 581,168 -> 600,168 -> 600,167
|
||||
572,120 -> 572,123 -> 569,123 -> 569,129 -> 584,129 -> 584,123 -> 577,123 -> 577,120
|
||||
563,107 -> 563,111 -> 556,111 -> 556,117 -> 574,117 -> 574,111 -> 566,111 -> 566,107
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
572,120 -> 572,123 -> 569,123 -> 569,129 -> 584,129 -> 584,123 -> 577,123 -> 577,120
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
572,120 -> 572,123 -> 569,123 -> 569,129 -> 584,129 -> 584,123 -> 577,123 -> 577,120
|
||||
584,135 -> 594,135 -> 594,134
|
||||
572,120 -> 572,123 -> 569,123 -> 569,129 -> 584,129 -> 584,123 -> 577,123 -> 577,120
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
538,63 -> 538,65 -> 534,65 -> 534,70 -> 551,70 -> 551,65 -> 544,65 -> 544,63
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
513,50 -> 518,50
|
||||
563,107 -> 563,111 -> 556,111 -> 556,117 -> 574,117 -> 574,111 -> 566,111 -> 566,107
|
||||
508,29 -> 513,29
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
521,59 -> 521,60 -> 540,60 -> 540,59
|
||||
547,75 -> 551,75
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
538,63 -> 538,65 -> 534,65 -> 534,70 -> 551,70 -> 551,65 -> 544,65 -> 544,63
|
||||
594,151 -> 594,154 -> 591,154 -> 591,162 -> 602,162 -> 602,154 -> 598,154 -> 598,151
|
||||
504,26 -> 509,26
|
||||
521,54 -> 526,54
|
||||
550,73 -> 554,73
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
550,77 -> 554,77
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
558,104 -> 558,94 -> 558,104 -> 560,104 -> 560,99 -> 560,104 -> 562,104 -> 562,101 -> 562,104 -> 564,104 -> 564,99 -> 564,104
|
||||
510,52 -> 515,52
|
||||
492,23 -> 492,15 -> 492,23 -> 494,23 -> 494,22 -> 494,23 -> 496,23 -> 496,14 -> 496,23 -> 498,23 -> 498,21 -> 498,23 -> 500,23 -> 500,18 -> 500,23 -> 502,23 -> 502,22 -> 502,23 -> 504,23 -> 504,18 -> 504,23 -> 506,23 -> 506,21 -> 506,23
|
||||
509,48 -> 514,48
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
495,45 -> 495,37 -> 495,45 -> 497,45 -> 497,44 -> 497,45 -> 499,45 -> 499,38 -> 499,45 -> 501,45 -> 501,39 -> 501,45 -> 503,45 -> 503,36 -> 503,45 -> 505,45 -> 505,44 -> 505,45 -> 507,45 -> 507,42 -> 507,45 -> 509,45 -> 509,44 -> 509,45 -> 511,45 -> 511,35 -> 511,45
|
||||
556,77 -> 560,77
|
||||
572,120 -> 572,123 -> 569,123 -> 569,129 -> 584,129 -> 584,123 -> 577,123 -> 577,120
|
||||
574,148 -> 574,140 -> 574,148 -> 576,148 -> 576,138 -> 576,148 -> 578,148 -> 578,139 -> 578,148 -> 580,148 -> 580,146 -> 580,148 -> 582,148 -> 582,145 -> 582,148 -> 584,148 -> 584,139 -> 584,148 -> 586,148 -> 586,138 -> 586,148 -> 588,148 -> 588,141 -> 588,148 -> 590,148 -> 590,138 -> 590,148
|
||||
517,52 -> 522,52
|
||||
551,90 -> 551,91 -> 561,91 -> 561,90
|
||||
507,54 -> 512,54
|
||||
581,167 -> 581,168 -> 600,168 -> 600,167
|
||||
512,32 -> 517,32
|
||||
538,63 -> 538,65 -> 534,65 -> 534,70 -> 551,70 -> 551,65 -> 544,65 -> 544,63
|
||||
555,83 -> 560,83
|
2
res/14/test-input.txt
Normal file
2
res/14/test-input.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
498,4 -> 498,6 -> 496,6
|
||||
503,4 -> 502,4 -> 502,9 -> 494,9
|
143
src/days/d14.rs
Normal file
143
src/days/d14.rs
Normal file
|
@ -0,0 +1,143 @@
|
|||
use std::fs;
|
||||
|
||||
const CAVE_WIDTH: u32 = 400;
|
||||
const CAVE_HEIGHT: u32 = 200;
|
||||
const X_OFFSET: u32 = 300;
|
||||
const START_POINT: (u32,u32) = (500,0);
|
||||
|
||||
pub fn solve() {
|
||||
let path = "res/14/input.txt";
|
||||
|
||||
let contents = fs::read_to_string(path).expect("I/O error, wrong path?");
|
||||
|
||||
// parse paths
|
||||
let rock_paths: Vec<Vec<(u32, u32)>> = contents
|
||||
.lines()
|
||||
.filter(|line| *line != "")
|
||||
.map(|line| {
|
||||
line.split(" -> ")
|
||||
.map(|coord| {
|
||||
let coord_arr: Vec<&str> = coord.split(",").collect();
|
||||
(coord_arr[0].parse::<u32>().unwrap(),
|
||||
coord_arr[1].parse::<u32>().unwrap())
|
||||
}).collect()
|
||||
}).collect();
|
||||
|
||||
// cave[X][Y]
|
||||
let mut cave: Vec<Vec<bool>> = (0..CAVE_WIDTH).map(|_| (0..CAVE_HEIGHT).map(|_| false).collect()).collect();
|
||||
|
||||
// set cave path structure
|
||||
rock_paths.iter().for_each(|path| {
|
||||
path.windows(2)
|
||||
.for_each(|pairs| {
|
||||
// draw rock lines
|
||||
let x_iter = if pairs[0].0 > pairs[1].0 {
|
||||
pairs[1].0..=pairs[0].0
|
||||
} else {
|
||||
pairs[0].0..=pairs[1].0
|
||||
};
|
||||
x_iter.for_each(|x| {
|
||||
let y_iter = if pairs[0].1 > pairs[1].1 {
|
||||
pairs[1].1..=pairs[0].1
|
||||
} else {
|
||||
pairs[0].1..=pairs[1].1
|
||||
};
|
||||
y_iter.for_each(|y| {
|
||||
cave[(x-X_OFFSET) as usize][y as usize] = true;
|
||||
})
|
||||
});
|
||||
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
// task 1 - normal cave
|
||||
// let sand fall
|
||||
let mut sand_unit_counter: u32 = 0;
|
||||
let mut sand_pos = next_sand_pos(&cave);
|
||||
while sand_pos.1 < CAVE_HEIGHT-1 {
|
||||
cave[sand_pos.0 as usize][sand_pos.1 as usize] = true;
|
||||
sand_pos = next_sand_pos(&cave);
|
||||
sand_unit_counter += 1;
|
||||
}
|
||||
|
||||
println!("Result 1: {sand_unit_counter}");
|
||||
|
||||
|
||||
// task 2 - cave with ground
|
||||
// find ground - cave height is 2 + max y value
|
||||
let cave_height = 2 + rock_paths
|
||||
.iter()
|
||||
.map(|line|
|
||||
line
|
||||
.iter()
|
||||
.map(|r| r.1)
|
||||
.max()
|
||||
.unwrap()
|
||||
)
|
||||
.max()
|
||||
.unwrap();
|
||||
// build ground
|
||||
cave.iter_mut().for_each(|col| {
|
||||
col[(cave_height) as usize] = true
|
||||
});
|
||||
|
||||
// let sand fall again, until it reaches the start point
|
||||
while sand_pos != (START_POINT.0-X_OFFSET, START_POINT.1) {
|
||||
cave[sand_pos.0 as usize][sand_pos.1 as usize] = true;
|
||||
sand_pos = next_sand_pos(&cave);
|
||||
sand_unit_counter += 1;
|
||||
}
|
||||
|
||||
println!("Result 2: {sand_unit_counter}");
|
||||
}
|
||||
|
||||
// returns the next position a sand unit will come to rest at
|
||||
fn next_sand_pos(cave: &Vec<Vec<bool>>) -> (u32, u32) {
|
||||
let start_pos = (START_POINT.0-X_OFFSET, START_POINT.1);
|
||||
let mut pos: (u32, u32) = start_pos;
|
||||
while !is_end_pos(pos, cave) {
|
||||
// first check directly below
|
||||
if !cave[(pos.0) as usize][(pos.1+1) as usize] {
|
||||
pos = (pos.0, pos.1+1)
|
||||
} // then diagonally down-left
|
||||
else if !cave[(pos.0-1) as usize][(pos.1+1) as usize] {
|
||||
pos = (pos.0-1, pos.1+1)
|
||||
} // then diagonally down-right
|
||||
else if !cave[(pos.0+1) as usize][(pos.1+1) as usize] {
|
||||
pos = (pos.0+1, pos.1+1)
|
||||
}
|
||||
}
|
||||
|
||||
pos
|
||||
}
|
||||
|
||||
// returns whether the passed coordinates are a valid end position for a sand unit
|
||||
fn is_end_pos(pos: (u32, u32), cave: &Vec<Vec<bool>>) -> bool {
|
||||
if pos.1 as usize == cave[0].len()-1 {
|
||||
// pos is on ground of the cave, lays still
|
||||
return true
|
||||
}
|
||||
// don't need to check for enough space to left+right since cave is big enough
|
||||
if cave[(pos.0-1) as usize][(pos.1+1) as usize]
|
||||
&& cave[(pos.0) as usize][(pos.1+1) as usize]
|
||||
&& cave[(pos.0+1) as usize][(pos.1+1) as usize] {
|
||||
return true
|
||||
}
|
||||
|
||||
false
|
||||
}
|
||||
|
||||
// prints the cave to stdout
|
||||
fn _print_cave(cave: &Vec<Vec<bool>>) {
|
||||
let mut out: Vec<String> = (0..CAVE_HEIGHT).map(|_| "".to_string()).collect();
|
||||
cave.iter().for_each(|line| {
|
||||
line.iter().enumerate().for_each(|(i, cell)|
|
||||
match *cell {
|
||||
true => out[i] += "#",
|
||||
false => out[i] += "."
|
||||
}
|
||||
);
|
||||
});
|
||||
out.iter().for_each(|s| println!("{s}"));
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
pub mod days;
|
||||
|
||||
fn main() {
|
||||
days::d13::solve()
|
||||
days::d14::solve()
|
||||
//_all_days()
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue