Day14
This commit is contained in:
183
day14/input.txt
Normal file
183
day14/input.txt
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
525,75 -> 525,77 -> 517,77 -> 517,83 -> 532,83 -> 532,77 -> 531,77 -> 531,75
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
513,169 -> 518,169
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
510,34 -> 514,34
|
||||||
|
530,86 -> 530,87 -> 543,87 -> 543,86
|
||||||
|
517,150 -> 521,150
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
501,177 -> 506,177
|
||||||
|
505,115 -> 505,119 -> 502,119 -> 502,126 -> 514,126 -> 514,119 -> 510,119 -> 510,115
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
511,52 -> 516,52
|
||||||
|
505,115 -> 505,119 -> 502,119 -> 502,126 -> 514,126 -> 514,119 -> 510,119 -> 510,115
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
504,30 -> 508,30
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
523,150 -> 527,150
|
||||||
|
525,175 -> 530,175
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
525,75 -> 525,77 -> 517,77 -> 517,83 -> 532,83 -> 532,77 -> 531,77 -> 531,75
|
||||||
|
532,52 -> 537,52
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
525,75 -> 525,77 -> 517,77 -> 517,83 -> 532,83 -> 532,77 -> 531,77 -> 531,75
|
||||||
|
505,115 -> 505,119 -> 502,119 -> 502,126 -> 514,126 -> 514,119 -> 510,119 -> 510,115
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
502,103 -> 502,105 -> 498,105 -> 498,112 -> 507,112 -> 507,105 -> 504,105 -> 504,103
|
||||||
|
510,30 -> 514,30
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
511,150 -> 515,150
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
514,147 -> 518,147
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
511,175 -> 516,175
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
507,32 -> 511,32
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
505,115 -> 505,119 -> 502,119 -> 502,126 -> 514,126 -> 514,119 -> 510,119 -> 510,115
|
||||||
|
508,177 -> 513,177
|
||||||
|
502,103 -> 502,105 -> 498,105 -> 498,112 -> 507,112 -> 507,105 -> 504,105 -> 504,103
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
515,177 -> 520,177
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
521,49 -> 526,49
|
||||||
|
520,153 -> 524,153
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
507,49 -> 512,49
|
||||||
|
518,175 -> 523,175
|
||||||
|
505,115 -> 505,119 -> 502,119 -> 502,126 -> 514,126 -> 514,119 -> 510,119 -> 510,115
|
||||||
|
514,49 -> 519,49
|
||||||
|
521,173 -> 526,173
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
495,32 -> 499,32
|
||||||
|
504,34 -> 508,34
|
||||||
|
510,171 -> 515,171
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
514,129 -> 514,133 -> 507,133 -> 507,141 -> 518,141 -> 518,133 -> 517,133 -> 517,129
|
||||||
|
517,71 -> 517,72 -> 527,72 -> 527,71
|
||||||
|
514,129 -> 514,133 -> 507,133 -> 507,141 -> 518,141 -> 518,133 -> 517,133 -> 517,129
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
526,153 -> 530,153
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
525,75 -> 525,77 -> 517,77 -> 517,83 -> 532,83 -> 532,77 -> 531,77 -> 531,75
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
507,68 -> 507,69 -> 523,69
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
513,32 -> 517,32
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
502,103 -> 502,105 -> 498,105 -> 498,112 -> 507,112 -> 507,105 -> 504,105 -> 504,103
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
516,40 -> 521,40
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
520,36 -> 520,37 -> 528,37 -> 528,36
|
||||||
|
498,34 -> 502,34
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
514,129 -> 514,133 -> 507,133 -> 507,141 -> 518,141 -> 518,133 -> 517,133 -> 517,129
|
||||||
|
498,30 -> 502,30
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
504,175 -> 509,175
|
||||||
|
502,103 -> 502,105 -> 498,105 -> 498,112 -> 507,112 -> 507,105 -> 504,105 -> 504,103
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
510,46 -> 515,46
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
520,36 -> 520,37 -> 528,37 -> 528,36
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
514,129 -> 514,133 -> 507,133 -> 507,141 -> 518,141 -> 518,133 -> 517,133 -> 517,129
|
||||||
|
516,34 -> 520,34
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
525,75 -> 525,77 -> 517,77 -> 517,83 -> 532,83 -> 532,77 -> 531,77 -> 531,75
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
514,173 -> 519,173
|
||||||
|
492,34 -> 496,34
|
||||||
|
525,52 -> 530,52
|
||||||
|
502,103 -> 502,105 -> 498,105 -> 498,112 -> 507,112 -> 507,105 -> 504,105 -> 504,103
|
||||||
|
507,68 -> 507,69 -> 523,69
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
520,36 -> 520,37 -> 528,37 -> 528,36
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
505,115 -> 505,119 -> 502,119 -> 502,126 -> 514,126 -> 514,119 -> 510,119 -> 510,115
|
||||||
|
507,173 -> 512,173
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
504,52 -> 509,52
|
||||||
|
502,103 -> 502,105 -> 498,105 -> 498,112 -> 507,112 -> 507,105 -> 504,105 -> 504,103
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
517,71 -> 517,72 -> 527,72 -> 527,71
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
524,46 -> 529,46
|
||||||
|
508,153 -> 512,153
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
530,86 -> 530,87 -> 543,87 -> 543,86
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
504,26 -> 508,26
|
||||||
|
514,129 -> 514,133 -> 507,133 -> 507,141 -> 518,141 -> 518,133 -> 517,133 -> 517,129
|
||||||
|
522,177 -> 527,177
|
||||||
|
525,75 -> 525,77 -> 517,77 -> 517,83 -> 532,83 -> 532,77 -> 531,77 -> 531,75
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
514,129 -> 514,133 -> 507,133 -> 507,141 -> 518,141 -> 518,133 -> 517,133 -> 517,129
|
||||||
|
517,46 -> 522,46
|
||||||
|
507,28 -> 511,28
|
||||||
|
514,153 -> 518,153
|
||||||
|
517,144 -> 521,144
|
||||||
|
517,71 -> 517,72 -> 527,72 -> 527,71
|
||||||
|
525,75 -> 525,77 -> 517,77 -> 517,83 -> 532,83 -> 532,77 -> 531,77 -> 531,75
|
||||||
|
514,129 -> 514,133 -> 507,133 -> 507,141 -> 518,141 -> 518,133 -> 517,133 -> 517,129
|
||||||
|
520,147 -> 524,147
|
||||||
|
530,86 -> 530,87 -> 543,87 -> 543,86
|
||||||
|
518,52 -> 523,52
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
517,171 -> 522,171
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
505,115 -> 505,119 -> 502,119 -> 502,126 -> 514,126 -> 514,119 -> 510,119 -> 510,115
|
||||||
|
497,166 -> 497,165 -> 497,166 -> 499,166 -> 499,160 -> 499,166 -> 501,166 -> 501,157 -> 501,166 -> 503,166 -> 503,163 -> 503,166 -> 505,166 -> 505,164 -> 505,166 -> 507,166 -> 507,162 -> 507,166 -> 509,166 -> 509,157 -> 509,166 -> 511,166 -> 511,162 -> 511,166 -> 513,166 -> 513,162 -> 513,166 -> 515,166 -> 515,163 -> 515,166
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
528,49 -> 533,49
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
|
529,177 -> 534,177
|
||||||
|
501,32 -> 505,32
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
501,28 -> 505,28
|
||||||
|
493,23 -> 493,15 -> 493,23 -> 495,23 -> 495,15 -> 495,23 -> 497,23 -> 497,19 -> 497,23 -> 499,23 -> 499,17 -> 499,23 -> 501,23 -> 501,17 -> 501,23 -> 503,23 -> 503,14 -> 503,23 -> 505,23 -> 505,16 -> 505,23
|
||||||
|
502,103 -> 502,105 -> 498,105 -> 498,112 -> 507,112 -> 507,105 -> 504,105 -> 504,103
|
||||||
|
535,100 -> 535,93 -> 535,100 -> 537,100 -> 537,92 -> 537,100 -> 539,100 -> 539,99 -> 539,100 -> 541,100 -> 541,96 -> 541,100 -> 543,100 -> 543,92 -> 543,100 -> 545,100 -> 545,97 -> 545,100 -> 547,100 -> 547,95 -> 547,100 -> 549,100 -> 549,93 -> 549,100 -> 551,100 -> 551,90 -> 551,100
|
||||||
|
513,43 -> 518,43
|
||||||
|
520,43 -> 525,43
|
||||||
|
505,65 -> 505,58 -> 505,65 -> 507,65 -> 507,55 -> 507,65 -> 509,65 -> 509,60 -> 509,65 -> 511,65 -> 511,56 -> 511,65 -> 513,65 -> 513,62 -> 513,65
|
||||||
BIN
day14/sand
Executable file
BIN
day14/sand
Executable file
Binary file not shown.
149
day14/sand.c
Normal file
149
day14/sand.c
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define BUFFER_SIZE 512
|
||||||
|
#define MAX_ROCK_NUMBER 16*1024
|
||||||
|
#define FLOOR_OFFSET 2
|
||||||
|
#define EDGE_BUFFER 256
|
||||||
|
#define min(a, b) (a <= b ? a : b)
|
||||||
|
#define max(a, b) (a >= b ? a : b)
|
||||||
|
// Use this setting to switch between task 1 and task 2
|
||||||
|
#define ENABLE_FLOOR 1
|
||||||
|
|
||||||
|
typedef struct point {
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
} POINT;
|
||||||
|
|
||||||
|
void buildPath(POINT, POINT, POINT*, int*);
|
||||||
|
POINT nextFall(int, int *[*], POINT);
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
char buf[BUFFER_SIZE], *p, c;
|
||||||
|
memset(buf, 0, BUFFER_SIZE);
|
||||||
|
p = buf;
|
||||||
|
POINT bedrock[MAX_ROCK_NUMBER], prev, curr;
|
||||||
|
int bedrock_count = 0;
|
||||||
|
int maxX = 0, maxY = 0, x, y;
|
||||||
|
|
||||||
|
// Read input
|
||||||
|
while ((c = getchar()) != EOF) {
|
||||||
|
*p++ = c;
|
||||||
|
if (c == '\n') {
|
||||||
|
p = buf;
|
||||||
|
sscanf(p, "%i,%i", &x, &y);
|
||||||
|
prev.x = x;
|
||||||
|
prev.y = y;
|
||||||
|
while (*p++ != ' ') {}
|
||||||
|
while(*p != 0) {
|
||||||
|
sscanf(p, "-> %i,%i", &x, &y);
|
||||||
|
if (x > maxX) maxX = x;
|
||||||
|
if (y > maxY) maxY = y;
|
||||||
|
curr.x = x;
|
||||||
|
curr.y = y;
|
||||||
|
|
||||||
|
buildPath(prev, curr, bedrock, &bedrock_count);
|
||||||
|
|
||||||
|
prev.x = x;
|
||||||
|
prev.y = y;
|
||||||
|
while (*p++ != ' ') {}
|
||||||
|
while (*p != ' ' && *p != 0) p++;
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(buf, 0, BUFFER_SIZE);
|
||||||
|
p = buf;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
POINT source = { .x = 500, .y = 0 }, sand;
|
||||||
|
|
||||||
|
// Allocate memory for the map
|
||||||
|
int **map = (int**)malloc((maxX + 1 + EDGE_BUFFER) * sizeof(int*));
|
||||||
|
for (int i = 0; i < maxX + 1 + EDGE_BUFFER; i++) {
|
||||||
|
map[i] = (int*)malloc((maxY + FLOOR_OFFSET) * sizeof(int));
|
||||||
|
memset(map[i], 0, (maxY + FLOOR_OFFSET) * sizeof(int));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fill in the map with bedrock
|
||||||
|
for (int i = 0; i < bedrock_count; i++) {
|
||||||
|
map[bedrock[i].x][bedrock[i].y] = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int fallthrough = 0, sum = 0;
|
||||||
|
POINT fallPosition;
|
||||||
|
|
||||||
|
// Play until sand falls through
|
||||||
|
while (!fallthrough) {
|
||||||
|
// Simulate each sand
|
||||||
|
sand.x = source.x;
|
||||||
|
sand.y = source.y;
|
||||||
|
|
||||||
|
do {
|
||||||
|
fallPosition = nextFall(maxY + FLOOR_OFFSET, map, sand);
|
||||||
|
|
||||||
|
// We fell through the map
|
||||||
|
if (fallPosition.x == -2) {
|
||||||
|
fallthrough = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We hit bedrock
|
||||||
|
if (fallPosition.x == -1) {
|
||||||
|
sum += 1;
|
||||||
|
map[sand.x][sand.y] = 2;
|
||||||
|
// Source gets clogged
|
||||||
|
if (sand.x == source.x && sand.y == source.y) {
|
||||||
|
fallthrough = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sand = fallPosition;
|
||||||
|
} while(fallPosition.x != -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("%i\n", sum);
|
||||||
|
}
|
||||||
|
|
||||||
|
void buildPath(POINT prev, POINT curr, POINT* bedrock, int* bedrock_count) {
|
||||||
|
if (prev.x != curr.x) {
|
||||||
|
for (int i = min(prev.x, curr.x); i <= max(prev.x, curr.x); i++) {
|
||||||
|
bedrock[*bedrock_count].x = i;
|
||||||
|
bedrock[*bedrock_count].y = prev.y;
|
||||||
|
(*bedrock_count)++;
|
||||||
|
}
|
||||||
|
} else if (prev.y != curr.y) {
|
||||||
|
for (int i = min(prev.y, curr.y); i <= max(prev.y, curr.y); i++) {
|
||||||
|
bedrock[*bedrock_count].x = prev.x;
|
||||||
|
bedrock[*bedrock_count].y = i;
|
||||||
|
(*bedrock_count)++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
POINT nextFall(int mapHeight, int *map[mapHeight], POINT point) {
|
||||||
|
POINT end = { .x = -1, .y = -1 };
|
||||||
|
|
||||||
|
if (point.y == mapHeight - FLOOR_OFFSET && !ENABLE_FLOOR) {
|
||||||
|
// Fall out of the map
|
||||||
|
end.x = -2;
|
||||||
|
end.y = -2;
|
||||||
|
} else if (ENABLE_FLOOR && point.y == mapHeight - 1) {
|
||||||
|
// Fall on floor
|
||||||
|
} else if (map[point.x][point.y+1] == 0) {
|
||||||
|
// Fall straight down
|
||||||
|
end.x = point.x;
|
||||||
|
end.y = point.y + 1;
|
||||||
|
} else if (map[point.x - 1][point.y + 1] == 0) {
|
||||||
|
// Fall left down
|
||||||
|
end.x = point.x - 1;
|
||||||
|
end.y = point.y + 1;
|
||||||
|
} else if (map[point.x + 1][point.y + 1] == 0) {
|
||||||
|
// Fall right down
|
||||||
|
end.x = point.x + 1;
|
||||||
|
end.y = point.y + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return end;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user