day 14 part 1 and 2
This commit is contained in:
parent
0a168874f0
commit
1741640930
134
2022/full/day14.txt
Normal file
134
2022/full/day14.txt
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
494,16 -> 499,16
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
505,57 -> 505,59 -> 498,59 -> 498,66 -> 509,66 -> 509,59 -> 507,59 -> 507,57
|
||||||
|
492,52 -> 496,52
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
510,123 -> 515,123
|
||||||
|
492,48 -> 496,48
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
501,54 -> 505,54
|
||||||
|
513,120 -> 518,120
|
||||||
|
502,138 -> 502,141 -> 498,141 -> 498,145 -> 514,145 -> 514,141 -> 507,141 -> 507,138
|
||||||
|
483,54 -> 487,54
|
||||||
|
505,57 -> 505,59 -> 498,59 -> 498,66 -> 509,66 -> 509,59 -> 507,59 -> 507,57
|
||||||
|
508,103 -> 508,93 -> 508,103 -> 510,103 -> 510,101 -> 510,103 -> 512,103 -> 512,96 -> 512,103
|
||||||
|
512,106 -> 512,108 -> 505,108 -> 505,114 -> 518,114 -> 518,108 -> 516,108 -> 516,106
|
||||||
|
532,129 -> 537,129
|
||||||
|
501,16 -> 506,16
|
||||||
|
508,103 -> 508,93 -> 508,103 -> 510,103 -> 510,101 -> 510,103 -> 512,103 -> 512,96 -> 512,103
|
||||||
|
502,138 -> 502,141 -> 498,141 -> 498,145 -> 514,145 -> 514,141 -> 507,141 -> 507,138
|
||||||
|
520,120 -> 525,120
|
||||||
|
489,50 -> 493,50
|
||||||
|
498,19 -> 503,19
|
||||||
|
505,151 -> 505,152 -> 518,152 -> 518,151
|
||||||
|
510,73 -> 514,73
|
||||||
|
516,77 -> 520,77
|
||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
511,129 -> 516,129
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
524,123 -> 529,123
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
505,57 -> 505,59 -> 498,59 -> 498,66 -> 509,66 -> 509,59 -> 507,59 -> 507,57
|
||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
507,75 -> 511,75
|
||||||
|
495,22 -> 495,25 -> 492,25 -> 492,32 -> 501,32 -> 501,25 -> 499,25 -> 499,22
|
||||||
|
514,149 -> 524,149 -> 524,148
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
504,129 -> 509,129
|
||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
508,103 -> 508,93 -> 508,103 -> 510,103 -> 510,101 -> 510,103 -> 512,103 -> 512,96 -> 512,103
|
||||||
|
504,77 -> 508,77
|
||||||
|
495,22 -> 495,25 -> 492,25 -> 492,32 -> 501,32 -> 501,25 -> 499,25 -> 499,22
|
||||||
|
516,117 -> 521,117
|
||||||
|
514,149 -> 524,149 -> 524,148
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
495,22 -> 495,25 -> 492,25 -> 492,32 -> 501,32 -> 501,25 -> 499,25 -> 499,22
|
||||||
|
502,138 -> 502,141 -> 498,141 -> 498,145 -> 514,145 -> 514,141 -> 507,141 -> 507,138
|
||||||
|
512,106 -> 512,108 -> 505,108 -> 505,114 -> 518,114 -> 518,108 -> 516,108 -> 516,106
|
||||||
|
505,57 -> 505,59 -> 498,59 -> 498,66 -> 509,66 -> 509,59 -> 507,59 -> 507,57
|
||||||
|
508,103 -> 508,93 -> 508,103 -> 510,103 -> 510,101 -> 510,103 -> 512,103 -> 512,96 -> 512,103
|
||||||
|
508,103 -> 508,93 -> 508,103 -> 510,103 -> 510,101 -> 510,103 -> 512,103 -> 512,96 -> 512,103
|
||||||
|
507,126 -> 512,126
|
||||||
|
513,75 -> 517,75
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
502,138 -> 502,141 -> 498,141 -> 498,145 -> 514,145 -> 514,141 -> 507,141 -> 507,138
|
||||||
|
505,151 -> 505,152 -> 518,152 -> 518,151
|
||||||
|
510,77 -> 514,77
|
||||||
|
528,126 -> 533,126
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
512,106 -> 512,108 -> 505,108 -> 505,114 -> 518,114 -> 518,108 -> 516,108 -> 516,106
|
||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
518,129 -> 523,129
|
||||||
|
505,57 -> 505,59 -> 498,59 -> 498,66 -> 509,66 -> 509,59 -> 507,59 -> 507,57
|
||||||
|
495,22 -> 495,25 -> 492,25 -> 492,32 -> 501,32 -> 501,25 -> 499,25 -> 499,22
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
491,19 -> 496,19
|
||||||
|
505,19 -> 510,19
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
508,103 -> 508,93 -> 508,103 -> 510,103 -> 510,101 -> 510,103 -> 512,103 -> 512,96 -> 512,103
|
||||||
|
506,135 -> 517,135 -> 517,134
|
||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
506,135 -> 517,135 -> 517,134
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
512,106 -> 512,108 -> 505,108 -> 505,114 -> 518,114 -> 518,108 -> 516,108 -> 516,106
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
497,13 -> 502,13
|
||||||
|
489,54 -> 493,54
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
512,106 -> 512,108 -> 505,108 -> 505,114 -> 518,114 -> 518,108 -> 516,108 -> 516,106
|
||||||
|
505,69 -> 505,70 -> 511,70 -> 511,69
|
||||||
|
487,45 -> 487,38 -> 487,45 -> 489,45 -> 489,42 -> 489,45 -> 491,45 -> 491,39 -> 491,45 -> 493,45 -> 493,39 -> 493,45
|
||||||
|
502,138 -> 502,141 -> 498,141 -> 498,145 -> 514,145 -> 514,141 -> 507,141 -> 507,138
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
512,106 -> 512,108 -> 505,108 -> 505,114 -> 518,114 -> 518,108 -> 516,108 -> 516,106
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
525,129 -> 530,129
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
505,151 -> 505,152 -> 518,152 -> 518,151
|
||||||
|
495,22 -> 495,25 -> 492,25 -> 492,32 -> 501,32 -> 501,25 -> 499,25 -> 499,22
|
||||||
|
521,126 -> 526,126
|
||||||
|
512,106 -> 512,108 -> 505,108 -> 505,114 -> 518,114 -> 518,108 -> 516,108 -> 516,106
|
||||||
|
495,50 -> 499,50
|
||||||
|
495,54 -> 499,54
|
||||||
|
502,138 -> 502,141 -> 498,141 -> 498,145 -> 514,145 -> 514,141 -> 507,141 -> 507,138
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
508,103 -> 508,93 -> 508,103 -> 510,103 -> 510,101 -> 510,103 -> 512,103 -> 512,96 -> 512,103
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
508,103 -> 508,93 -> 508,103 -> 510,103 -> 510,101 -> 510,103 -> 512,103 -> 512,96 -> 512,103
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
495,22 -> 495,25 -> 492,25 -> 492,32 -> 501,32 -> 501,25 -> 499,25 -> 499,22
|
||||||
|
498,52 -> 502,52
|
||||||
|
517,123 -> 522,123
|
||||||
|
514,126 -> 519,126
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
495,22 -> 495,25 -> 492,25 -> 492,32 -> 501,32 -> 501,25 -> 499,25 -> 499,22
|
||||||
|
505,69 -> 505,70 -> 511,70 -> 511,69
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
512,90 -> 512,87 -> 512,90 -> 514,90 -> 514,86 -> 514,90 -> 516,90 -> 516,87 -> 516,90 -> 518,90 -> 518,82 -> 518,90 -> 520,90 -> 520,81 -> 520,90 -> 522,90 -> 522,86 -> 522,90 -> 524,90 -> 524,84 -> 524,90 -> 526,90 -> 526,82 -> 526,90 -> 528,90 -> 528,82 -> 528,90
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
505,57 -> 505,59 -> 498,59 -> 498,66 -> 509,66 -> 509,59 -> 507,59 -> 507,57
|
||||||
|
520,165 -> 520,160 -> 520,165 -> 522,165 -> 522,163 -> 522,165 -> 524,165 -> 524,159 -> 524,165 -> 526,165 -> 526,159 -> 526,165 -> 528,165 -> 528,155 -> 528,165
|
||||||
|
505,69 -> 505,70 -> 511,70 -> 511,69
|
||||||
|
505,57 -> 505,59 -> 498,59 -> 498,66 -> 509,66 -> 509,59 -> 507,59 -> 507,57
|
||||||
|
502,138 -> 502,141 -> 498,141 -> 498,145 -> 514,145 -> 514,141 -> 507,141 -> 507,138
|
||||||
|
486,52 -> 490,52
|
146
2022/python/day14.py
Normal file
146
2022/python/day14.py
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
import matrix
|
||||||
|
import shared
|
||||||
|
import itertools
|
||||||
|
import functools
|
||||||
|
|
||||||
|
|
||||||
|
SAND_START = [0,500]
|
||||||
|
|
||||||
|
|
||||||
|
def get_lines(rows):
|
||||||
|
_rows = []
|
||||||
|
for row in rows:
|
||||||
|
_row = []
|
||||||
|
for point in row.split(" -> "):
|
||||||
|
_row.append(list(reversed(list(map(int, point.split(","))))))
|
||||||
|
_rows.append(_row)
|
||||||
|
return _rows
|
||||||
|
|
||||||
|
def find_bounds(lines):
|
||||||
|
x = []
|
||||||
|
y = []
|
||||||
|
for line in lines:
|
||||||
|
x.extend(matrix.split_x_out(line))
|
||||||
|
y.extend(matrix.split_y_out(line))
|
||||||
|
return shared.minmax(y),shared.minmax(x)
|
||||||
|
|
||||||
|
|
||||||
|
def part1(rows):
|
||||||
|
def get_next(sand):
|
||||||
|
next_y = sand[0]+1
|
||||||
|
dl = sand[1]-1
|
||||||
|
d = sand[1]
|
||||||
|
dr = sand[1]+1
|
||||||
|
return next_y, (dl,d,dr)
|
||||||
|
lines = get_lines(rows)
|
||||||
|
(minY,maxY), (minX,maxX) = find_bounds(lines)
|
||||||
|
mx = matrix.matrix_of_size(maxX+2,maxY+2)
|
||||||
|
walls = []
|
||||||
|
for line in lines:
|
||||||
|
for x in range(len(line)-1):
|
||||||
|
coords = matrix.coords_between_points(line[x], line[x+1])
|
||||||
|
walls.extend(coords)
|
||||||
|
for y,x in walls:
|
||||||
|
mx[y][x] = "#"
|
||||||
|
mx[SAND_START[0]][SAND_START[1]] = "+"
|
||||||
|
|
||||||
|
sands = []
|
||||||
|
|
||||||
|
try:
|
||||||
|
for sand_grains in range(900): # produce Sand one unit at a time
|
||||||
|
last_grain = []
|
||||||
|
sand = SAND_START[:]
|
||||||
|
#print("starting sand", sand_grains+1, sand)
|
||||||
|
while True:
|
||||||
|
last_grain.append(sand[:])
|
||||||
|
next_y, (dl, d, dr) = get_next(sand)
|
||||||
|
if mx[next_y][d] == 0:
|
||||||
|
#print(mx[next_y][d],"moving_down", end=' ')
|
||||||
|
#print("moving down")
|
||||||
|
sand[0] = next_y
|
||||||
|
elif mx[next_y][dl] == 0:
|
||||||
|
#print(mx[next_y][dl], "moving left", end=' ')
|
||||||
|
#print("moving left")
|
||||||
|
sand[0] = next_y
|
||||||
|
sand[1] = dl
|
||||||
|
elif mx[next_y][dr] == 0:
|
||||||
|
#print(mx[next_y][dr], "moving right", end=' ')
|
||||||
|
#print("moving right")
|
||||||
|
sand[0] = next_y
|
||||||
|
sand[1] = dr
|
||||||
|
else:
|
||||||
|
mx[sand[0]][sand[1]] = "o"
|
||||||
|
#print(mx[next_y][dl], mx[next_y][d], mx[next_y][dr])
|
||||||
|
#print("STOPPING", end=' ')
|
||||||
|
break
|
||||||
|
#matrix.view_matrix(mx, 0,minX-1, maxY+1,maxX+2)
|
||||||
|
except IndexError:
|
||||||
|
sands.append(last_grain)
|
||||||
|
for y,x in sands[-1]:
|
||||||
|
mx[y][x] = "~"
|
||||||
|
#matrix.view_matrix(mx, 0,minX-1, maxY+1,maxX+2)
|
||||||
|
print("done", sand_grains)
|
||||||
|
|
||||||
|
|
||||||
|
def part2(rows):
|
||||||
|
def get_next(sand):
|
||||||
|
next_y = sand[0]+1
|
||||||
|
dl = sand[1]-1
|
||||||
|
d = sand[1]
|
||||||
|
dr = sand[1]+1
|
||||||
|
return next_y, (dl,d,dr)
|
||||||
|
def check_air(y,x):
|
||||||
|
if y == floor:
|
||||||
|
return False
|
||||||
|
if (y,x) in walls:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
lines = get_lines(rows)
|
||||||
|
(minY,maxY), (minX,maxX) = find_bounds(lines)
|
||||||
|
walls = set()
|
||||||
|
for line in lines:
|
||||||
|
for x in range(len(line)-1):
|
||||||
|
coords = matrix.coords_between_points(line[x], line[x+1])
|
||||||
|
for c in coords:
|
||||||
|
walls.add(c)
|
||||||
|
for y,x in walls:
|
||||||
|
walls.add((y,x))
|
||||||
|
floor = maxY + 2
|
||||||
|
|
||||||
|
sand_grains = -1
|
||||||
|
while True:
|
||||||
|
sand_grains += 1
|
||||||
|
sand = [0,500]
|
||||||
|
if tuple(sand) in walls:
|
||||||
|
print("done", sand_grains)
|
||||||
|
break
|
||||||
|
while True:
|
||||||
|
next_y, (dl, d, dr) = get_next(sand)
|
||||||
|
if check_air(next_y, d):
|
||||||
|
sand[0] = next_y
|
||||||
|
elif check_air(next_y,dl):
|
||||||
|
sand[0] = next_y
|
||||||
|
sand[1] = dl
|
||||||
|
elif check_air(next_y, dr):
|
||||||
|
sand[0] = next_y
|
||||||
|
sand[1] = dr
|
||||||
|
else:
|
||||||
|
walls.add(tuple(sand))
|
||||||
|
break
|
||||||
|
#matrix.view_matrix(mx, 0,minX-1, maxY+3,maxX+2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
rows = [row for row in shared.load_rows(14)]
|
||||||
|
with shared.elapsed_timer() as elapsed:
|
||||||
|
part1(rows)
|
||||||
|
print("🕒", elapsed())
|
||||||
|
with shared.elapsed_timer() as elapsed:
|
||||||
|
part2(rows)
|
||||||
|
print("🕒", elapsed())
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -1,5 +1,6 @@
|
|||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
import math
|
||||||
|
|
||||||
from typing import List, Dict, Tuple
|
from typing import List, Dict, Tuple
|
||||||
|
|
||||||
@ -7,6 +8,12 @@ split_word_to_chr_list = lambda y: [w for w in y]
|
|||||||
split_word_to_int_list = lambda y: [int(w) for w in y]
|
split_word_to_int_list = lambda y: [int(w) for w in y]
|
||||||
split_line_to_int_list = lambda y: [int(w) for w in y.split(" ") if w]
|
split_line_to_int_list = lambda y: [int(w) for w in y.split(" ") if w]
|
||||||
|
|
||||||
|
def split_x_out(l):
|
||||||
|
return [x for _,x in l]
|
||||||
|
|
||||||
|
def split_y_out(l):
|
||||||
|
return [y for y,_ in l]
|
||||||
|
|
||||||
|
|
||||||
class colors:
|
class colors:
|
||||||
# HEADER = '\033[95m'
|
# HEADER = '\033[95m'
|
||||||
@ -188,6 +195,39 @@ def line_of_sight(mx, row, col):
|
|||||||
return los
|
return los
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def coords_between_points(point1, point2):
|
||||||
|
y1,x1 = point1
|
||||||
|
y2,x2 = point2
|
||||||
|
|
||||||
|
coords = []
|
||||||
|
x = 0
|
||||||
|
y = 0
|
||||||
|
|
||||||
|
if x2 < x1:
|
||||||
|
y = point1[0]
|
||||||
|
for _x in range(x2, x1+1):
|
||||||
|
coords.append((y,_x))
|
||||||
|
elif x1 < x2:
|
||||||
|
y = point1[0]
|
||||||
|
for _x in range(x1, x2+1):
|
||||||
|
coords.append((y,_x))
|
||||||
|
elif y2 < y1:
|
||||||
|
x = point1[1]
|
||||||
|
for _y in range(y2, y1+1):
|
||||||
|
coords.append((_y,x))
|
||||||
|
elif y1 < y2:
|
||||||
|
x = point1[1]
|
||||||
|
for _y in range(y1, y2+1):
|
||||||
|
coords.append((_y,x))
|
||||||
|
return coords
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_size(matrix):
|
def get_size(matrix):
|
||||||
height = len(matrix)
|
height = len(matrix)
|
||||||
width = len(matrix[0])
|
width = len(matrix[0])
|
||||||
@ -241,13 +281,14 @@ def ppmx(*matrices, pad=True, space=True, zero="."):
|
|||||||
"""
|
"""
|
||||||
print a matrix of anything, Falsy values turns to `.` for clarity
|
print a matrix of anything, Falsy values turns to `.` for clarity
|
||||||
"""
|
"""
|
||||||
|
out = []
|
||||||
if len(matrices) > 1:
|
if len(matrices) > 1:
|
||||||
matrices = list(zip(*matrices))
|
matrices = list(zip(*matrices))
|
||||||
for row in matrices:
|
for row in matrices:
|
||||||
r = []
|
r = []
|
||||||
for col in row:
|
for col in row:
|
||||||
r.append("".join([f"{x or zero}".rjust(3) for x in col]))
|
r.append("".join([f"{x or zero}".rjust(3) for x in col]))
|
||||||
print(" ".join(r))
|
out.append(" ".join(r))
|
||||||
else:
|
else:
|
||||||
for row in matrices:
|
for row in matrices:
|
||||||
for c in row:
|
for c in row:
|
||||||
@ -259,7 +300,17 @@ def ppmx(*matrices, pad=True, space=True, zero="."):
|
|||||||
f = lambda x: f"{x or zero}"
|
f = lambda x: f"{x or zero}"
|
||||||
if space:
|
if space:
|
||||||
f = lambda x: f"{x or zero} "
|
f = lambda x: f"{x or zero} "
|
||||||
print("".join([f(x) for x in c]))
|
out.append("".join([f(x) for x in c]))
|
||||||
|
return "\n".join(out)
|
||||||
|
|
||||||
|
def view_matrix(matrix, y1,x1, y2,x2):
|
||||||
|
print(y1,y2)
|
||||||
|
print(x1,x2)
|
||||||
|
lines = ppmx(matrix, pad=0,space=0).split("\n")
|
||||||
|
for line in lines[y1:y2+1]:
|
||||||
|
print(line[x1:x2])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def highlight(matrix, red=[], green=[], blue=[], blink_green=[]):
|
def highlight(matrix, red=[], green=[], blue=[], blink_green=[]):
|
||||||
|
@ -5,6 +5,9 @@ from pathlib import Path
|
|||||||
spl = lambda y: [int(w) for w in y]
|
spl = lambda y: [int(w) for w in y]
|
||||||
|
|
||||||
|
|
||||||
|
def minmax(l):
|
||||||
|
return min(l),max(l)
|
||||||
|
|
||||||
def load_rows(day):
|
def load_rows(day):
|
||||||
return [row for row in load(day)]
|
return [row for row in load(day)]
|
||||||
|
|
||||||
|
2
2022/samples/day14.txt
Normal file
2
2022/samples/day14.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
498,4 -> 498,6 -> 496,6
|
||||||
|
503,4 -> 502,4 -> 502,9 -> 494,9
|
@ -5,3 +5,4 @@ numpy
|
|||||||
pandas
|
pandas
|
||||||
scanf
|
scanf
|
||||||
scikit-image
|
scikit-image
|
||||||
|
dijkstar
|
||||||
|
Loading…
Reference in New Issue
Block a user