diff --git a/app/Main.hs b/app/Main.hs index e2b1f8b..26623c4 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -30,4 +30,4 @@ import qualified Day24 import qualified Day25 main :: IO () -main = Day22.main +main = Day23.main diff --git a/input/23.txt b/input/23.txt new file mode 100644 index 0000000..f20734b --- /dev/null +++ b/input/23.txt @@ -0,0 +1,1000 @@ +pos=<23164544,79451234,30509902>, r=54437991 +pos=<2799041,-7484132,59103533>, r=87235008 +pos=<44946050,21451316,73783474>, r=77013747 +pos=<-16388364,44066053,58860052>, r=84337493 +pos=<86275917,25191838,57427794>, r=98247461 +pos=<-16900295,43257762,35332403>, r=60513446 +pos=<47712346,-29350385,40165642>, r=96963895 +pos=<33693011,-39183858,38970505>, r=91583213 +pos=<39663099,25316785,26251408>, r=65184548 +pos=<4252809,-11136986,45553598>, r=75884298 +pos=<71810576,17492391,8562068>, r=80733246 +pos=<45936401,55825824,37147202>, r=60221764 +pos=<60653032,25456422,74086227>, r=89018705 +pos=<5013196,-32139081,45636921>, r=96209109 +pos=<55054996,13713718,62415802>, r=83492626 +pos=<73408668,18713671,35409351>, r=69840030 +pos=<79953451,23857885,33862351>, r=69693403 +pos=<-13562530,-12448898,33486842>, r=82944521 +pos=<60387233,9155357,20667028>, r=65542089 +pos=<42734481,9940018,42051635>, r=54581685 +pos=<94081000,30353117,39455974>, r=85202399 +pos=<23210832,90891467,2897823>, r=87758387 +pos=<28514445,65100950,60583243>, r=75511020 +pos=<15674269,28046313,39472821>, r=57174176 +pos=<48521176,2057055,67058891>, r=93258505 +pos=<-26400577,27709657,52890356>, r=75027461 +pos=<36028694,10159695,65602072>, r=71206554 +pos=<38282230,12904659,61971770>, r=67085073 +pos=<731689,58702145,73841691>, r=96835709 +pos=<40439575,24382674,-4327134>, r=55361090 +pos=<27484749,-15707354,14685982>, r=63483250 +pos=<72454502,26539575,35351426>, r=61001857 +pos=<79523770,20732094,-2802806>, r=96571516 +pos=<70036038,15998400,53318111>, r=87091271 +pos=<53886114,37820550,17575939>, r=50684581 +pos=<76534325,13614608,54850848>, r=97506366 +pos=<49059043,-15493763,36173847>, r=80462243 +pos=<44736717,63498133,31282270>, r=60829410 +pos=<51248784,54788891,24378208>, r=58213298 +pos=<24151407,24110093,90181058>, r=69957889 +pos=<13179549,11785865,38582763>, r=73340854 +pos=<14698769,9747806,56662381>, r=55662184 +pos=<17288371,-10962007,38683533>, r=55803437 +pos=<25735476,3850957,-10644433>, r=67506603 +pos=<67619018,3979446,36178732>, r=79554035 +pos=<-9850665,26240653,65207377>, r=72263592 +pos=<2338822,23834156,71880451>, r=69153912 +pos=<38333948,63486101,31064512>, r=54197236 +pos=<25274320,8002980,57287130>, r=54294139 +pos=<25534066,-1555777,52766306>, r=59591792 +pos=<44550347,31271324,-5742816>, r=58118401 +pos=<75043165,59765618,38885640>, r=95006722 +pos=<10504222,26251148,102744345>, r=89435381 +pos=<79612039,23890392,22253888>, r=68445316 +pos=<30769273,17047975,75439175>, r=68895963 +pos=<49434684,859696,-6820170>, r=90372184 +pos=<68812504,7819804,53185531>, r=93913766 +pos=<80877050,27833479,24342140>, r=63678739 +pos=<50340664,19587714,40601164>, r=51089604 +pos=<33864839,21829302,69657967>, r=61429318 +pos=<106268844,54394279,137973444>, r=52495165 +pos=<31352238,-13356533,18238500>, r=61447318 +pos=<217700683,23303241,29626645>, r=68631725 +pos=<86172304,35245875,31753469>, r=74484058 +pos=<37653575,20882272,53658461>, r=50165263 +pos=<235891894,27759826,29942454>, r=55299403 +pos=<43562277,27520079,-1720296>, r=52739534 +pos=<40976365,-21297498,41656496>, r=83665846 +pos=<51056237,27433818,70499837>, r=73857876 +pos=<93153815,24694688,29047727>, r=77242379 +pos=<62824880,24770282,-7728127>, r=80759763 +pos=<78003055,28173117,35754784>, r=65320367 +pos=<49716625,71097816,34108968>, r=76235942 +pos=<75009501,10212121,42319416>, r=86852369 +pos=<42096257,-351610,44365777>, r=66549187 +pos=<27462534,-7290809,55778431>, r=70267285 +pos=<107731869,32880768,25717453>, r=91449219 +pos=<54379860,20104283,49621070>, r=63632142 +pos=<-16795797,32426078,-17008661>, r=86495158 +pos=<61976372,7033238,39721036>, r=74399673 +pos=<33671303,-4746842,49908451>, r=68062139 +pos=<87938799,42362179,40304372>, r=91917772 +pos=<55743597,3541392,30588983>, r=62526863 +pos=<38133578,16052526,68312007>, r=70128676 +pos=<23166624,-4137219,45394223>, r=52433709 +pos=<-11216058,-1830461,48187379>, r=84680236 +pos=<68115705,27638309,43344226>, r=63557195 +pos=<54169505,8429628,24072053>, r=56644840 +pos=<12824002,56202756,47541801>, r=55943609 +pos=<65919260,2978407,39201122>, r=81877513 +pos=<45617534,30310043,61337022>, r=58576957 +pos=<-20552852,14228436,-5738248>, r=90750661 +pos=<5357851,23987827,30042212>, r=56090687 +pos=<50139207,13360894,50191748>, r=66705990 +pos=<48441984,15538263,80938103>, r=93577322 +pos=<-53876862,27030268,31883712>, r=82176699 +pos=<46486765,-9514484,10135829>, r=80842463 +pos=<56104317,46048758,31099922>, r=54565459 +pos=<50518637,11351842,57276150>, r=76178548 +pos=<37336335,-123750954,-17478182>, r=88183987 +pos=<32888585,60486997,43894959>, r=58582855 +pos=<55101596,3776414,50245687>, r=81306363 +pos=<33705802,110159,46413668>, r=59744947 +pos=<2749602,9932934,48056016>, r=58819808 +pos=<39312605,28157283,35349986>, r=61903665 +pos=<-49419302,24002623,30485831>, r=79348740 +pos=<54450466,23169098,46714159>, r=57731223 +pos=<42154622,-3880459,44500237>, r=70270833 +pos=<25425181,-14848909,29911827>, r=49921419 +pos=<60367334,24941513,38234475>, r=53395796 +pos=<11824746,54630734,44139446>, r=51968421 +pos=<69644336,23414800,44350329>, r=70315394 +pos=<-29045727,50387617,28916981>, r=73373618 +pos=<30688881,34739749,82880701>, r=69621789 +pos=<59288693,8140233,61913825>, r=92797865 +pos=<7545255,-11404782,50789347>, r=78095058 +pos=<-2934432,18620686,-2364066>, r=65365558 +pos=<85718322,26268742,36786086>, r=75971156 +pos=<62263291,39896275,22331873>, r=56381517 +pos=<32244490,25243594,40145616>, r=93969421 +pos=<19499955,27621819,-57793076>, r=89359066 +pos=<44373221,22977448,32886433>, r=98128021 +pos=<-33515224,13038322,25864385>, r=73300243 +pos=<48634991,-3188558,43468975>, r=75028014 +pos=<88579153,25305141,29033461>, r=72043415 +pos=<68743377,24858423,34876477>, r=58497321 +pos=<23563433,17451158,77829593>, r=63677350 +pos=<13709311,-23320558,44999410>, r=78056840 +pos=<23315896,17307010,84064337>, r=69808717 +pos=<109136202,31904861,31492639>, r=93846235 +pos=<55573471,26878464,42122327>, r=50552863 +pos=<37287077,35490920,-32862526>, r=82194591 +pos=<1591556,-15234420,46841747>, r=83931027 +pos=<51077584,69690494,29894963>, r=71975543 +pos=<77804807,14432043,34053331>, r=77161809 +pos=<29166336,26878265,47674026>, r=69015857 +pos=<70865411,17257456,34470595>, r=67814445 +pos=<-22912473,13025403,33785955>, r=67119215 +pos=<75662302,22439457,29238700>, r=62197030 +pos=<93053459,27957670,173123606>, r=88813036 +pos=<56083087,435213,32728534>, r=68112233 +pos=<-16859554,23559102,40160847>, r=56907924 +pos=<-55802313,30604515,28767731>, r=80197588 +pos=<75120784,15057450,5955176>, r=89085312 +pos=<27632834,21183076,76704128>, r=62889432 +pos=<82770734,3311377,23954147>, r=90482240 +pos=<98995124,24848344,32237538>, r=86119900 +pos=<23019269,9673717,28618005>, r=97555021 +pos=<79033839,23635467,24857990>, r=65517487 +pos=<32311292,-1290774,53871619>, r=67209167 +pos=<-1612980,-14093631,52100759>, r=91253817 +pos=<51539386,22153736,41837309>, r=50958552 +pos=<-65486097,24857191,31857908>, r=95933193 +pos=<43685703,-4798928,42615478>, r=70835599 +pos=<-10674473,33033148,9055745>, r=54916441 +pos=<-20811626,1532660,56722361>, r=99447519 +pos=<64649820,19942055,31819100>, r=56262483 +pos=<-32449860,14863792,34272379>, r=75304639 +pos=<75773092,1087536,24284804>, r=85378209 +pos=<39196722,20150756,65188821>, r=63970679 +pos=<24914046,10252010,56092292>, r=50489810 +pos=<48952751,30929397,66672961>, r=67867393 +pos=<-57942064,21676200,25618259>, r=89335801 +pos=<-269936,24107536,31537962>, r=81612966 +pos=<39555470,18482029,62671791>, r=63481061 +pos=<57063211,-4838284,46083188>, r=87720206 +pos=<51565844,22835327,56862320>, r=65328452 +pos=<57994367,25988657,42324301>, r=54065604 +pos=<36518509,-31056777,42635501>, r=89946313 +pos=<55256167,-23445367,25049570>, r=88628981 +pos=<106707551,26254433,26216913>, r=89213397 +pos=<45814302,19159955,69305407>, r=75695262 +pos=<12896671,632487,40680862>, r=50598290 +pos=<90754318,24838715,29870897>, r=75522107 +pos=<61328471,15181473,38102633>, r=63985164 +pos=<93069338,21461695,19162003>, r=87422661 +pos=<62753620,13313636,47689865>, r=76865564 +pos=<68280070,23724644,31235357>, r=55526353 +pos=<42814123,-3986409,51737561>, r=78273601 +pos=<23942426,-13011580,37891256>, r=54580997 +pos=<-33807575,40001465,56726287>, r=95558334 +pos=<41198775,25665584,97228908>, r=92498017 +pos=<-22497017,-9464473,11667979>, r=98981276 +pos=<32175973,26917081,24955071>, r=55453677 +pos=<74340374,27336173,38293279>, r=65033165 +pos=<18544495,18119479,64766494>, r=51548912 +pos=<74822964,25501820,25467975>, r=58830191 +pos=<27446020,-31374080,40050054>, r=78605858 +pos=<9312732,17850323,-27865868>, r=79390546 +pos=<45676422,-13715818,10653268>, r=83716376 +pos=<-58040059,27725241,32705429>, r=86466505 +pos=<81657169,16131282,8741254>, r=91761659 +pos=<29524510,-11913711,62111632>, r=83285610 +pos=<28396448,-10893560,41570617>, r=60596277 +pos=<-31561631,24049584,23740682>, r=62459136 +pos=<94315567,19389827,33151328>, r=87812613 +pos=<51740664,9040435,33602329>, r=56038053 +pos=<97125340,35624993,43031234>, r=97093858 +pos=<64704936,6612862,32684687>, r=70512364 +pos=<2067095,19210917,48287701>, r=50456197 +pos=<44130267,8493844,35354195>, r=50726139 +pos=<36565262,26127194,34371815>, r=98859121 +pos=<-83580501,-65205550,37506263>, r=90496076 +pos=<37019712,16997641,81550838>, r=81309026 +pos=<58689050,16619861,65641630>, r=87446554 +pos=<34237250,19751835,25902404>, r=55014784 +pos=<85010357,20947890,18745892>, r=80293643 +pos=<23866291,-12422053,78758090>, r=94782031 +pos=<63508322,-3952650,45031081>, r=92227555 +pos=<58990064,36052645,-10736822>, r=82333564 +pos=<34420712,24087771,45457358>, r=64121664 +pos=<89634646,26917021,35030181>, r=77483309 +pos=<99950284,31097418,29596432>, r=81956434 +pos=<61294578,65368412,29663933>, r=77639794 +pos=<58862877,24305225,12144934>, r=57390123 +pos=<79668354,28137256,56982230>, r=88249102 +pos=<42384507,28094171,34135387>, r=57141199 +pos=<13647547,27327121,77947353>, r=60418868 +pos=<86787158,6128528,33453331>, r=93847879 +pos=<25000724,14172326,71866381>, r=62430475 +pos=<67415907,18927018,47959118>, r=76183510 +pos=<71699795,-1375874,36173983>, r=88985138 +pos=<23152684,13972076,30794370>, r=88924570 +pos=<6084408,16274957,57988002>, r=59074936 +pos=<94748314,19655397,31720305>, r=86548856 +pos=<77762059,20779910,55380205>, r=92097913 +pos=<13477322,27526466,41026569>, r=71424512 +pos=<-20216109,30870745,35099846>, r=51209699 +pos=<40244561,-2937863,39089997>, r=62008026 +pos=<67951141,46989545,61910439>, r=98163556 +pos=<-17584532,-17343419,38276146>, r=96650363 +pos=<31784487,24229401,42494723>, r=71570252 +pos=<19840358,26616653,43208510>, r=73561150 +pos=<72525387,24970364,37192343>, r=64482916 +pos=<41280237,1705490,49210796>, r=68521132 +pos=<79974091,23281539,36842762>, r=73271172 +pos=<-22951374,16132391,33278223>, r=63543494 +pos=<65101807,31064790,32323254>, r=49802258 +pos=<59175292,-23719427,19041935>, r=98829808 +pos=<24241661,11747033,70076147>, r=62306307 +pos=<50535764,20701332,63498321>, r=73068249 +pos=<48242624,-5610585,38851012>, r=72439704 +pos=<52184611,47476405,36336730>, r=57310239 +pos=<-33585562,18755828,57791477>, r=96067459 +pos=<79022439,15490183,11104280>, r=87405286 +pos=<14340999,-5813582,76672758>, r=91591997 +pos=<71155171,18694738,1799538>, r=85637916 +pos=<64560416,32348631,41203116>, r=59424497 +pos=<51376160,-5178984,17511844>, r=74020343 +pos=<66620400,27924903,31586753>, r=50017740 +pos=<27003371,4059781,67147510>, r=69827342 +pos=<4033731,28125063,-9269791>, r=55798903 +pos=<93413230,18845940,13814225>, r=95730280 +pos=<-15894707,26271142,61016966>, r=74087360 +pos=<33141823,19298027,93743430>, r=87323092 +pos=<44740313,27816872,32453367>, r=78876852 +pos=<56975495,34516480,11753493>, r=56292394 +pos=<54016469,50695718,41652740>, r=67677332 +pos=<36117294,10327050,72949536>, r=78475277 +pos=<34340973,10561316,33230618>, r=66307635 +pos=<24121605,4495492,84595671>, r=83957510 +pos=<-51019396,23492035,29361747>, r=80335819 +pos=<-20049502,15596392,42811126>, r=70710571 +pos=<30485563,11882416,72761673>, r=71100350 +pos=<-25184832,24302788,-15910957>, r=95480731 +pos=<35998438,-7889441,7668082>, r=71196888 +pos=<67409918,26709768,41161031>, r=61597152 +pos=<68493721,27862189,49541517>, r=69908625 +pos=<45290411,25933564,20702531>, r=87000649 +pos=<71919878,27946077,35078131>, r=58787421 +pos=<15036905,-1350272,8620603>, r=56380535 +pos=<91991959,24473772,32324453>, r=79578178 +pos=<30242846,19231051,32546834>, r=97840475 +pos=<-4091082,-17817764,19582616>, r=81014190 +pos=<56053555,10863774,42304587>, r=67229878 +pos=<53271461,19049297,12049900>, r=57149280 +pos=<96917222,34165381,37393751>, r=89788833 +pos=<152920673,9618123,94048165>, r=63996178 +pos=<14263051,38644267,109669528>, r=99073758 +pos=<61777682,9947615,42797439>, r=74363028 +pos=<64169935,37391141,45494232>, r=68367742 +pos=<-39592028,15707448,48406576>, r=95737353 +pos=<61107181,17633927,30580476>, r=53789792 +pos=<88383937,11376588,34513259>, r=91256591 +pos=<30553868,7116459,55656057>, r=58829146 +pos=<23595226,12963972,-48640779>, r=94249105 +pos=<53600389,18219755,75622445>, r=90738969 +pos=<7447231,25004178,37976578>, r=65852858 +pos=<-39388242,28031247,31706264>, r=66509885 +pos=<-10332136,19032374,39413961>, r=54159965 +pos=<36722965,-20912438,34519646>, r=71890554 +pos=<80377650,23894835,30220932>, r=66439274 +pos=<49440117,9026561,72540123>, r=92689373 +pos=<57241922,47994171,47228397>, r=73776944 +pos=<91789328,32955993,51917675>, r=97975467 +pos=<77802202,13486271,34489612>, r=78541351 +pos=<81929434,18920564,42191967>, r=84936398 +pos=<59501945,12517147,21837893>, r=60124157 +pos=<10110394,85795293,46749296>, r=87457566 +pos=<48474994,12669492,48336844>, r=63877903 +pos=<50666231,10324686,34365950>, r=54443030 +pos=<78123560,27150883,1223802>, r=84726015 +pos=<51847211,19824282,10512744>, r=56487274 +pos=<59794257,42049075,57820411>, r=80976051 +pos=<25181858,20321887,-29676243>, r=69513231 +pos=<50676454,3052103,40571747>, r=67931636 +pos=<59915034,12659321,37627808>, r=64619083 +pos=<-33003325,25046390,66126851>, r=97530178 +pos=<52210816,40406277,5077209>, r=64093785 +pos=<74042429,4115556,30624909>, r=80287280 +pos=<31370514,-19144764,24242262>, r=61250273 +pos=<35738610,22172068,58211061>, r=51513513 +pos=<30204339,56955299,11760534>, r=51953158 +pos=<27390224,2138622,90328404>, r=95315698 +pos=<91282608,22882628,16186593>, r=87190426 +pos=<34935133,36800391,33981135>, r=62387122 +pos=<38142480,13752266,67180666>, r=71306405 +pos=<82643935,13300313,33916812>, r=82995974 +pos=<38442527,-16042745,54468796>, r=88689686 +pos=<-21746410,22240857,60185644>, r=83137396 +pos=<34328587,5190063,-14464829>, r=78580798 +pos=<98351260,25563021,37977172>, r=90500899 +pos=<64491158,832486,50018730>, r=93413199 +pos=<34303599,-11387293,18603496>, r=62064419 +pos=<42000864,9223852,47116668>, r=59629198 +pos=<74407479,45849004,30935282>, r=72504080 +pos=<67290570,22010567,35484838>, r=60500328 +pos=<34205217,27042188,66594527>, r=53493154 +pos=<32831447,-47373259,35416895>, r=95357210 +pos=<52429393,58524076,37155039>, r=69420986 +pos=<40142595,15050047,56292308>, r=61120517 +pos=<-13873817,3725812,36430265>, r=70024535 +pos=<-7110376,43648441,63379101>, r=79161362 +pos=<40676939,30284369,79676336>, r=71949945 +pos=<-30507,39177119,54732142>, r=58962752 +pos=<94490692,18823454,37513129>, r=92916426 +pos=<36720474,-26142834,38039642>, r=80639090 +pos=<-22611252,-732830,13105787>, r=88926715 +pos=<38326297,-17236439,4366936>, r=86172897 +pos=<104186848,24722181,30551258>, r=89751409 +pos=<-47741545,47296300,17728758>, r=97573628 +pos=<25587208,32895444,83743514>, r=63538549 +pos=<75521191,7038686,32404260>, r=80622259 +pos=<96516838,42761709,38749487>, r=99340358 +pos=<-16838117,3707280,61704864>, r=98281931 +pos=<67098063,33980029,30476704>, r=52867118 +pos=<34521430,-30366939,33423155>, r=78047009 +pos=<32917197,25656478,-16267999>, r=58505795 +pos=<29148172,23995805,86898178>, r=71786853 +pos=<45502840,27276657,26134406>, r=90271205 +pos=<27978897,27151510,37215350>, r=71209455 +pos=<25556430,85587843,38452440>, r=70908997 +pos=<83207472,30866910,33970966>, r=69357633 +pos=<49691444,27885898,48807171>, r=50348266 +pos=<-40152796,23293538,10110499>, r=85436496 +pos=<66436904,42241755,59087246>, r=89078219 +pos=<77175078,39574473,34911509>, r=72973663 +pos=<15509237,-20376725,34468936>, r=62782655 +pos=<26370209,-1943129,46147773>, r=54196594 +pos=<74961294,34740223,35068738>, r=66082539 +pos=<65991817,19301210,14120492>, r=67547400 +pos=<33049257,33935914,86569421>, r=74866942 +pos=<24379291,18667893,76768297>, r=62215287 +pos=<27964486,2498014,29709260>, r=50838399 +pos=<92341309,20724244,39591542>, r=90944222 +pos=<53372175,64120902,32116918>, r=70922469 +pos=<106750788,22753153,33872633>, r=97605785 +pos=<27507119,24389785,31284356>, r=98285694 +pos=<73965811,50688523,40023571>, r=85990252 +pos=<17819953,7400272,30133188>, r=56816554 +pos=<-18668854,-21811360,34256981>, r=98183396 +pos=<45696985,11757246,46375135>, r=60050633 +pos=<51660556,4459666,43646382>, r=70583041 +pos=<17092995,-37213995,3505279>, r=95303446 +pos=<39124741,-11069589,37377232>, r=67307286 +pos=<29412232,-7165273,40672095>, r=56985120 +pos=<34902059,-22956493,-3936680>, r=96772291 +pos=<38295273,6274675,83216358>, r=94972458 +pos=<99717535,25371559,20774765>, r=88548322 +pos=<45310256,33549075,95594906>, r=95766568 +pos=<68697599,19213553,24391497>, r=60069702 +pos=<-3978637,21153869,93206401>, r=99477352 +pos=<17087126,-26992585,30365464>, r=63717361 +pos=<99643000,31148937,9548632>, r=97797414 +pos=<38389591,6315830,72639816>, r=84449059 +pos=<45727517,21258849,72842941>, r=77047319 +pos=<102435481,25873792,37705890>, r=94003129 +pos=<51865214,27933930,620333>, r=58288148 +pos=<58834262,14334065,61882053>, r=86117780 +pos=<303577,-28920158,38415588>, r=90478438 +pos=<14996037,12921223,59090412>, r=54619481 +pos=<24589512,79428807,47177002>, r=72507807 +pos=<3972573,-29089987,41982153>, r=90545750 +pos=<74468048,20922961,40283294>, r=73563871 +pos=<8456066,64570086,21447566>, r=54930977 +pos=<-49773160,30826850,30366384>, r=75989469 +pos=<70768868,18845452,39213290>, r=70872198 +pos=<43294643,12628553,59832535>, r=70234289 +pos=<81531611,15546985,16673187>, r=84288669 +pos=<-20444452,31653021,16258050>, r=56103957 +pos=<908797,4790592,19590268>, r=53398154 +pos=<78682537,26566775,32155350>, r=64006712 +pos=<33475163,31362483,67149232>, r=53299169 +pos=<25471549,-20667103,25010737>, r=56104982 +pos=<23292388,31978211,38474069>, r=90373077 +pos=<-35515128,14032947,43899781>, r=88828433 +pos=<42966818,-44945505,30748539>, r=98396370 +pos=<61927131,21622061,31058419>, r=51099195 +pos=<-17515070,8713273,37335281>, r=69583563 +pos=<12137468,17125416,38742851>, r=75080366 +pos=<31735490,23040836,39763558>, r=73417666 +pos=<67551837,34025844,30578774>, r=53469019 +pos=<48391437,-5711580,61835132>, r=95673675 +pos=<-11452530,18274276,36454838>, r=53079362 +pos=<81728121,37502853,31562613>, r=72105874 +pos=<39348273,25574766,60596696>, r=54105819 +pos=<82256814,25188562,38678547>, r=75482364 +pos=<36400626,20045118,31824274>, r=82661057 +pos=<-9239130,-3747446,45396933>, r=81829955 +pos=<29470202,26921855,35742946>, r=72180046 +pos=<26458099,-19577572,50052170>, r=75823483 +pos=<54427660,-54337492,119885937>, r=70864713 +pos=<30613257,20557095,41448219>, r=50965288 +pos=<45316614,14040756,4922174>, r=61330710 +pos=<79109379,10829799,34526226>, r=82541495 +pos=<60603281,25162928,60593322>, r=75769815 +pos=<-43348822,27956635,52354756>, r=91193496 +pos=<-28331332,23789849,30488817>, r=58476531 +pos=<46206691,75332212,47200897>, r=90052087 +pos=<25383354,18991414,31291538>, r=66639434 +pos=<75985143,11662861,52403765>, r=96461598 +pos=<23733849,27110414,-36745108>, r=68345570 +pos=<57979951,40232232,31028764>, r=50553291 +pos=<11501810,-30053429,46130583>, r=88128399 +pos=<77077010,17936724,57786249>, r=96662024 +pos=<47827684,62840024,49691519>, r=81671548 +pos=<59000083,9120028,34155335>, r=63770874 +pos=<60452144,24892761,58412988>, r=73707863 +pos=<80683707,-2380393,143919110>, r=53210269 +pos=<44702633,-27698395,39194218>, r=91330998 +pos=<73293125,18238404,29176745>, r=63967181 +pos=<-22082216,21410722,40780300>, r=64897992 +pos=<68450840,23394509,34089014>, r=58881060 +pos=<50639282,18498714,86008679>, r=97884739 +pos=<33907156,-12837747,55064901>, r=81545720 +pos=<51867444,52887097,25629138>, r=55679223 +pos=<101715855,23633617,21161443>, r=91897817 +pos=<-17489288,48102417,33353873>, r=63968728 +pos=<85471425,19519732,25322555>, r=75606307 +pos=<55478580,26414826,42990956>, r=51790226 +pos=<49540631,6635009,57889482>, r=80530669 +pos=<15451431,48026795,53979691>, r=51578106 +pos=<58764959,19121244,65625210>, r=85004658 +pos=<79431589,23090934,28809666>, r=64885820 +pos=<70614060,47795585,44772574>, r=84494538 +pos=<65850182,20014234,72518314>, r=98089859 +pos=<48284888,-32100041,17988217>, r=97373940 +pos=<52161598,18436251,83384997>, r=96845968 +pos=<-978969,-8223782,55899414>, r=88548810 +pos=<55288782,14484205,18996875>, r=56784764 +pos=<5571939,17619859,95244120>, r=95498554 +pos=<-44171242,38067817,31001065>, r=78263127 +pos=<94940455,38653503,32365482>, r=87271725 +pos=<58936835,6752496,43928909>, r=75848919 +pos=<27439414,39072953,66258811>, r=54083554 +pos=<85876528,33699303,37025159>, r=77913328 +pos=<106753065,20599646,30736003>, r=96624928 +pos=<59697905,18847182,44222247>, r=64808749 +pos=<33941064,-20323836,-3785596>, r=93027553 +pos=<24945964,-371415,-725351>, r=61019938 +pos=<-26773661,25738210,24873412>, r=54849763 +pos=<40464437,19788417,55693060>, r=56104609 +pos=<72340775,18354468,57699264>, r=91421086 +pos=<79572572,31390265,50061368>, r=82336561 +pos=<85363704,31589634,25782694>, r=67724495 +pos=<81805256,16078522,47988327>, r=93450544 +pos=<28844700,2539631,64309150>, r=70349754 +pos=<-32896891,23150999,45593045>, r=78785395 +pos=<83081765,14785810,7687825>, r=95585182 +pos=<32623327,9747293,72637888>, r=75249536 +pos=<-27841429,26733334,42505584>, r=67059919 +pos=<48124073,-2330067,30614282>, r=60803962 +pos=<50566628,26150233,62946812>, r=67098723 +pos=<6749430,81690117,58719562>, r=98683290 +pos=<52838161,-9940858,37725381>, r=80240426 +pos=<11240068,33360684,33951783>, r=77592048 +pos=<35256265,-10221400,44632302>, r=69845451 +pos=<17907024,-5833400,51968167>, r=63340870 +pos=<52338878,41871902,46250614>, r=61773681 +pos=<35474953,3880047,51580276>, r=62910741 +pos=<53938135,39399209,48679368>, r=63329043 +pos=<45345806,10025655,58592048>, r=73647842 +pos=<34602502,14058608,64056230>, r=64335641 +pos=<79279830,22852319,29801493>, r=65964593 +pos=<-31998692,6431136,44778946>, r=93792697 +pos=<39486766,21570315,80094312>, r=77746697 +pos=<88784784,23005834,32559060>, r=78073503 +pos=<48927156,-19628803,15822519>, r=87710552 +pos=<-42815964,20839752,30239816>, r=75662733 +pos=<48608873,13101976,36246943>, r=51489322 +pos=<17901575,-9248897,52402056>, r=67195588 +pos=<61872327,23312995,35279374>, r=53574219 +pos=<65519907,24491145,29758387>, r=50522660 +pos=<72471220,11454463,29786240>, r=70538486 +pos=<64662151,-5261074,44772933>, r=94431716 +pos=<23403999,25974087,102335945>, r=79501562 +pos=<36442094,27476148,68326539>, r=57028148 +pos=<25773011,2470059,61596646>, r=64635213 +pos=<-27805432,26293554,41437984>, r=66396166 +pos=<10736760,21001046,34649930>, r=71802861 +pos=<30888262,913663,64662051>, r=74372268 +pos=<69589951,45836633,14786437>, r=77193987 +pos=<105989682,27367959,33279208>, r=91636579 +pos=<84093890,24751444,31566504>, r=70644432 +pos=<42133957,22974915,60177687>, r=59072441 +pos=<-1582316,35918544,95633380>, r=98157364 +pos=<70155365,-5440176,33076947>, r=88408399 +pos=<42091322,16032273,1607651>, r=59428528 +pos=<169927184,17879775,-28418425>, r=94014644 +pos=<15071089,1889600,87801978>, r=94287491 +pos=<25985310,83260086,38633024>, r=69190720 +pos=<45419777,-28953670,35695429>, r=89804382 +pos=<54477990,4782330,37104000>, r=66535625 +pos=<31824753,-2036979,-10518279>, r=79357195 +pos=<32851677,24669328,89563646>, r=77481670 +pos=<49777531,-15752853,30296470>, r=75562487 +pos=<100350769,19027152,31964520>, r=93023995 +pos=<68790664,15211485,56170638>, r=89485589 +pos=<83111683,64275266,30164396>, r=98863709 +pos=<24114472,44821664,-8319945>, r=53810154 +pos=<40495630,16243402,49105361>, r=53093528 +pos=<51385584,-5340134,24539335>, r=67163399 +pos=<105239534,27503276,28637159>, r=86109058 +pos=<42295505,47284639,-1164310>, r=67298501 +pos=<33223960,23766651,41269126>, r=97033060 +pos=<72926985,16093652,32192825>, r=68761656 +pos=<27769408,27502756,80779499>, r=60781673 +pos=<41204300,48658032,43546145>, r=54720762 +pos=<38641752,21631378,64881222>, r=61627576 +pos=<96156903,27794629,37177442>, r=85275269 +pos=<11464534,-28185460,28660038>, r=68827194 +pos=<42543486,1815894,60378082>, r=80841180 +pos=<23129287,24534794,-16539251>, r=50110892 +pos=<-12213342,850968,23316040>, r=66734236 +pos=<41778271,24524155,99843172>, r=96833164 +pos=<65060979,36246673,43416128>, r=66036147 +pos=<48646473,-10794201,55984282>, r=95160449 +pos=<45566801,-4886371,40314703>, r=70503394 +pos=<-3975059,12712238,75084637>, r=89793696 +pos=<6382478,3320230,73779253>, r=87522800 +pos=<28378678,-8642092,36748753>, r=53505011 +pos=<-22239286,23495090,16961223>, r=60470692 +pos=<28503223,-14026053,13953123>, r=63553172 +pos=<26613262,19444333,-33426741>, r=75572761 +pos=<40422470,18867456,71295700>, r=72586487 +pos=<49655733,58040847,51691443>, r=80700307 +pos=<48177296,48335275,36936632>, r=54761734 +pos=<71892232,9779093,54279037>, r=96128200 +pos=<-22420257,-30585494,127292378>, r=94914817 +pos=<40498587,16863527,52991102>, r=56361916 +pos=<86770385,6157610,19916611>, r=95673556 +pos=<96364672,21294200,37885217>, r=92691175 +pos=<63911338,8243688,28712284>, r=64115455 +pos=<30726389,13386398,85728927>, r=82804416 +pos=<36756168,20105063,-19730843>, r=71359545 +pos=<14759578,102537680,11219282>, r=96823355 +pos=<33857505,1760256,60121215>, r=71954009 +pos=<40419947,27731135,81780461>, r=74204814 +pos=<65288959,15569381,48936852>, r=78392152 +pos=<697707,-8913890,44743262>, r=76405643 +pos=<27624260,85410685,36877336>, r=71224738 +pos=<97795435,26235228,9296268>, r=97240982 +pos=<-5874574,-17317084,45432537>, r=92070379 +pos=<98647852,25655936,35405478>, r=88132937 +pos=<-23851901,8324645,54125021>, r=93098472 +pos=<5119875,16343698,62665228>, r=64647849 +pos=<-52395332,20697934,35099241>, r=90243039 +pos=<52078865,20900495,14789481>, r=51366055 +pos=<98593654,21991016,37014874>, r=93352997 +pos=<55016373,12173272,50898024>, r=73476766 +pos=<35661796,51521397,-19708964>, r=83446137 +pos=<47115043,22861677,47938013>, r=51926873 +pos=<66783956,48421410,35430044>, r=71947769 +pos=<27402816,17435467,36254250>, r=93190698 +pos=<33529679,25482789,31467458>, r=93498550 +pos=<58166897,65581609,40449035>, r=85510053 +pos=<80985713,34854164,52472187>, r=89624358 +pos=<39958981,-23567539,34359409>, r=77621426 +pos=<27110200,70243193,62796550>, r=81462340 +pos=<40807100,26350173,58383503>, r=52575998 +pos=<71315583,25238442,32093397>, r=57906183 +pos=<39431278,3193412,79940037>, r=95913439 +pos=<36543192,35644678,94378511>, r=87878802 +pos=<32549779,45002222,55640370>, r=54504851 +pos=<-29246116,15632610,60544903>, r=97604676 +pos=<41957494,37559815,86520437>, r=87350047 +pos=<9529629,49943427,51485931>, r=56923029 +pos=<62830396,17582509,6306057>, r=73919272 +pos=<67226838,19488753,28791297>, r=56264911 +pos=<-34460138,23875514,-5997679>, r=95270261 +pos=<39661205,2502376,51491651>, r=68385986 +pos=<26229591,-11916093,23153826>, r=49968897 +pos=<84698615,24342569,30535572>, r=70627107 +pos=<29635220,-1956609,-16978290>, r=83547288 +pos=<70881086,45515843,30580152>, r=68289492 +pos=<-22977084,27276978,32467504>, r=51613830 +pos=<278535,8459561,40589079>, r=55297436 +pos=<65282575,15195014,67082807>, r=96906213 +pos=<61309105,33536642,39865>, r=71359711 +pos=<151236816,-16545487,71247021>, r=78267475 +pos=<44511233,-26244336,33551838>, r=84043083 +pos=<77061491,25841688,30743629>, r=61699244 +pos=<1092868,27840971,-20750558>, r=70504439 +pos=<31060018,11627778,37412891>, r=97271881 +pos=<78428381,15537239,34855351>, r=77481981 +pos=<67583828,25241354,43182564>, r=65260531 +pos=<25098954,-15924736,6298997>, r=69701766 +pos=<72963025,26945537,67664411>, r=93417506 +pos=<3885213,71233528,29345571>, r=61717339 +pos=<34065826,1530513,79225682>, r=91496521 +pos=<17341798,-22274411,53053481>, r=81432333 +pos=<42716160,20530607,-432170>, r=57594739 +pos=<42551559,-2483283,46655662>, r=71426241 +pos=<39586829,71285197,30566776>, r=62751095 +pos=<79799619,19236075,38159463>, r=78458524 +pos=<-38278395,21579967,35903367>, r=76048117 +pos=<83765860,21563077,41732995>, r=83671666 +pos=<11411246,789146,43395222>, r=54641054 +pos=<-49910923,16093762,38522553>, r=95785903 +pos=<49293330,64369061,41162285>, r=76137076 +pos=<66274858,23845764,12074879>, r=65331651 +pos=<-30215889,17846623,30620587>, r=66436066 +pos=<74264203,8791823,34830816>, r=80039382 +pos=<87753676,47177554,33984261>, r=90227884 +pos=<65025885,20035236,34876208>, r=59602598 +pos=<56964311,27224050,80032100>, r=89507876 +pos=<29041545,-30221139,33090701>, r=72088886 +pos=<-32756144,21901535,29205671>, r=63506523 +pos=<32561486,-18776280,43350377>, r=74423684 +pos=<69315238,21236711,31036869>, r=58850911 +pos=<17276193,23882322,30994460>, r=99255503 +pos=<49179796,14960016,36962778>, r=50918105 +pos=<44746806,-37217890,34280660>, r=95980925 +pos=<41239245,25320562,54323431>, r=49978081 +pos=<-346918,10165591,65211265>, r=78838972 +pos=<23208297,-42766003,47747218>, r=93457000 +pos=<221807807,25464629,35380541>, r=61749255 +pos=<42781922,10725244,52440873>, r=64233462 +pos=<77541392,-7770095,29843725>, r=94890772 +pos=<23570202,25749631,90763947>, r=68320241 +pos=<2002888,68075071,37819198>, r=68914808 +pos=<53098980,17230687,-13143096>, r=83988458 +pos=<42800988,-8638932,62968251>, r=94143684 +pos=<76902655,20604097,44787137>, r=80821421 +pos=<69425945,41827429,31963398>, r=64529147 +pos=<40237953,22867448,99135287>, r=96241468 +pos=<69952904,12557955,10052008>, r=82319985 +pos=<79904107,25069819,19208633>, r=70603074 +pos=<-37400341,20191617,14910773>, r=80985675 +pos=<42099675,27776153,29911368>, r=82838408 +pos=<49198745,49574154,1050717>, r=74276055 +pos=<94245620,26690538,16469735>, r=86062422 +pos=<63093344,49514643,45704599>, r=79625047 +pos=<87820049,28061052,38129015>, r=77623507 +pos=<61103117,27196864,7000987>, r=61882398 +pos=<78051577,59902428,31214635>, r=90481164 +pos=<113323038,35250726,25993097>, r=99134516 +pos=<474385,13737953,73509796>, r=82743817 +pos=<56485764,14082489,55501616>, r=77640472 +pos=<77571175,20977044,28706799>, r=65036859 +pos=<43282567,22278426,98237615>, r=98977440 +pos=<6252949,25972349,30752369>, r=94026964 +pos=<48000332,-26704238,36061035>, r=90501293 +pos=<65533839,12340567,53413709>, r=86342605 +pos=<96443463,19054934,38535768>, r=95659808 +pos=<55339738,1979725,28686928>, r=61782423 +pos=<24815163,24847208,118135716>, r=97839236 +pos=<-345517,30374872,54952903>, r=50696354 +pos=<215617977,19576117,29229617>, r=94533852 +pos=<56669914,21819780,-2132018>, r=71959702 +pos=<25768078,70448737,46460093>, r=63989197 +pos=<90894597,25817661,48858433>, r=93671052 +pos=<67569507,20364889,68891184>, r=95831554 +pos=<-17060188,-8775153,48804249>, r=98085844 +pos=<-5369345,8071371,25918402>, r=50067368 +pos=<67821025,31900209,34251304>, r=55284957 +pos=<-60326507,18129012,30250496>, r=95894246 +pos=<47287693,17525173,13767291>, r=50972932 +pos=<38215943,10791771,48136133>, r=55295791 +pos=<46488489,-3329803,29226386>, r=58780188 +pos=<59569501,15158072,42882477>, r=67029475 +pos=<75744994,27951114,38854967>, r=66384519 +pos=<-19161309,22856620,30279140>, r=50030263 +pos=<45947518,19659242,63569584>, r=69593915 +pos=<-11355238,26849954,88710373>, r=96662127 +pos=<47010745,27182130,-7230863>, r=62037020 +pos=<62191604,-4605151,38187286>, r=84719798 +pos=<83141979,27115313,49172521>, r=84934678 +pos=<46939410,6514653,18820379>, r=56581414 +pos=<79199774,-59505695,99433808>, r=85811008 +pos=<33126941,31009235,30249396>, r=93346156 +pos=<79010596,24343497,13940964>, r=75703175 +pos=<-20817247,21072199,70902543>, r=94094166 +pos=<97667486,23059648,16431835>, r=93153059 +pos=<52623749,15262166,36069926>, r=53166999 +pos=<39825972,-4795774,36553300>, r=60910599 +pos=<68064019,24452436,34946881>, r=58294337 +pos=<29249537,-21301329,60092164>, r=90379072 +pos=<-27009676,9151905,43802423>, r=85106397 +pos=<78929943,7917585,19833373>, r=86156044 +pos=<39033816,7333946,49468273>, r=60903777 +pos=<81961543,25249903,30621513>, r=67068696 +pos=<-6495920,23074762,70028066>, r=76895901 +pos=<90142669,10347366,28945861>, r=88476850 +pos=<-23234485,35503887,4958758>, r=74044205 +pos=<105872914,39929797,31397556>, r=98512605 +pos=<88735631,151176986,40896685>, r=83239144 +pos=<69049234,17886439,37693368>, r=68591646 +pos=<37837718,9638133,44336601>, r=52271774 +pos=<41047070,7691310,75098197>, r=88189551 +pos=<-35250251,20995223,58928507>, r=96629815 +pos=<37622595,-23991865,21506510>, r=75084986 +pos=<-16910123,27645081,45203947>, r=57915490 +pos=<3173527,4440494,44533802>, r=60366160 +pos=<87788667,25595871,47211815>, r=89140098 +pos=<46757934,-2857567,50807787>, r=80158775 +pos=<59018943,4724202,51941068>, r=85971352 +pos=<67705466,25917816,48960365>, r=70483636 +pos=<50092818,7462476,37194148>, r=59560109 +pos=<-24722947,25741540,3301565>, r=74367559 +pos=<35982087,25456422,83987142>, r=74248290 +pos=<91903317,23024870,40661338>, r=89275344 +pos=<73235770,18388792,29242673>, r=63825150 +pos=<-9327337,-11379416,28663259>, r=72816198 +pos=<99498140,21534839,29904633>, r=87603416 +pos=<-21605044,21274795,44158482>, r=67935105 +pos=<61548196,39833633,24575980>, r=53359727 +pos=<59425324,25373006,57899504>, r=71687446 +pos=<-26736103,-75927707,-32563584>, r=67166708 +pos=<85848317,8573811,35104183>, r=92114389 +pos=<29289177,-46686699,43198536>, r=98909899 +pos=<-13371315,34425603,44991214>, r=57811358 +pos=<83554214,15106737,50007571>, r=98190615 +pos=<30719529,2956092,48345730>, r=55844651 +pos=<27280696,20592492,23799080>, r=77870173 +pos=<57335543,18400177,38575216>, r=57246070 +pos=<93121057,27867944,32962164>, r=77950973 +pos=<50234978,97078027,29433207>, r=98058610 +pos=<15911097,23393333,22988266>, r=75928161 +pos=<27398036,17517646,92806677>, r=82422607 +pos=<-2071539,163044546,-27371972>, r=60718672 +pos=<1227980,-5171882,34822764>, r=62213245 +pos=<-13266769,-8350480,36557251>, r=81620861 +pos=<81224452,24572187,39174800>, r=75562721 +pos=<-13092044,53874940,38412646>, r=70402652 +pos=<-23911186,-7879998,39201757>, r=94439474 +pos=<3524273,4633119,61284424>, r=76573251 +pos=<196125756,24397188,49185337>, r=61059034 +pos=<49708724,1120332,29076748>, r=57400681 +pos=<-8822976,8030385,22432894>, r=57047415 +pos=<60528564,54514813,32787436>, r=69143141 +pos=<96832731,18446290,35151737>, r=93273679 +pos=<-9583385,-8280477,23049288>, r=73502307 +pos=<-5361497,27734794,77530103>, r=78603068 +pos=<-2525540,9556671,77122662>, r=93537843 +pos=<90872863,9270164,30913087>, r=92251550 +pos=<-40751462,26934260,38881820>, r=76145812 +pos=<26731587,21146971,-9253214>, r=49814915 +pos=<61632611,-2914566,51595600>, r=95878261 +pos=<52191759,23300278,42889583>, r=51516599 +pos=<71253839,27095673,30105306>, r=53998976 +pos=<31455837,49617801,60188373>, r=62574387 +pos=<72843888,30935282,32296402>, r=57387987 +pos=<-16789891,17059694,38141936>, r=61318391 +pos=<-12514015,13917692,33063446>, r=55106104 +pos=<41439588,-14754516,33844173>, r=69773785 +pos=<36277659,44675566,28877339>, r=67110702 +pos=<38214882,75922488,37635131>, r=73084881 +pos=<24026838,-2055783,87477819>, r=93295927 +pos=<33423575,77843153,29371919>, r=61950998 +pos=<-19444250,22106781,33476390>, r=54260071 +pos=<49207428,44716654,34798941>, r=50035308 +pos=<29935516,-21642056,34963614>, r=66276720 +pos=<68659200,26136124,37314638>, r=59573267 +pos=<63685072,8505673,35643682>, r=70558580 +pos=<57780170,27387127,14007588>, r=51362484 +pos=<30618731,20755443,41209026>, r=77532826 +pos=<49956152,-31870172,21082153>, r=95721204 +pos=<32525404,11654534,53405868>, r=54012236 +pos=<-225981,62006396,50998647>, r=78254103 +pos=<67461389,70874953,21984829>, r=92905347 +pos=<18263533,34202972,42576561>, r=87169965 +pos=<51294894,1813048,40648763>, r=69866172 +pos=<80592516,16187876,37359961>, r=81500093 +pos=<54697261,13121881,21736418>, r=54816160 +pos=<18291213,27848778,35679311>, r=97054738 +pos=<67908510,26513633,36536540>, r=57666965 +pos=<54878829,943973,26303071>, r=62608823 +pos=<32462035,43529368,62390330>, r=59694348 +pos=<83130903,23614010,54066019>, r=93318400 +pos=<33743614,39485816,80998451>, r=75540188 +pos=<66056924,24166389,32980761>, r=54606929 +pos=<103239437,20279388,31611402>, r=94306946 +pos=<33634180,11409256,-17813254>, r=75015202 +pos=<31928292,-31426563,53187506>, r=96278239 +pos=<-34830835,30404405,39459691>, r=69718010 +pos=<3181405,194946,20189254>, r=55122129 +pos=<85361891,25058842,30764017>, r=70802689 +pos=<26968620,-306844,89454643>, r=96465683 +pos=<-42199991,26993404,987558>, r=92906745 +pos=<27404520,93955188,36581812>, r=79253804 +pos=<91071338,27187309,30255303>, r=73874829 +pos=<-15375424,37643936,68447172>, r=86489518 +pos=<67424600,10143045,40116620>, r=77133762 +pos=<67122689,34429425,30298724>, r=53163124 +pos=<47504467,4698266,61314177>, r=83856044 +pos=<55652045,14463815,37022719>, r=57946435 +pos=<12492145,-4132218,68551054>, r=83637314 +pos=<68661945,20095235,29181355>, r=57483570 +pos=<24363897,-25512049,62419293>, r=92030780 +pos=<25480072,27727850,17774959>, r=93495900 +pos=<29288728,26901163,30474630>, r=60203592 +pos=<-5692969,32237499,96002373>, r=98955890 +pos=<80735730,34104566,39543688>, r=75696804 +pos=<-52734837,22594309,34517838>, r=88104573 +pos=<-991835,11908662,58035759>, r=70565114 +pos=<22916195,-22298342,13425057>, r=66766617 +pos=<25846439,-22995340,-7934395>, r=91753202 +pos=<30440360,-10585235,61974023>, r=82735188 +pos=<-8517670,15039091,50282993>, r=67207773 +pos=<73458634,45085436,43189296>, r=83045747 +pos=<32292079,-1870447,17410753>, r=51728794 +pos=<109835601,25748092,33020493>, r=96844089 +pos=<31693941,-9646165,44710381>, r=65786107 +pos=<42858901,17327898,67293615>, r=72560121 +pos=<35330475,22232043,75018544>, r=67853183 +pos=<50280015,15576674,46310906>, r=60749891 +pos=<27536491,77049643,54476216>, r=80374708 +pos=<93547529,25657168,29712902>, r=77339326 +pos=<13591013,-13608178,29161599>, r=52625245 +pos=<90066927,32089426,22572797>, r=76137375 +pos=<66421486,19945753,40280359>, r=66491855 +pos=<-965484,21014366,47367742>, r=50765049 +pos=<45089498,40350201,3644300>, r=58349272 +pos=<35770849,25548447,26587622>, r=89738018 +pos=<46051673,6154021,16167418>, r=58707253 +pos=<5264980,882467,36658632>, r=53957375 +pos=<-22486372,60843320,29292902>, r=77645600 +pos=<32576582,-109618212,93197073>, r=83900716 +pos=<94188646,13584061,31178699>, r=91518917 +pos=<29227270,40812366,75227707>, r=66580007 +pos=<64362068,13853680,32074954>, r=62319674 +pos=<23038103,7758344,57530248>, r=52545528 +pos=<-14655048,75879607,38794273>, r=94352245 +pos=<88166236,38178299,41070755>, r=88727586 +pos=<-2404276,55968039,-11185721>, r=89822585 +pos=<28101339,-3970409,16596874>, r=50451966 +pos=<12929070,-24595080,40728807>, r=75841038 +pos=<90535371,26535126,44406902>, r=88142769 +pos=<51394907,15473120,42541531>, r=58198895 +pos=<54377172,15255909,65483575>, r=84340455 +pos=<9795416,22170571,41795252>, r=91077246 +pos=<30630964,1447334,46993126>, r=55912567 +pos=<216177394,18644715,44903549>, r=53143137 +pos=<34530117,6795329,54036689>, r=61507129 +pos=<-7709789,516299,66396151>, r=97035893 +pos=<-4474860,41203360,45450449>, r=56151725 +pos=<11663724,17295146,36806749>, r=65110826 +pos=<34686030,25972796,20002174>, r=51154806 +pos=<50584381,18782251,51985192>, r=63522962 +pos=<90796969,20691146,30423918>, r=80265581 +pos=<76672759,35784276,58084613>, r=91853997 +pos=<39713983,-23310808,9211287>, r=88790523 +pos=<76349559,11857307,53424601>, r=97652367 +pos=<57856779,27678017,40115410>, r=50030261 +pos=<53599603,12920569,73179190>, r=93593915 +pos=<79059263,34329049,33784496>, r=68485108 +pos=<96525592,27806599,28815595>, r=77270403 +pos=<-17765300,1553917,51002923>, r=90660696 +pos=<41319899,38658586,205584>, r=56326727 +pos=<9966631,-25077581,37230025>, r=75787196 +pos=<8137787,52150780,49351209>, r=58387236 +pos=<76477147,7497664,30280276>, r=78995314 +pos=<29163965,27744636,93858025>, r=75012858 +pos=<46585220,-12795581,51653486>, r=90770016 +pos=<53902101,4383404,52584631>, r=81838888 +pos=<40147418,67783477,38260613>, r=67503817 +pos=<59795873,38145132,42067098>, r=61320885 +pos=<72735101,27519783,48049850>, r=73000669 +pos=<93038847,22591773,30848571>, r=81031136 +pos=<88834074,12421356,30704294>, r=86852506 +pos=<-2842606,37313567,60023137>, r=65202309 +pos=<51000029,40730125,37993437>, r=51036066 +pos=<49619901,13397509,44595193>, r=60553205 +pos=<51466409,10277857,23976627>, r=52188973 +pos=<30537659,42130105,21737162>, r=59621137 +pos=<66506150,25432804,31990803>, r=52799649 +pos=<24281818,5847173,71266922>, r=69437545 +pos=<67280367,28050591,33739513>, r=52705323 +pos=<26408813,16183021,81091127>, r=71052505 +pos=<73252367,16056924,45978063>, r=82909047 +pos=<27066090,-21881274,47258473>, r=75941349 +pos=<137767436,-50878111,30869513>, r=68146274 +pos=<47753010,23539094,84567733>, r=88517146 +pos=<54612408,6422728,61377692>, r=89302890 +pos=<74715797,25122704,20170527>, r=64399686 +pos=<33723143,3228939,62294794>, r=72524484 +pos=<102115967,24863871,32137086>, r=89124686 +pos=<-25982445,36427212,35007160>, r=62439831 +pos=<67642945,7439068,41706775>, r=81646149 +pos=<77177361,23295049,52812322>, r=86430188 +pos=<27825578,54813439,67816531>, r=71767904 +pos=<59256015,22216596,37094728>, r=53870084 +pos=<36954477,24187310,85522009>, r=78025392 +pos=<35780843,5155819,54421658>, r=64782197 +pos=<13192845,98704800,40532197>, r=91067156 +pos=<27372693,48955729,865169>, r=52017083 +pos=<102961807,30598782,32098384>, r=86971315 +pos=<-23868178,27424199,54749894>, r=74640113 +pos=<40485607,23203413,62425043>, r=59442843 +pos=<110806565,25753459,32235598>, r=97024251 +pos=<-43634996,22966639,32276235>, r=76390797 +pos=<-27540267,27622368,66239111>, r=89603258 +pos=<39385759,6829521,-13236184>, r=80769731 +pos=<-16209646,15039077,29008273>, r=53625109 +pos=<36932833,6631579,71239689>, r=81276756 +pos=<99878221,25774642,38119713>, r=91958774 +pos=<33374033,56943679,5566934>, r=61304599 +pos=<44530921,5288535,46099933>, r=65078195 +pos=<87790877,26669566,23806408>, r=72291964 +pos=<27745709,59249159,-35259785>, r=98808740 +pos=<-30792311,23335173,50108549>, r=81011912 +pos=<70242144,38616461,36412090>, r=66583508 +pos=<71436163,28026743,38339223>, r=61484145 +pos=<67452496,42891830,35394376>, r=67051008 +pos=<97093892,13568343,33569996>, r=96831085 +pos=<78126483,16455553,33059653>, r=74466300 +pos=<41433794,17436740,64338665>, r=68071221 +pos=<56969942,19446246,-130638022>, r=80155412 +pos=<69576268,25357356,30138295>, r=54092866 +pos=<80541799,19818173,56663746>, r=97122976 +pos=<74320590,24446046,66726178>, r=96336217 +pos=<69719122,2358372,45563711>, r=92660056 +pos=<-317964,74983868,26372584>, r=69193837 +pos=<56070020,-10102679,36311988>, r=82220216 +pos=<29840117,-25746328,163735>, r=90399740 +pos=<47929792,65858768,8894335>, r=81448069 +pos=<-23492935,41610062,28896150>, r=59022147 +pos=<83744238,25682131,44011282>, r=81809073 +pos=<59818494,35151619,68910425>, r=85192865 +pos=<109092500,33093382,33801351>, r=97299544 +pos=<-21990234,56350826,29846659>, r=73211348 +pos=<28366343,-7188610,34934667>, r=50225104 +pos=<11244748,43398489,-40823164>, r=93241901 +pos=<-30143656,22131423,-2489435>, r=89189418 +pos=<20702334,21219877,-30030781>, r=66796306 +pos=<22984088,46319570,99454338>, r=90070419 +pos=<62585906,25439329,44560120>, r=61442191 +pos=<43786887,-13600355,37963734>, r=75086507 +pos=<36202005,-30203616,22100500>, r=79282165 +pos=<54855162,821728,39537046>, r=73306265 +pos=<76068868,27208368,41605736>, r=70201718 +pos=<-1129266,2722205,7806889>, r=69287975 +pos=<35122052,12154690,-52294>, r=57996782 +pos=<2866198,341904,59267099>, r=79505391 +pos=<-8144008,9220208,15437943>, r=62174037 +pos=<-30244012,18360811,29617981>, r=64947392 +pos=<50192334,5475402,33947834>, r=58400275 +pos=<28780801,-31966088,39248560>, r=79730989 +pos=<50017175,28116100,33041633>, r=63291285 +pos=<35243013,-37191177,29566236>, r=81735924 +pos=<31378105,-19227049,40226692>, r=70567658 +pos=<75148833,50562934,12118874>, r=90146830 +pos=<37667188,-14260536,31642616>, r=63306043 +pos=<66457384,10227158,33221821>, r=69187563 +pos=<85513604,14888068,35317318>, r=85679096 +pos=<50388291,14422109,34147164>, r=49849173 +pos=<78081312,10347863,33830082>, r=81299026 +pos=<43458815,93983163,24311332>, r=89684526 +pos=<83855335,7093600,35491215>, r=91988457 +pos=<50316478,12432138,61191422>, r=78811319 +pos=<83051931,16983874,38769862>, r=84573422 +pos=<29106832,23838824,31649521>, r=67127450 +pos=<27886778,5156762,31921931>, r=90792537 +pos=<-30245014,32945222,62148589>, r=90361976 +pos=<76069699,31597706,42686985>, r=71666693 +pos=<63291081,24038510,-2371129>, r=76600743 +pos=<38853854,-27716283,43488899>, r=89794518 +pos=<54357185,10284404,43765990>, r=67575022 +pos=<85611850,18297771,46501522>, r=93551148 +pos=<37812274,20563176,30658516>, r=77158598 +pos=<72692964,25606986,29168021>, r=55989676 +pos=<49969115,13841257,39541884>, r=55405246 +pos=<35553101,-1155675,203246662>, r=56427687 +pos=<23516046,22904735,47228233>, r=76888890 +pos=<59370985,27104332,-4483715>, r=71727660 +pos=<56619379,1325542,64133076>, r=99162568 +pos=<-60509618,19883819,32774638>, r=96846620 +pos=<30946344,8828953,29893090>, r=88377708 +pos=<90188191,21091183,44401368>, r=93233980 diff --git a/src/Day23.hs b/src/Day23.hs index 6ef9dd8..9325bf4 100644 --- a/src/Day23.hs +++ b/src/Day23.hs @@ -1,6 +1,35 @@ module Day23 (main) where +data Bot = Bot Position Radius deriving (Eq) +type Position = (Int, Int, Int) +type Radius = Int + +instance Ord Bot where + Bot _ rad1 <= Bot _ rad2 = rad1 <= rad2 + +parse :: String -> Bot +parse str = + let pos = takeWhile (/= '>') . drop 5 $ str + rad = drop 2 . last . words $ str + in Bot (read $ "(" ++ pos ++ ")") (read rad) + +manhattan :: Position -> Position -> Int +manhattan (x1, y1, z1) (x2, y2, z2) = abs (x1 - x2) + abs (y1 - y2) + abs (z1 - z2) + +-- botInRange b1 b2 = is b2 within the range of b1? +botInRange :: Bot -> Bot -> Bool +botInRange (Bot pos1 radius) (Bot pos2 _) = manhattan pos1 pos2 <= radius + +-- inRange pos bot = is pos within the range of bot? +inRange :: Bot -> Position -> Bool +inRange (Bot bPos radius) pos = manhattan bPos pos <= radius + +part1 :: [Bot] -> Int +part1 bots = + let maxBot = maximum bots + in length $ filter (botInRange maxBot) bots + main :: IO () main = do - input <- readFile "input/23.txt" - print input \ No newline at end of file + bots <- map parse . lines <$> readFile "input/23.txt" + print $ part1 bots