From b29945625a944302e96488612c36e3228e51e1c9 Mon Sep 17 00:00:00 2001 From: Andrew Ekstedt Date: Tue, 9 Dec 2025 05:14:57 +0000 Subject: [PATCH] day 9 part 1 --- day09/input | 496 +++++++++++++++++++++++++++++++++++++++++++++++++++ day09/sample | 8 + day09/sol.py | 22 +++ 3 files changed, 526 insertions(+) create mode 100644 day09/input create mode 100644 day09/sample create mode 100644 day09/sol.py diff --git a/day09/input b/day09/input new file mode 100644 index 0000000..7569d88 --- /dev/null +++ b/day09/input @@ -0,0 +1,496 @@ +98292,50082 +98292,51299 +98041,51299 +98041,52512 +97933,52512 +97933,53729 +97891,53729 +97891,54958 +97948,54958 +97948,56123 +97437,56123 +97437,57349 +97434,57349 +97434,58625 +97658,58625 +97658,59815 +97354,59815 +97354,61007 +97068,61007 +97068,62109 +96444,62109 +96444,63237 +95967,63237 +95967,64422 +95696,64422 +95696,65722 +95742,65722 +95742,66911 +95424,66911 +95424,67730 +94169,67730 +94169,69128 +94366,69128 +94366,70025 +93389,70025 +93389,71338 +93314,71338 +93314,72103 +92139,72103 +92139,73287 +91787,73287 +91787,74514 +91481,74514 +91481,75422 +90632,75422 +90632,76704 +90368,76704 +90368,77568 +89464,77568 +89464,78483 +88650,78483 +88650,79236 +87637,79236 +87637,80655 +87465,80655 +87465,81115 +86119,81115 +86119,82571 +85928,82571 +85928,83239 +84848,83239 +84848,84347 +84231,84347 +84231,84722 +82893,84722 +82893,85694 +82138,85694 +82138,86215 +80982,86215 +80982,87023 +80083,87023 +80083,87874 +79213,87874 +79213,88861 +78434,88861 +78434,89490 +77386,89490 +77386,90035 +76288,90035 +76288,90659 +75247,90659 +75247,91834 +74530,91834 +74530,91663 +73032,91663 +73032,92769 +72247,92769 +72247,93129 +71065,93129 +71065,93719 +69997,93719 +69997,94601 +69050,94601 +69050,94483 +67680,94483 +67680,94626 +66441,94626 +66441,95786 +65563,95786 +65563,95363 +64148,95363 +64148,96153 +63120,96153 +63120,96752 +62020,96752 +62020,96319 +60665,96319 +60665,96704 +59514,96704 +59514,96954 +58333,96954 +58333,97717 +57226,97717 +57226,97419 +55957,97419 +55957,97683 +54766,97683 +54766,97392 +53527,97392 +53527,97506 +52328,97506 +52328,97750 +51128,97750 +51128,97884 +49918,97884 +49918,98455 +48689,98455 +48689,97950 +47486,97950 +47486,97626 +46291,97626 +46291,97900 +45046,97900 +45046,97981 +43806,97981 +43806,97693 +42610,97693 +42610,97475 +41407,97475 +41407,96948 +40268,96948 +40268,96341 +39162,96341 +39162,95987 +38009,95987 +38009,96196 +36696,96196 +36696,95887 +35516,95887 +35516,94958 +34547,94958 +34547,95161 +33186,95161 +33186,94474 +32146,94474 +32146,93686 +31164,93686 +31164,93591 +29880,93591 +29880,93365 +28636,93365 +28636,92868 +27514,92868 +27514,91996 +26595,91996 +26595,91248 +25623,91248 +25623,90405 +24719,90405 +24719,89965 +23562,89965 +23562,89216 +22605,89216 +22605,88794 +21410,88794 +21410,87854 +20595,87854 +20595,87135 +19614,87135 +19614,86044 +18949,86044 +18949,85497 +17819,85497 +17819,84807 +16800,84807 +16800,83553 +16331,83553 +16331,83087 +15072,83087 +15072,81979 +14481,81979 +14481,81230 +13494,81230 +13494,80364 +12631,80364 +12631,79438 +11834,79438 +11834,78320 +11294,78320 +11294,77350 +10561,77350 +10561,76275 +9983,76275 +9983,75427 +9049,75427 +9049,74517 +8187,74517 +8187,73207 +8020,73207 +8020,71987 +7731,71987 +7731,71263 +6464,71263 +6464,70095 +6066,70095 +6066,68916 +5711,68916 +5711,67727 +5399,67727 +5399,66691 +4694,66691 +4694,65298 +4992,65298 +4992,64223 +4395,64223 +4395,63008 +4243,63008 +4243,61887 +3762,61887 +3762,60810 +3049,60810 +3049,59627 +2745,59627 +2745,58451 +2377,58451 +2377,57232 +2245,57232 +2245,55998 +2255,55998 +2255,54788 +2103,54788 +2103,53599 +1645,53599 +1645,52353 +1980,52353 +1980,51122 +2484,51122 +2484,50076 +94607,50076 +94607,48713 +2419,48713 +2419,47502 +2367,47502 +2367,46305 +2556,46305 +2556,45069 +2319,45069 +2319,43868 +2503,43868 +2503,42604 +2271,42604 +2271,41378 +2366,41378 +2366,40243 +2932,40243 +2932,39158 +3637,39158 +3637,37993 +3952,37993 +3952,36700 +3817,36700 +3817,35502 +4067,35502 +4067,34405 +4628,34405 +4628,33233 +4965,33233 +4965,32219 +5706,32219 +5706,30966 +5853,30966 +5853,30059 +6796,30059 +6796,28764 +6895,28764 +6895,27555 +7210,27555 +7210,26525 +7877,26525 +7877,25807 +9062,25807 +9062,24416 +9111,24416 +9111,23301 +9639,23301 +9639,22495 +10627,22495 +10627,21248 +10985,21248 +10985,20458 +11969,20458 +11969,19850 +13153,19850 +13153,18527 +13465,18527 +13465,17780 +14460,17780 +14460,16736 +15125,16736 +15125,16113 +16229,16113 +16229,15375 +17198,15375 +17198,14067 +17646,14067 +17646,13204 +18520,13204 +18520,12766 +19745,12766 +19745,11706 +20463,11706 +20463,11476 +21812,11476 +21812,10306 +22472,10306 +22472,9799 +23603,9799 +23603,9481 +24840,9481 +24840,8594 +25721,8594 +25721,8321 +26959,8321 +26959,7306 +27791,7306 +27791,6632 +28818,6632 +28818,6289 +30006,6289 +30006,5752 +31101,5752 +31101,5616 +32358,5616 +32358,4838 +33361,4838 +33361,4326 +34475,4326 +34475,4414 +35782,4414 +35782,3495 +36779,3495 +36779,3373 +38012,3373 +38012,2815 +39135,2815 +39135,3440 +40514,3440 +40514,2709 +41607,2709 +41607,2818 +42854,2818 +42854,1922 +43960,1922 +43960,1884 +45189,1884 +45189,2138 +46437,2138 +46437,2264 +47660,2264 +47660,1956 +48864,1956 +48864,1579 +50082,1579 +50082,1956 +51299,1956 +51299,1669 +52533,1669 +52533,1656 +53764,1656 +53764,2349 +54927,2349 +54927,2193 +56171,2193 +56171,3042 +57275,3042 +57275,2822 +58538,2822 +58538,2858 +59771,2858 +59771,3154 +60954,3154 +60954,3953 +62006,3953 +62006,4034 +63237,4034 +63237,4422 +64385,4422 +64385,4471 +65649,4471 +65649,5053 +66733,5053 +66733,5422 +67894,5422 +67894,5800 +69056,5800 +69056,6313 +70162,6313 +70162,6949 +71208,6949 +71208,7281 +72406,7281 +72406,8118 +73339,8118 +73339,8878 +74301,8878 +74301,9110 +75583,9110 +75583,9760 +76618,9760 +76618,10542 +77562,10542 +77562,11459 +78402,11459 +78402,11839 +79642,11839 +79642,12591 +80609,12591 +80609,13867 +81126,13867 +81126,14279 +82382,14279 +82382,15350 +83049,15350 +83049,15940 +84176,15940 +84176,16870 +84971,16870 +84971,17882 +85671,17882 +85671,18636 +86660,18636 +86660,19524 +87505,19524 +87505,20842 +87801,20842 +87801,21454 +89013,21454 +89013,22634 +89459,22634 +89459,23916 +89724,23916 +89724,24675 +90783,24675 +90783,25871 +91149,25871 +91149,26864 +91850,26864 +91850,27747 +92777,27747 +92777,29088 +92815,29088 +92815,29845 +94062,29845 +94062,31020 +94436,31020 +94436,32266 +94616,32266 +94616,33501 +94782,33501 +94782,34499 +95601,34499 +95601,35767 +95634,35767 +95634,36965 +95849,36965 +95849,38021 +96591,38021 +96591,39160 +97075,39160 +97075,40461 +96820,40461 +96820,41594 +97362,41594 +97362,42761 +97798,42761 +97798,44061 +97274,44061 +97274,45271 +97302,45271 +97302,46441 +97806,46441 +97806,47663 +97683,47663 +97683,48874 +97612,48874 +97612,50082 diff --git a/day09/sample b/day09/sample new file mode 100644 index 0000000..c8563ea --- /dev/null +++ b/day09/sample @@ -0,0 +1,8 @@ +7,1 +11,1 +11,7 +9,7 +9,5 +2,5 +2,3 +7,3 diff --git a/day09/sol.py b/day09/sol.py new file mode 100644 index 0000000..dd85c3f --- /dev/null +++ b/day09/sol.py @@ -0,0 +1,22 @@ +from math import dist +def solve(input): + points = [] + for line in open(input): + x,y = map(int, line.strip().split(",")) + points.append((x,y)) + + def areas(): + for p in points: + for q in points: + if p != q: + yield area(p,q) + + print(max(areas())) + +def area(p,q): + dx = abs(p[0] - q[0]) + 1 + dy = abs(p[1] - q[1]) + 1 + return dx*dy + +solve("sample") +solve("input")