Solve day 14
This commit is contained in:
parent
74730c99cf
commit
57239c3080
3 changed files with 249 additions and 0 deletions
152
input/14
Normal file
152
input/14
Normal file
|
@ -0,0 +1,152 @@
|
|||
498,13 -> 498,17 -> 491,17 -> 491,21 -> 507,21 -> 507,17 -> 502,17 -> 502,13
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
498,13 -> 498,17 -> 491,17 -> 491,21 -> 507,21 -> 507,17 -> 502,17 -> 502,13
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
468,113 -> 472,113
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
438,152 -> 442,152
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
474,117 -> 478,117
|
||||
495,39 -> 511,39 -> 511,38
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
471,93 -> 483,93 -> 483,92
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
498,13 -> 498,17 -> 491,17 -> 491,21 -> 507,21 -> 507,17 -> 502,17 -> 502,13
|
||||
441,150 -> 445,150
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
456,125 -> 456,128 -> 453,128 -> 453,134 -> 462,134 -> 462,128 -> 460,128 -> 460,125
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
471,93 -> 483,93 -> 483,92
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
456,125 -> 456,128 -> 453,128 -> 453,134 -> 462,134 -> 462,128 -> 460,128 -> 460,125
|
||||
503,64 -> 503,67 -> 496,67 -> 496,71 -> 512,71 -> 512,67 -> 508,67 -> 508,64
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
456,125 -> 456,128 -> 453,128 -> 453,134 -> 462,134 -> 462,128 -> 460,128 -> 460,125
|
||||
493,78 -> 497,78
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
483,48 -> 487,48
|
||||
484,81 -> 484,84 -> 481,84 -> 481,88 -> 492,88 -> 492,84 -> 488,84 -> 488,81
|
||||
498,13 -> 498,17 -> 491,17 -> 491,21 -> 507,21 -> 507,17 -> 502,17 -> 502,13
|
||||
465,115 -> 469,115
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
462,117 -> 466,117
|
||||
471,115 -> 475,115
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
456,125 -> 456,128 -> 453,128 -> 453,134 -> 462,134 -> 462,128 -> 460,128 -> 460,125
|
||||
498,13 -> 498,17 -> 491,17 -> 491,21 -> 507,21 -> 507,17 -> 502,17 -> 502,13
|
||||
499,78 -> 503,78
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
503,64 -> 503,67 -> 496,67 -> 496,71 -> 512,71 -> 512,67 -> 508,67 -> 508,64
|
||||
450,156 -> 454,156
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
498,13 -> 498,17 -> 491,17 -> 491,21 -> 507,21 -> 507,17 -> 502,17 -> 502,13
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
495,48 -> 499,48
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
498,46 -> 502,46
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
487,78 -> 491,78
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
495,44 -> 499,44
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
486,46 -> 490,46
|
||||
483,97 -> 492,97 -> 492,96
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
468,117 -> 472,117
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
484,81 -> 484,84 -> 481,84 -> 481,88 -> 492,88 -> 492,84 -> 488,84 -> 488,81
|
||||
444,152 -> 448,152
|
||||
489,48 -> 493,48
|
||||
492,42 -> 496,42
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
484,81 -> 484,84 -> 481,84 -> 481,88 -> 492,88 -> 492,84 -> 488,84 -> 488,81
|
||||
496,76 -> 500,76
|
||||
503,64 -> 503,67 -> 496,67 -> 496,71 -> 512,71 -> 512,67 -> 508,67 -> 508,64
|
||||
503,64 -> 503,67 -> 496,67 -> 496,71 -> 512,71 -> 512,67 -> 508,67 -> 508,64
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
456,125 -> 456,128 -> 453,128 -> 453,134 -> 462,134 -> 462,128 -> 460,128 -> 460,125
|
||||
435,154 -> 439,154
|
||||
503,64 -> 503,67 -> 496,67 -> 496,71 -> 512,71 -> 512,67 -> 508,67 -> 508,64
|
||||
441,154 -> 445,154
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
447,154 -> 451,154
|
||||
459,121 -> 459,122 -> 470,122 -> 470,121
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
495,39 -> 511,39 -> 511,38
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
493,74 -> 497,74
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
484,81 -> 484,84 -> 481,84 -> 481,88 -> 492,88 -> 492,84 -> 488,84 -> 488,81
|
||||
492,46 -> 496,46
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
444,156 -> 448,156
|
||||
459,121 -> 459,122 -> 470,122 -> 470,121
|
||||
459,121 -> 459,122 -> 470,122 -> 470,121
|
||||
438,156 -> 442,156
|
||||
490,76 -> 494,76
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
432,156 -> 436,156
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
456,125 -> 456,128 -> 453,128 -> 453,134 -> 462,134 -> 462,128 -> 460,128 -> 460,125
|
||||
489,44 -> 493,44
|
||||
483,97 -> 492,97 -> 492,96
|
||||
503,64 -> 503,67 -> 496,67 -> 496,71 -> 512,71 -> 512,67 -> 508,67 -> 508,64
|
||||
484,81 -> 484,84 -> 481,84 -> 481,88 -> 492,88 -> 492,84 -> 488,84 -> 488,81
|
||||
484,81 -> 484,84 -> 481,84 -> 481,88 -> 492,88 -> 492,84 -> 488,84 -> 488,81
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
484,81 -> 484,84 -> 481,84 -> 481,88 -> 492,88 -> 492,84 -> 488,84 -> 488,81
|
||||
456,125 -> 456,128 -> 453,128 -> 453,134 -> 462,134 -> 462,128 -> 460,128 -> 460,125
|
||||
506,61 -> 506,57 -> 506,61 -> 508,61 -> 508,56 -> 508,61 -> 510,61 -> 510,55 -> 510,61 -> 512,61 -> 512,56 -> 512,61 -> 514,61 -> 514,56 -> 514,61 -> 516,61 -> 516,60 -> 516,61 -> 518,61 -> 518,55 -> 518,61
|
||||
503,64 -> 503,67 -> 496,67 -> 496,71 -> 512,71 -> 512,67 -> 508,67 -> 508,64
|
||||
502,34 -> 502,33 -> 502,34 -> 504,34 -> 504,31 -> 504,34 -> 506,34 -> 506,27 -> 506,34 -> 508,34 -> 508,25 -> 508,34 -> 510,34 -> 510,32 -> 510,34 -> 512,34 -> 512,33 -> 512,34
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
||||
474,110 -> 474,103 -> 474,110 -> 476,110 -> 476,103 -> 476,110 -> 478,110 -> 478,108 -> 478,110 -> 480,110 -> 480,100 -> 480,110 -> 482,110 -> 482,103 -> 482,110 -> 484,110 -> 484,104 -> 484,110 -> 486,110 -> 486,103 -> 486,110 -> 488,110 -> 488,101 -> 488,110
|
||||
498,13 -> 498,17 -> 491,17 -> 491,21 -> 507,21 -> 507,17 -> 502,17 -> 502,13
|
||||
501,48 -> 505,48
|
||||
444,147 -> 444,142 -> 444,147 -> 446,147 -> 446,142 -> 446,147 -> 448,147 -> 448,140 -> 448,147 -> 450,147 -> 450,137 -> 450,147 -> 452,147 -> 452,138 -> 452,147 -> 454,147 -> 454,142 -> 454,147 -> 456,147 -> 456,145 -> 456,147 -> 458,147 -> 458,140 -> 458,147
|
2
input/14-test
Normal file
2
input/14-test
Normal file
|
@ -0,0 +1,2 @@
|
|||
498,4 -> 498,6 -> 496,6
|
||||
503,4 -> 502,4 -> 502,9 -> 494,9
|
95
src/bin/14.rs
Normal file
95
src/bin/14.rs
Normal file
|
@ -0,0 +1,95 @@
|
|||
use std::collections::HashSet;
|
||||
|
||||
use aoc2022::*;
|
||||
use itertools::Itertools;
|
||||
|
||||
const INPUT: &str = include_str!("../../input/14");
|
||||
|
||||
fn main() {
|
||||
solved_level_1(Cave::from_input(false).simulate());
|
||||
solved_level_2(Cave::from_input(true).simulate());
|
||||
}
|
||||
|
||||
struct Cave {
|
||||
floor: Option<i64>,
|
||||
cells: HashSet<(i64, i64)>,
|
||||
}
|
||||
|
||||
impl Cave {
|
||||
fn from_input(floor: bool) -> Self {
|
||||
let mut cells = HashSet::new();
|
||||
for line in INPUT.lines() {
|
||||
let pairs = line
|
||||
.split(" -> ")
|
||||
.flat_map(|pair| pair.split(','))
|
||||
.map(|n| n.parse::<i64>().unwrap())
|
||||
.tuples()
|
||||
.tuple_windows();
|
||||
for ((x1, y1), (x2, y2)) in pairs {
|
||||
for x in x1.min(x2)..=x1.max(x2) {
|
||||
for y in y1.min(y2)..=y1.max(y2) {
|
||||
cells.insert((x, y));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let floor = floor.then(|| cells.iter().map(|(_, y)| *y).max().unwrap() + 2);
|
||||
|
||||
Self { floor, cells }
|
||||
}
|
||||
|
||||
fn simulate(&mut self) -> usize {
|
||||
let max_y = self.cells.iter().copied().map(|(_, y)| y).max().unwrap();
|
||||
|
||||
for count in 0.. {
|
||||
let mut x = 500;
|
||||
let mut y = 0;
|
||||
loop {
|
||||
// End of level 1: Sand falls into the void.
|
||||
if y > max_y + 10 {
|
||||
return count;
|
||||
}
|
||||
|
||||
// Check for free places
|
||||
let left = self.is_free(x - 1, y + 1);
|
||||
let down = self.is_free(x, y + 1);
|
||||
let right = self.is_free(x + 1, y + 1);
|
||||
|
||||
match (left, down, right) {
|
||||
(false, false, false) => {
|
||||
self.cells.insert((x, y));
|
||||
|
||||
// End of level 2: The source has been filled.
|
||||
if (x, y) == (500, 0) {
|
||||
return count + 1;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
(_, true, _) => y += 1,
|
||||
(true, false, _) => {
|
||||
y += 1;
|
||||
x -= 1;
|
||||
}
|
||||
(false, false, true) => {
|
||||
y += 1;
|
||||
x += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unreachable!();
|
||||
}
|
||||
|
||||
fn is_free(&self, x: i64, y: i64) -> bool {
|
||||
if let Some(floor) = self.floor {
|
||||
if y >= floor {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
self.cells.get(&(x, y)).is_none()
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue