7cd525cc4188739ef3126c0d9a5e4a2dbcd78e95 — T T 4 months ago 82c1d01
Day 23
3 files changed, 1142 insertions(+), 1 deletions(-)

M aoc18.asd
A day23.input
A day23.lisp
M aoc18.asd => aoc18.asd +2 -1
@@ 36,4 36,5 @@ (:file "day19")
  	       (:file "day20")
  	       (:file "day21")
- 	       (:file "day22")))
+ 	       (:file "day22")
+ 	       (:file "day23")))

A day23.input => day23.input +1000 -0
@@ 0,0 1,1000 @@
+ pos=<59777541,48321754,69013496>, r=69839895
+ pos=<-1145936,22090041,48569477>, r=78828446
+ pos=<43994856,33147983,-34281175>, r=97476362
+ pos=<20281424,21811967,23189495>, r=52383137
+ pos=<14854734,20952948,53360659>, r=66481762
+ pos=<30587031,39285404,59014523>, r=74735929
+ pos=<36659146,65296510,49108069>, r=84768320
+ pos=<22161641,4693122,18023010>, r=62395167
+ pos=<5379571,13256325,36993463>, r=58611824
+ pos=<48978359,-9153995,72135524>, r=72565036
+ pos=<-20694619,130904946,58923444>, r=67099619
+ pos=<44421341,-13236501,75711357>, r=84780379
+ pos=<-936169,18411504,41547257>, r=67917798
+ pos=<17358648,21413965,45722495>, r=56800708
+ pos=<-102166962,-30607798,36079278>, r=67644817
+ pos=<26575075,26667027,65544660>, r=72659853
+ pos=<31558538,28774715,54233474>, r=58473007
+ pos=<3113922,32664010,50114111>, r=86687096
+ pos=<59912973,29031775,41568207>, r=64575955
+ pos=<106268940,23466276,46866072>, r=69328981
+ pos=<10043010,25367403,48103365>, r=70450629
+ pos=<9034111,45372480,47155438>, r=90516687
+ pos=<14610699,35364510,67032878>, r=94809850
+ pos=<-23810048,14827817,44841356>, r=94077505
+ pos=<10779948,46576055,35775710>, r=78594861
+ pos=<-6123452,38974483,28804512>, r=90335380
+ pos=<20282721,52877188,43221249>, r=82838592
+ pos=<24929908,17751718,78510410>, r=78355188
+ pos=<96471152,26843287,37678893>, r=53720962
+ pos=<21145904,20889494,47122738>, r=53889333
+ pos=<45386036,19162848,80704402>, r=61504086
+ pos=<11949969,55207797,44096309>, r=94377057
+ pos=<48483961,19541759,27996041>, r=96389906
+ pos=<87295929,57485274,54346596>, r=91854933
+ pos=<43880638,20486336,108547760>, r=92176332
+ pos=<48336085,81843649,19323670>, r=88226012
+ pos=<54292070,2501945,83626880>, r=67086805
+ pos=<48549028,29819358,39610912>, r=80722462
+ pos=<-4192880,17938228,35132771>, r=64287232
+ pos=<26110772,24586162,72401126>, r=77899558
+ pos=<50068707,54908207,68525737>, r=80388249
+ pos=<22655884,33501505,73047079>, r=90915734
+ pos=<36995656,51965796,62561651>, r=84554821
+ pos=<23220876,20322152,52743324>, r=56867467
+ pos=<-30303329,45802799,122045709>, r=89022620
+ pos=<-2004386,7180325,32468510>, r=69628813
+ pos=<38812468,29129898,83851031>, r=81191332
+ pos=<22432818,4640386,36590098>, r=49770806
+ pos=<8052302,12857059,60369616>, r=79714283
+ pos=<-109283238,63595101,38019053>, r=62818035
+ pos=<34863483,41418660,74126380>, r=87704884
+ pos=<120440800,19767151,35274661>, r=68210086
+ pos=<7713398,32087299,15435949>, r=82979892
+ pos=<55218397,22590748,39354296>, r=74608835
+ pos=<71829522,67304351,41451926>, r=73312904
+ pos=<44513566,20500250,70206176>, r=53215967
+ pos=<63444955,23186248,74269082>, r=53627495
+ pos=<48136195,85589765,47942852>, r=92419289
+ pos=<-6578087,27857626,49115966>, r=90574600
+ pos=<-13067400,20625071,36499057>, r=77214709
+ pos=<23512289,-22491356,29986290>, r=76265682
+ pos=<5283011,6944687,57591169>, r=85617339
+ pos=<110661874,38294491,53383780>, r=95067282
+ pos=<98218393,42731800,29235062>, r=71461314
+ pos=<19165085,9421506,68061956>, r=79729269
+ pos=<100838022,28425194,26340575>, r=62668835
+ pos=<-14345863,-70621,44084786>, r=98755715
+ pos=<49228172,51452846,63429133>, r=72677002
+ pos=<84179664,37353547,35914308>, r=50174908
+ pos=<33057108,52760223,64030321>, r=90756372
+ pos=<34960750,59275272,37851823>, r=69189222
+ pos=<37682599,7925968,6299680>, r=55364977
+ pos=<12478584,44785030,38647677>, r=77977082
+ pos=<36619531,5299828,54057852>, r=52392536
+ pos=<35278323,20680675,5941270>, r=53502995
+ pos=<45536314,19019684,74807176>, r=55313516
+ pos=<47397995,19235400,72650689>, r=51511046
+ pos=<58853549,84410939,53801881>, r=89793633
+ pos=<119039452,17982172,34728204>, r=64477218
+ pos=<36261056,51604837,75728492>, r=98095142
+ pos=<54114981,26410945,84145733>, r=63464639
+ pos=<5556384,19792429,71938948>, r=93197901
+ pos=<50279039,65323466,43583608>, r=65651625
+ pos=<86226161,30174635,60718693>, r=69846609
+ pos=<-11267887,20792789,15332821>, r=90769843
+ pos=<44667352,24885071,108244407>, r=95485237
+ pos=<15038266,51286113,39588349>, r=82859147
+ pos=<32122177,41933514,41499267>, r=58333527
+ pos=<-2577210,45268330,28980084>, r=92907630
+ pos=<111006384,18081664,49195118>, r=71010378
+ pos=<47791962,-18383345,80358448>, r=91203790
+ pos=<27125832,-47031642,37600615>, r=97760295
+ pos=<2286044,1699752,36892376>, r=73160669
+ pos=<-26761492,17613250,19287593>, r=99129102
+ pos=<12783411,18040799,42086775>, r=54367337
+ pos=<37033558,12763589,4816176>, r=52659706
+ pos=<32925744,31924940,46900362>, r=52922510
+ pos=<25453812,22531858,64574793>, r=68675913
+ pos=<21024321,23579345,52846312>, r=62424216
+ pos=<14138260,26436360,40135332>, r=59456609
+ pos=<35326653,18508524,29067121>, r=96259198
+ pos=<-799423,21294864,36874972>, r=65992132
+ pos=<-17944221,18469608,46860551>, r=90297451
+ pos=<120420501,25009718,57775828>, r=95933169
+ pos=<-9315271,-7961196,30601217>, r=93948215
+ pos=<6488192,22585155,20688941>, r=69450220
+ pos=<18774013,29361268,59769594>, r=77379886
+ pos=<92593863,-364121,38502993>, r=57419565
+ pos=<24980919,3795720,50195663>, r=61673174
+ pos=<41691078,24092876,35817655>, r=73463628
+ pos=<48573495,25593227,75061022>, r=59103791
+ pos=<38684417,37893248,48861415>, r=55093144
+ pos=<-13455238,19824953,8547041>, r=98775099
+ pos=<11417760,28084941,8720492>, r=81988695
+ pos=<82046815,-22380489,30164490>, r=67240095
+ pos=<-19233978,18569753,29698627>, r=82147030
+ pos=<43973426,45257626,49198709>, r=57505788
+ pos=<7091987,34250986,38304051>, r=72485973
+ pos=<59296394,80723655,60186616>, r=92933808
+ pos=<20717483,35124816,45456384>, r=66886669
+ pos=<73018492,52486705,81044929>, r=99277279
+ pos=<31918824,35354750,57286057>, r=67744854
+ pos=<101617903,40656494,34625406>, r=69626981
+ pos=<-21298992,17717346,34593115>, r=80632412
+ pos=<-3651734,41462745,41455091>, r=93592816
+ pos=<2667169,21835630,55638371>, r=81829778
+ pos=<43566485,21448379,43260062>, r=52753491
+ pos=<12339044,36893129,40251380>, r=71828651
+ pos=<106616414,24465553,37010007>, r=60819166
+ pos=<31416866,12079347,79229201>, r=75987017
+ pos=<-9221415,20291333,40012805>, r=76548588
+ pos=<-13566141,8397063,46448929>, r=91872301
+ pos=<17391475,9496393,84812411>, r=98178520
+ pos=<11133995,-910899,23445557>, r=73604277
+ pos=<21103238,3390141,54528854>, r=70289634
+ pos=<-8337287,26573253,46120114>, r=88053561
+ pos=<16310715,28428005,39248463>, r=58388627
+ pos=<29394172,58479894,43911793>, r=80020670
+ pos=<24068019,76693018,28370082>, r=98297202
+ pos=<60119583,23646580,-29636406>, r=73148811
+ pos=<12011815,32257072,38364948>, r=65633078
+ pos=<-7355744,12595264,53520673>, r=88535136
+ pos=<58821660,81050324,34503182>, r=67102302
+ pos=<141094576,21040881,42180630>, r=97043197
+ pos=<75775298,55530843,66572858>, r=90606282
+ pos=<24439029,51406450,19730401>, r=81278945
+ pos=<-7150520,39300488,37409352>, r=90883446
+ pos=<29020792,-6701253,1676635>, r=83277074
+ pos=<39890928,54240123,37112566>, r=58484657
+ pos=<33871196,31188582,47137211>, r=51477705
+ pos=<75980040,-31700272,39956976>, r=73595378
+ pos=<47419964,95194089,36016307>, r=90813314
+ pos=<45635759,67358448,3276930>, r=92487698
+ pos=<30861373,46954455,53904825>, r=77021137
+ pos=<79628072,24504864,59069680>, r=55929717
+ pos=<6010599,28228672,51007058>, r=80248495
+ pos=<58615945,91030331,36325555>, r=78699388
+ pos=<41440001,23980726,37386343>, r=79581175
+ pos=<6028525,39299313,22372333>, r=84940574
+ pos=<34830735,32417105,19321575>, r=52306708
+ pos=<-2863423,7750907,31881193>, r=70504533
+ pos=<44844343,80274806,35666685>, r=78120100
+ pos=<34718353,24397949,13789763>, r=49931786
+ pos=<30748229,19051110,89455083>, r=84780838
+ pos=<49336418,71783619,38510487>, r=67980579
+ pos=<27546488,21479659,66926782>, r=67882868
+ pos=<77256628,35630679,54382046>, r=59996474
+ pos=<103743887,43704832,45552245>, r=85728087
+ pos=<48694844,58374645,42203091>, r=58905824
+ pos=<13461414,11507741,49389040>, r=64673987
+ pos=<-14120310,17670696,39731350>, r=78545678
+ pos=<42143240,12123129,78725520>, r=64713043
+ pos=<5888641,18075928,35507616>, r=54717787
+ pos=<118445317,6762643,51720810>, r=89361577
+ pos=<19283516,12288874,-18814091>, r=94514625
+ pos=<58439758,49153963,-9160558>, r=76500459
+ pos=<15392203,3494810,64057657>, r=85424629
+ pos=<32009743,-8415084,51353868>, r=68013403
+ pos=<59205462,44587619,37150182>, r=86865403
+ pos=<67815440,59712555,65866358>, r=86121469
+ pos=<116451463,11469725,41477390>, r=72417258
+ pos=<6904751,23479590,35482808>, r=59080648
+ pos=<53692660,28752147,88977090>, r=71059444
+ pos=<12463898,20103705,36259025>, r=50921807
+ pos=<22241729,47299650,53327876>, r=85409056
+ pos=<53363982,62536507,70726339>, r=86921891
+ pos=<98333056,18169010,88618703>, r=97848200
+ pos=<12053137,25931724,57038766>, r=77940222
+ pos=<42891748,20353430,35488566>, r=51593031
+ pos=<37011924,28678110,67729762>, r=66418887
+ pos=<107934767,40986747,38182238>, r=79831268
+ pos=<25595451,35661872,78360227>, r=95449576
+ pos=<45780790,81987935,13176989>, r=97072115
+ pos=<108960508,39030040,41713791>, r=82431681
+ pos=<31276576,29759006,67173353>, r=72678689
+ pos=<36544747,-24032261,43261633>, r=71003155
+ pos=<28338520,32212884,85410721>, r=96307969
+ pos=<12854360,21436241,39070150>, r=54674937
+ pos=<-10018650,20406458,44651824>, r=82099799
+ pos=<70520850,18548155,47775535>, r=85493234
+ pos=<-3022151,49973370,37187343>, r=97205838
+ pos=<19542611,31830468,22260251>, r=64069603
+ pos=<100654088,20472208,3549172>, r=77323345
+ pos=<13197790,39569240,24362643>, r=76050764
+ pos=<25752478,39266962,67413551>, r=87950952
+ pos=<91824172,21219249,55803416>, r=61573955
+ pos=<3995321,26226678,19176048>, r=77097227
+ pos=<-24114844,11648793,46299578>, r=99019479
+ pos=<26597791,63510041,47265936>, r=91201413
+ pos=<39958343,25096037,73894039>, r=66054818
+ pos=<54977841,61741611,39087274>, r=52873914
+ pos=<42135622,30325199,55118656>, r=50331133
+ pos=<1369697,37113490,56196979>, r=98964178
+ pos=<23910565,-6681339,52544492>, r=75569762
+ pos=<-13751601,24761048,27391684>, r=85163009
+ pos=<18878566,53360972,12139279>, r=96385093
+ pos=<14600579,3673853,72250752>, r=94230226
+ pos=<88732418,8023589,43888461>, r=50555515
+ pos=<21662510,30458782,48504434>, r=64323616
+ pos=<13994012,40470708,51988080>, r=85487939
+ pos=<52889397,17977044,124711375>, r=96822037
+ pos=<83719232,14390140,56387564>, r=51674746
+ pos=<85503864,18086711,56393647>, r=52711884
+ pos=<-2183809,23248188,34732918>, r=67188136
+ pos=<30394479,29221000,87851624>, r=93701052
+ pos=<37193942,28945985,5898117>, r=59895937
+ pos=<82448526,32863910,43967015>, r=52006687
+ pos=<29079397,22244429,86338111>, r=86526194
+ pos=<40167634,54270255,44574710>, r=65700437
+ pos=<45646907,33494797,79091901>, r=73962732
+ pos=<-16103574,19286870,35617700>, r=78031067
+ pos=<91090833,36706156,3785239>, r=83758037
+ pos=<10865296,22792280,61033999>, r=79983872
+ pos=<45529362,52864323,21545942>, r=59831199
+ pos=<95546946,-9738770,52183803>, r=83427685
+ pos=<49886229,53818495,25353853>, r=52620466
+ pos=<63291114,20900832,-28477356>, r=72415509
+ pos=<28940842,47495394,14737019>, r=77859461
+ pos=<48875289,63710267,49964316>, r=71822177
+ pos=<9271102,14174086,36183279>, r=52992019
+ pos=<8715001,51349512,37455434>, r=87112809
+ pos=<-14947867,14164219,52049545>, r=93087253
+ pos=<53182451,-2507454,67957589>, r=57536534
+ pos=<-9639503,28744584,39247204>, r=84654264
+ pos=<50338207,59713086,40694082>, r=57091844
+ pos=<-9612007,24796588,41791138>, r=83222710
+ pos=<15488009,50497941,30662585>, r=78389265
+ pos=<9245570,34743616,9046354>, r=90493636
+ pos=<39865022,-14149572,25591707>, r=55965781
+ pos=<26727323,17974864,56600453>, r=54870955
+ pos=<2170601,113456371,88761442>, r=64244139
+ pos=<-7717215,26406408,54584944>, r=95731448
+ pos=<51515171,54098413,45971660>, r=55578137
+ pos=<-23568414,1668817,36455921>, r=98609501
+ pos=<50843566,18109830,97807430>, r=72096643
+ pos=<47953866,60024573,4700436>, r=81412213
+ pos=<47339333,49070413,18925668>, r=56847546
+ pos=<51090435,66639076,-6403506>, r=95994102
+ pos=<-16365117,18148995,42139044>, r=83676085
+ pos=<56001612,60704270,44866194>, r=56591716
+ pos=<54439933,95800273,28293286>, r=87109208
+ pos=<33752994,51977841,19903882>, r=72362926
+ pos=<35142375,-47955109,29896765>, r=90189149
+ pos=<19758794,37619766,47611664>, r=72495565
+ pos=<27212701,20414162,66666446>, r=66890770
+ pos=<35111923,71396788,55669892>, r=98977620
+ pos=<8995750,49144535,27714007>, r=86476743
+ pos=<52153933,56235767,44128462>, r=55233174
+ pos=<80413709,42446401,31322960>, r=51283446
+ pos=<30398006,43700753,54428220>, r=74753830
+ pos=<78610407,25062278,58315854>, r=54715866
+ pos=<-3620647,23622906,44516720>, r=78783732
+ pos=<48321647,50702082,-8866038>, r=85288428
+ pos=<84641717,13507248,86479295>, r=83571869
+ pos=<1818508,18496788,62366091>, r=86067300
+ pos=<8926219,21598759,62666733>, r=82362137
+ pos=<79120383,62414860,45795433>, r=80058002
+ pos=<12812156,22617864,42205916>, r=59034660
+ pos=<34613807,-8835103,35725199>, r=50200404
+ pos=<32833291,43646091,45912771>, r=63748597
+ pos=<-32922160,14502790,34908436>, r=93581693
+ pos=<39910678,52580931,62734712>, r=82428080
+ pos=<45483880,28677096,-14581273>, r=71816472
+ pos=<9408009,29482006,45925606>, r=73022467
+ pos=<23876379,8615702,42632270>, r=50394179
+ pos=<71915194,-8934058,46536902>, r=53344264
+ pos=<104867186,25049192,37492973>, r=60136551
+ pos=<42147879,1920057,29769187>, r=65969098
+ pos=<70524045,47876809,72768797>, r=83897031
+ pos=<40750063,43447966,47130580>, r=56851401
+ pos=<52253597,13728275,99094317>, r=73366303
+ pos=<46238199,28589347,60703576>, r=50077599
+ pos=<17403774,24448954,52538849>, r=66606923
+ pos=<1129784,23927747,43318394>, r=73139255
+ pos=<59313426,-42495532,31914659>, r=62871437
+ pos=<-12525446,21075169,41926744>, r=82550225
+ pos=<5551511,17966877,27296262>, r=59161529
+ pos=<33255721,49859284,46806065>, r=70432630
+ pos=<49190994,20348133,47277581>, r=57802876
+ pos=<52898727,2520197,109015722>, r=93850713
+ pos=<81024269,58975859,45429450>, r=78156716
+ pos=<25128865,38359817,54491745>, r=74745608
+ pos=<47871150,24148622,86883843>, r=70184231
+ pos=<10315321,34592884,35520959>, r=66821910
+ pos=<59851781,69029117,20222567>, r=68404530
+ pos=<31781538,11535717,74384463>, r=71321160
+ pos=<50790442,-70834427,37271194>, r=97569087
+ pos=<4938718,11714944,29451434>, r=61167811
+ pos=<20324016,59568727,40650668>, r=86918693
+ pos=<9082439,30096348,-3281918>, r=98337764
+ pos=<8741816,32377117,40852686>, r=71511165
+ pos=<28813246,29716168,-6032276>, r=80977261
+ pos=<-12750165,28090595,39561170>, r=87424851
+ pos=<34918560,19850146,59228581>, r=51183109
+ pos=<105747563,5200235,45048968>, r=71554466
+ pos=<25880335,50274727,43832911>, r=75250779
+ pos=<61449514,19825106,91973668>, r=65975427
+ pos=<24294303,21679902,-7204020>, r=78631718
+ pos=<32185725,22110472,35802229>, r=78375260
+ pos=<36349916,21424346,61577781>, r=53675120
+ pos=<20977648,22660084,53979989>, r=62685394
+ pos=<32240322,18598358,58982090>, r=52362998
+ pos=<14770763,26816797,40069552>, r=59138504
+ pos=<36873021,60510630,35929281>, r=66590022
+ pos=<-1515712,-1850112,46712310>, r=90332013
+ pos=<20144990,38229409,63178530>, r=88286045
+ pos=<61974582,21428908,123022379>, r=99153004
+ pos=<46766777,43188217,49451568>, r=52895913
+ pos=<29467196,66342224,36716642>, r=80614533
+ pos=<9130530,52686467,28929702>, r=88668213
+ pos=<36672309,77381186,48656561>, r=96388345
+ pos=<114784182,31906119,38712093>, r=78129538
+ pos=<38460861,-13157030,51949267>, r=66899285
+ pos=<-37015531,18580205,35102084>, r=97720685
+ pos=<54405223,25537180,43740350>, r=92022427
+ pos=<-63368557,56775293,-8387596>, r=73791030
+ pos=<13498807,17644608,82593742>, r=93762439
+ pos=<86635837,37247502,61021083>, r=77631523
+ pos=<-25231794,23717565,23889142>, r=99102198
+ pos=<33839120,122268644,-54850293>, r=53392215
+ pos=<32948388,18860028,92202453>, r=85137026
+ pos=<50209855,41326533,55775798>, r=53915782
+ pos=<30423849,33446745,87846780>, r=97892635
+ pos=<32100178,17703045,86403643>, r=79029485
+ pos=<-2426677,19545926,53128105>, r=82124152
+ pos=<67485436,123943,75273281>, r=68593176
+ pos=<56152235,26958100,30938423>, r=69715480
+ pos=<5903370,24674367,37397506>, r=63191420
+ pos=<85761047,47275436,57549701>, r=83313525
+ pos=<39383273,32136146,63215504>, r=62991244
+ pos=<16828425,18615335,47107742>, r=55917515
+ pos=<13381199,26625577,62401188>, r=82668441
+ pos=<30460222,21733123,-30943340>, r=96258346
+ pos=<22941629,7692514,25038047>, r=51601087
+ pos=<38511033,44819298,55921675>, r=69252823
+ pos=<26449787,14023768,36435582>, r=67933534
+ pos=<24623930,18690683,54268015>, r=55358241
+ pos=<52891947,68136581,73734467>, r=96002015
+ pos=<124053128,25751213,53613088>, r=96144531
+ pos=<15803413,24834795,26771463>, r=56302136
+ pos=<38995005,-7759944,22660109>, r=53377835
+ pos=<42491519,12992460,73398191>, r=58168120
+ pos=<49165609,54226882,66301948>, r=78386164
+ pos=<9493629,-5061961,36523537>, r=72345720
+ pos=<39208655,-1847823,-17269141>, r=87181566
+ pos=<52187558,21237846,86032989>, r=62106191
+ pos=<115269144,9733281,36123464>, r=67617794
+ pos=<21702843,38247873,34546864>, r=58114809
+ pos=<44687161,50922289,37881569>, r=51139709
+ pos=<192408051,27654370,109633913>, r=57478054
+ pos=<22918542,38776668,68355518>, r=91236693
+ pos=<9883878,21714840,70747284>, r=89601264
+ pos=<19622644,29986891,70600100>, r=87987321
+ pos=<-13284853,26255817,43249917>, r=89813531
+ pos=<24390934,43639638,59752708>, r=86024498
+ pos=<39508241,59874178,67693035>, r=95082235
+ pos=<75687518,35079372,63585110>, r=67079165
+ pos=<-8284784,19257467,31788343>, r=69795889
+ pos=<60566927,51439648,63706357>, r=68440415
+ pos=<77386656,32356562,71879058>, r=74349421
+ pos=<67701078,18416485,36721589>, r=63381890
+ pos=<-6942208,23960344,36880391>, r=74805927
+ pos=<15921313,40524465,34522588>, r=66148754
+ pos=<131775318,27319111,30926403>, r=87914188
+ pos=<87220838,-31238545,43477147>, r=87894845
+ pos=<54045382,20537859,43893938>, r=97377377
+ pos=<15785572,32036220,23961027>, r=66331652
+ pos=<47300408,74818005,38254688>, r=72795225
+ pos=<34302951,17909431,35902968>, r=62621055
+ pos=<-45573,12210010,44829151>, r=72918737
+ pos=<124021694,41696049,35022398>, r=93467288
+ pos=<41118673,36379924,66269781>, r=68554111
+ pos=<19830145,55076555,10655885>, r=98632521
+ pos=<85359234,18174905,39204249>, r=88199942
+ pos=<-11996899,27702766,18767005>, r=94974585
+ pos=<18255449,30391418,22261566>, r=63916630
+ pos=<14655493,36749588,60802201>, r=89919232
+ pos=<62389725,58896981,37379520>, r=51393451
+ pos=<72093522,23219461,2139986>, r=52919463
+ pos=<35782179,91773559,34578830>, r=97593167
+ pos=<67822632,26747717,64011458>, r=51308921
+ pos=<52715312,38612041,68150924>, r=61070762
+ pos=<-18119432,22541610,37609881>, r=85293793
+ pos=<51851329,17893785,56861160>, r=56912605
+ pos=<34233885,27463378,78613283>, r=78865680
+ pos=<69900708,30051680,91957047>, r=84636941
+ pos=<65096097,19252998,37594492>, r=72495541
+ pos=<120137946,23289443,36376382>, r=72531319
+ pos=<41524732,-7179001,62219962>, r=68128138
+ pos=<51489259,23407732,82855533>, r=61796881
+ pos=<38299207,22650728,90913026>, r=82287496
+ pos=<127817527,19806118,23985382>, r=83384431
+ pos=<17174310,3761216,34540679>, r=53859056
+ pos=<41526891,20921991,81321246>, r=67739213
+ pos=<14426727,46459561,43115711>, r=82171633
+ pos=<839858,26942690,4434186>, r=95710563
+ pos=<53876509,28570339,-12854965>, r=61590715
+ pos=<45031740,45213966,49051168>, r=56256324
+ pos=<30316244,-2717400,23337761>, r=56336581
+ pos=<42667463,20695014,-34446367>, r=86516320
+ pos=<-111304,21499788,35010955>, r=63644937
+ pos=<30901292,19178345,8168156>, r=54150999
+ pos=<113797896,2726404,45863122>, r=82892831
+ pos=<53348435,75564918,36216134>, r=65455634
+ pos=<-7894176,27990734,51877290>, r=94785088
+ pos=<1504967,9224112,36497063>, r=66021838
+ pos=<34715596,17873626,77092065>, r=67273042
+ pos=<45602197,80691077,41620438>, r=83732213
+ pos=<-32339158,18655905,30450844>, r=94586141
+ pos=<52445232,42403635,38236543>, r=78934589
+ pos=<9557295,31378861,57691112>, r=86535793
+ pos=<25999390,450443,36786352>, r=50590372
+ pos=<113047332,18853778,37350765>, r=61979078
+ pos=<-3708046,33433247,38459935>, r=82624140
+ pos=<30872684,27258583,50810387>, r=54219303
+ pos=<32917293,41813289,40061537>, r=55980396
+ pos=<59336388,-14932760,11909288>, r=55336998
+ pos=<132388202,15306425,49828367>, r=92868240
+ pos=<24028092,18352567,70101776>, r=71449254
+ pos=<34953451,45519011,38736429>, r=56325024
+ pos=<53191326,29835697,-6062446>, r=56748768
+ pos=<-25358485,19467729,43547557>, r=95396818
+ pos=<18223962,70596292,36800975>, r=96196505
+ pos=<55004018,57998245,11445135>, r=65591264
+ pos=<79850965,21645435,35034290>, r=90793725
+ pos=<-10946234,32925037,47253157>, r=98147296
+ pos=<35778931,37611570,64007190>, r=72862798
+ pos=<36984260,31785366,55862448>, r=57686541
+ pos=<46741153,55036770,22503401>, r=59834436
+ pos=<-830950,5400385,39017698>, r=74702137
+ pos=<-880694,8510273,37974122>, r=70598489
+ pos=<81999592,40625074,25640687>, r=56730173
+ pos=<53817618,59538293,69462987>, r=82206702
+ pos=<-5876631,-548819,44002012>, r=90681321
+ pos=<1185845,30555214,24756913>, r=78654496
+ pos=<34106748,53398440,14618330>, r=78715315
+ pos=<93380663,11526618,4760366>, r=70071076
+ pos=<99741975,-7364699,47252372>, r=80317181
+ pos=<18468188,20194740,81446202>, r=90195622
+ pos=<10460927,39559608,49206610>, r=85328727
+ pos=<29460315,23054111,57427939>, r=58044646
+ pos=<15164059,7939316,46695735>, r=63846251
+ pos=<23165237,41769600,47886210>, r=73513520
+ pos=<41479599,33377750,37489286>, r=76137187
+ pos=<13943786,8594585,28019843>, r=56714871
+ pos=<22363562,26030516,46490382>, r=57180199
+ pos=<14844796,38373740,10431520>, r=87139435
+ pos=<9377805,17800410,38076251>, r=53522020
+ pos=<28772807,55598695,63558712>, r=97407488
+ pos=<21213987,54774887,50297993>, r=90881891
+ pos=<17264866,44234327,43904751>, r=77897080
+ pos=<37327048,55875204,66662659>, r=92234231
+ pos=<-15641030,34400555,27415895>, r=96667606
+ pos=<-6388394,12741853,35344246>, r=69244655
+ pos=<11977807,22967253,53023998>, r=71036329
+ pos=<95765055,34737609,41543121>, r=64772887
+ pos=<89710695,11598603,48693490>, r=52763709
+ pos=<55259312,108976,-31302674>, r=83207380
+ pos=<51111775,41654779,81720920>, r=79286965
+ pos=<104641583,19527811,50438299>, r=67334867
+ pos=<118787905,-6762861,42378305>, r=93887542
+ pos=<36514532,79389906,45669053>, r=95567309
+ pos=<89630982,40955793,55609918>, r=78923874
+ pos=<11714404,57152863,37704554>, r=90166293
+ pos=<719419,17619689,15307380>, r=75634845
+ pos=<10021273,34755378,66896910>, r=98654014
+ pos=<-30056874,18260977,35288180>, r=90628900
+ pos=<16322085,45124940,45930403>, r=81756151
+ pos=<38593325,-13947529,43432913>, r=59041014
+ pos=<20737801,22067089,53901895>, r=62254106
+ pos=<65079242,2911763,71509786>, r=59635469
+ pos=<33069313,-3801929,39290744>, r=50277234
+ pos=<34644992,41181481,61306680>, r=74866066
+ pos=<10786423,27226923,34916201>, r=58379627
+ pos=<120582944,4646026,41986490>, r=83881516
+ pos=<27743933,31095036,47095269>, r=57469269
+ pos=<42575662,40540066,82798386>, r=87785741
+ pos=<54201411,58699216,54975852>, r=66496811
+ pos=<61908491,15435774,-18304801>, r=57754739
+ pos=<24352844,52797115,55651666>, r=91118968
+ pos=<104279658,25772417,35289476>, r=58068728
+ pos=<93292080,24423315,44188013>, r=54630509
+ pos=<-4626235,-43854932,-48552526>, r=63298312
+ pos=<76526742,11290107,80303596>, r=71498682
+ pos=<53208335,22588042,84230710>, r=60633281
+ pos=<-32864079,19594048,32284446>, r=94215616
+ pos=<31885321,36927222,43599116>, r=55663939
+ pos=<-30702790,21865590,35139561>, r=94730814
+ pos=<2366666,31724710,60371207>, r=96752127
+ pos=<99460528,14725550,48414123>, r=59107190
+ pos=<51788628,57733122,56248389>, r=69215864
+ pos=<50051339,26076835,41260681>, r=81689734
+ pos=<1978387,25599437,56041804>, r=86685885
+ pos=<-15261481,18154497,54713397>, r=95152441
+ pos=<23217687,67068970,23445534>, r=94447795
+ pos=<49995,26318619,57120222>, r=90411761
+ pos=<39179734,26499663,96667955>, r=91010853
+ pos=<82003232,40498688,36266849>, r=51495909
+ pos=<55408393,-7730714,58336274>, r=50912452
+ pos=<18880197,22289546,11189108>, r=66262334
+ pos=<17985692,24442034,79231749>, r=92710961
+ pos=<12158339,21571700,42263835>, r=58700165
+ pos=<52293617,58752941,56427566>, r=69909770
+ pos=<25053142,42924588,39646956>, r=64541376
+ pos=<414805,21351352,19723721>, r=75254999
+ pos=<20415855,-11925572,58861950>, r=90625984
+ pos=<78067919,81345412,40084949>, r=92225429
+ pos=<7277253,144820743,56729112>, r=60010729
+ pos=<-4704126,24613784,52048090>, r=88389035
+ pos=<55400846,21435674,26056693>, r=52870233
+ pos=<35965306,41548369,42824481>, r=55430748
+ pos=<-10915287,33782862,27523664>, r=91216442
+ pos=<24130434,26697591,84621275>, r=94211295
+ pos=<-4568940,24742573,-114031252>, r=58401975
+ pos=<-8894455,28622943,35551684>, r=80091960
+ pos=<2382069,24055065,-3508504>, r=99223424
+ pos=<22284523,21218639,43849475>, r=49806723
+ pos=<48568787,27807179,37616810>, r=90381908
+ pos=<-11558946,19554635,22483823>, r=82671678
+ pos=<45796605,17619618,49495380>, r=51722514
+ pos=<105244841,35433617,41645013>, r=75051037
+ pos=<-5124864,19746156,59970402>, r=91864427
+ pos=<7825099,30932067,17529249>, r=79619734
+ pos=<22516765,36073993,65745523>, r=86325909
+ pos=<25141523,-2937607,38886447>, r=56936746
+ pos=<92420113,34604845,43263143>, r=63015256
+ pos=<22890927,21681177,-10441585>, r=83273757
+ pos=<53746155,28785604,69329468>, r=51391978
+ pos=<-18539974,17876851,39860339>, r=83300031
+ pos=<80064520,-49635565,35759278>, r=91417600
+ pos=<11793420,32535511,37414042>, r=65179144
+ pos=<31450070,32665970,42142504>, r=50381496
+ pos=<52229300,43332755,79396117>, r=77522656
+ pos=<68988269,-14699959,83575941>, r=93222388
+ pos=<-15368073,14776905,34943994>, r=75789022
+ pos=<-95889383,63672313,53033165>, r=88647795
+ pos=<6005062,25402019,46505994>, r=72925814
+ pos=<12585087,36243425,35396135>, r=66077344
+ pos=<13273154,-1648863,35569027>, r=64198604
+ pos=<30000749,31662358,57504383>, r=66189004
+ pos=<80344046,21045064,59371416>, r=53487627
+ pos=<37011499,7928601,103827267>, r=99141021
+ pos=<18530217,34867970,16840819>, r=73539115
+ pos=<24061315,37906108,46117616>, r=66985545
+ pos=<30177395,36647571,51358003>, r=64851064
+ pos=<14859073,11566717,53168493>, r=66996795
+ pos=<17026907,-30904925,44368370>, r=98500399
+ pos=<51180062,7820953,46152566>, r=75879218
+ pos=<49042452,65409406,64148201>, r=87538736
+ pos=<1169674,27632003,63847555>, r=97332749
+ pos=<-23287054,21670193,43602961>, r=95583088
+ pos=<118387315,9209629,37745269>, r=72881128
+ pos=<104525189,29898228,11145465>, r=83024372
+ pos=<49774043,74077816,35552325>, r=66879079
+ pos=<41392176,-4239773,18947813>, r=51172694
+ pos=<141235266,23643832,30778927>, r=93846322
+ pos=<43621154,53336760,77202033>, r=93940514
+ pos=<35560746,42836627,50505534>, r=64804355
+ pos=<-11837266,18022805,39761202>, r=76644139
+ pos=<26052219,18190696,51531586>, r=50692926
+ pos=<48316732,13548255,12528445>, r=61577230
+ pos=<39125906,13094015,29351410>, r=86141928
+ pos=<38435690,17646269,41401756>, r=72689323
+ pos=<21959832,29140758,6329186>, r=74893686
+ pos=<14375653,5239137,65114428>, r=85753488
+ pos=<-14910670,18201226,41051000>, r=81186161
+ pos=<5081803,35954466,35378063>, r=73273653
+ pos=<46324183,21354481,-5357813>, r=54430225
+ pos=<10068462,28192788,40870405>, r=66017594
+ pos=<7140736,40104056,37205793>, r=77192063
+ pos=<1687785,30007305,48269703>, r=83612134
+ pos=<58701827,26177909,115436841>, r=93043775
+ pos=<-6652036,22256229,39157270>, r=75088580
+ pos=<55047727,39585059,80870146>, r=72430633
+ pos=<44759641,28377585,90022061>, r=80662891
+ pos=<44633687,35878759,56328298>, r=54596507
+ pos=<37374349,39192591,41844575>, r=50685752
+ pos=<34142968,53097207,13960845>, r=79035366
+ pos=<21020843,34353683,75512472>, r=95868185
+ pos=<58314616,40260775,88843619>, r=80146208
+ pos=<-16949550,20915539,40331761>, r=85219906
+ pos=<29577737,10506098,54132540>, r=54303021
+ pos=<54532361,-11382207,61025902>, r=58129707
+ pos=<21278863,39846954,50964219>, r=76555252
+ pos=<15566333,43721264,45731502>, r=80909313
+ pos=<40303195,44736977,57805630>, r=69262319
+ pos=<13073789,32862619,36122829>, r=62934650
+ pos=<48720723,38758410,57408623>, r=54469283
+ pos=<27860048,21877541,63078891>, r=64119432
+ pos=<10298253,17807997,42120129>, r=56652775
+ pos=<33383446,-27441553,38819693>, r=73131762
+ pos=<-960702,38313309,49080836>, r=95377849
+ pos=<12397432,40488113,40668686>, r=75782281
+ pos=<55299081,86126415,44899488>, r=82749752
+ pos=<-17861586,13116847,36741367>, r=81740490
+ pos=<-9740343,-103272011,65892772>, r=60410178
+ pos=<46806849,54607855,56091200>, r=70915100
+ pos=<109877342,26933071,40420411>, r=69958080
+ pos=<50000659,65258989,53071772>, r=75353256
+ pos=<9983785,47441654,52311768>, r=96792508
+ pos=<21946575,42213308,40230684>, r=67520390
+ pos=<67969471,25644536,40100160>, r=50284570
+ pos=<93010226,664806,55889419>, r=74192974
+ pos=<52575095,-35044777,14118749>, r=75623941
+ pos=<118287043,14366481,34549502>, r=64428227
+ pos=<-16261462,15510004,34650035>, r=75655654
+ pos=<-5363303,23575551,38603116>, r=74564842
+ pos=<21487138,21156149,55384468>, r=62076845
+ pos=<45903568,21431512,91701275>, r=74252105
+ pos=<55297475,8674619,83555203>, r=59836983
+ pos=<74814260,43945549,9508660>, r=68997385
+ pos=<87071876,24333085,56785122>, r=60917329
+ pos=<53102876,25417047,42246082>, r=70976027
+ pos=<19362785,24903273,65107159>, r=77670549
+ pos=<23205269,-18694834,44239922>, r=79983577
+ pos=<22529340,33974372,73294699>, r=91762686
+ pos=<52758098,25198339,50015136>, r=78058706
+ pos=<27195062,53262183,48440770>, r=81531090
+ pos=<70191490,60014883,61951973>, r=84885475
+ pos=<4297390,17779162,45174207>, r=65679163
+ pos=<46318738,67324962,53135982>, r=81165091
+ pos=<91901985,21032690,48677477>, r=54339335
+ pos=<29369925,34364666,68314229>, r=80331860
+ pos=<18038582,22570058,13666304>, r=64907085
+ pos=<41323132,76957526,34723611>, r=77380926
+ pos=<51064259,28169192,70346079>, r=54473937
+ pos=<61992454,78501341,44785783>, r=78006775
+ pos=<117188148,35874628,35653392>, r=81443641
+ pos=<54316623,41617279,63207164>, r=57530716
+ pos=<32653487,450335,55896653>, r=63046765
+ pos=<-16126857,24231083,34677029>, r=82058016
+ pos=<4829612,19890161,34816549>, r=56899961
+ pos=<70956493,39205298,91922303>, r=94811248
+ pos=<50286299,1235909,39850600>, r=86329346
+ pos=<14054702,27748898,5362927>, r=82373232
+ pos=<-12113812,26316598,19378728>, r=93093661
+ pos=<62636565,38597219,-11197192>, r=72177183
+ pos=<39982189,25551859,32293472>, r=97366157
+ pos=<28343814,28498945,72834084>, r=80012249
+ pos=<50684601,29381976,51134308>, r=69146908
+ pos=<31659521,44540025,46912176>, r=66815668
+ pos=<94138174,43217374,35967279>, r=66050091
+ pos=<46927998,48755991,60326676>, r=69177642
+ pos=<70893000,46116752,58153527>, r=67890380
+ pos=<25666555,11203797,61109023>, r=64492524
+ pos=<42817582,19056454,43500471>, r=84594728
+ pos=<31416757,41350897,35271250>, r=52228791
+ pos=<7644837,-18239921,40518728>, r=91367898
+ pos=<-6315362,22859853,36865706>, r=73063819
+ pos=<41946101,10396430,73505274>, r=61416604
+ pos=<205456,23567372,53707536>, r=84092440
+ pos=<46064124,73519948,54438308>, r=88917398
+ pos=<6704762,22389185,45702314>, r=68409676
+ pos=<-13865793,18577220,44685153>, r=84151465
+ pos=<22569439,27645789,24616905>, r=54501364
+ pos=<33327042,11037978,77460281>, r=73349465
+ pos=<27131940,37541862,77211929>, r=94644715
+ pos=<99693007,30026782,43798929>, r=66245872
+ pos=<90608421,25026688,-18426808>, r=93808386
+ pos=<19310734,48395779,59076538>, r=95184718
+ pos=<14843632,31697313,47071382>, r=70948361
+ pos=<69817645,25693409,82190624>, r=70428884
+ pos=<-1133483,11094035,43527036>, r=73820412
+ pos=<-1023679,20141742,57117734>, r=85306238
+ pos=<68812577,-21446651,80028722>, r=96246083
+ pos=<18258435,55306031,44897756>, r=88968220
+ pos=<103555739,17713501,39749363>, r=53745741
+ pos=<38220592,56064144,47638299>, r=72504719
+ pos=<25145582,22244904,79774460>, r=83896681
+ pos=<-20577660,27010070,36160755>, r=90771807
+ pos=<-7774814,20542618,38522938>, r=73863686
+ pos=<8736843,-5783172,58069780>, r=95370013
+ pos=<-80447034,69648461,46696896>, r=62020245
+ pos=<44478191,25727757,36063613>, r=92088202
+ pos=<38598518,45295109,60152526>, r=73872460
+ pos=<23346294,1715744,58864683>, r=74056494
+ pos=<55012636,70665712,44328898>, r=67005518
+ pos=<82061607,21659779,95246957>, r=91695785
+ pos=<226831435,56918587,39359256>, r=98153821
+ pos=<29078939,26176977,47012669>, r=51133606
+ pos=<34100815,38905572,73357407>, r=85185075
+ pos=<25809156,18743762,-20350667>, r=87327411
+ pos=<21131000,51538438,37575208>, r=75005584
+ pos=<48652644,33969176,37293897>, r=77610047
+ pos=<-17275136,10515280,45785431>, r=92799143
+ pos=<-31019388,19878472,36718451>, r=94639205
+ pos=<6497783,42688042,24581901>, r=85650753
+ pos=<28040636,-11989986,49546308>, r=73749618
+ pos=<24265144,22142301,49766307>, r=54666811
+ pos=<36732574,57745337,13523316>, r=81531677
+ pos=<44446269,27411149,100943493>, r=90931403
+ pos=<47675876,64384855,41084493>, r=64816411
+ pos=<35083290,37535272,66567806>, r=76042738
+ pos=<28422899,51596182,68501214>, r=98697378
+ pos=<97151283,31692869,41164757>, r=62736199
+ pos=<-19802797,24888685,37488799>, r=89203174
+ pos=<46150099,23354615,67597937>, r=51825336
+ pos=<64802336,19286753,41872029>, r=63288442
+ pos=<-29118317,13081102,34877647>, r=91168796
+ pos=<22828639,36386805,36463179>, r=57044255
+ pos=<40989656,46590668,38704242>, r=51328249
+ pos=<33997563,123235298,116879184>, r=67646404
+ pos=<53795090,-40647023,55876025>, r=82981842
+ pos=<99990182,21815639,42264226>, r=56797366
+ pos=<16013186,12175090,-16677333>, r=95761988
+ pos=<55072611,24741442,39467691>, r=66963494
+ pos=<9922221,23917296,49431349>, r=70449463
+ pos=<61365680,38000282,-21050716>, r=80162905
+ pos=<44623036,72554218,43571165>, r=78525217
+ pos=<39480090,56300526,59466891>, r=83310346
+ pos=<49557018,21075751,39060452>, r=98077174
+ pos=<-127214286,18231605,50508993>, r=58395414
+ pos=<11038207,18165533,35642358>, r=49792565
+ pos=<-5349044,19391876,35358657>, r=67122510
+ pos=<84318637,57567018,35026156>, r=69639060
+ pos=<66853033,49912640,40892277>, r=50385699
+ pos=<15685022,19504111,45245055>, r=56087010
+ pos=<18195939,30348565,29825342>, r=56369271
+ pos=<-6364772,23063998,35155658>, r=71607362
+ pos=<42990717,40477225,1548610>, r=69979899
+ pos=<38538254,64985151,23365428>, r=77123895
+ pos=<815533,18684817,39371619>, r=64263845
+ pos=<43355976,73448950,36840885>, r=73956781
+ pos=<32828348,25982975,52218245>, r=52395843
+ pos=<104765043,38101829,41419518>, r=77013675
+ pos=<-17952571,23932955,35890067>, r=84798503
+ pos=<-8434809,26875998,12049457>, r=97303301
+ pos=<23959912,53886164,39196526>, r=76145742
+ pos=<34735452,50262934,15133040>, r=74436448
+ pos=<28429419,34340603,10066631>, r=69886659
+ pos=<43896790,30621431,68606505>, r=62354095
+ pos=<38154375,5873134,55371829>, r=51598341
+ pos=<43132272,38512160,-18801751>, r=88223600
+ pos=<124534738,19366185,59467098>, r=96095138
+ pos=<45985748,60527912,53065172>, r=74630353
+ pos=<10437518,25077112,29649703>, r=59032266
+ pos=<119834232,20412603,44051312>, r=77025338
+ pos=<49687940,67376519,48633570>, r=73345058
+ pos=<-25401586,8349766,39283759>, r=96589499
+ pos=<49716725,59848686,45257398>, r=62412226
+ pos=<-22254504,21123936,35647705>, r=86049098
+ pos=<43531302,64717990,51949363>, r=80158930
+ pos=<80381545,25144076,74440726>, r=72693547
+ pos=<18206400,22526886,55331638>, r=66675508
+ pos=<47551155,71377182,186064394>, r=55926973
+ pos=<-13410166,25066243,44881317>, r=90381119
+ pos=<22466851,30961657,-901656>, r=83438434
+ pos=<7401017,21929802,41746608>, r=63298629
+ pos=<46172102,47308999,81723898>, r=89883951
+ pos=<12924330,35392056,40806451>, r=70297040
+ pos=<48629478,41559501,-13567346>, r=80539507
+ pos=<-22402967,19456351,35467970>, r=84350247
+ pos=<109341056,23659394,61082519>, r=86810187
+ pos=<119554462,31109042,55171255>, r=98561868
+ pos=<22748304,4417706,37874355>, r=50962220
+ pos=<74026815,19827153,38272518>, r=63310774
+ pos=<39023773,19871893,45195792>, r=49802877
+ pos=<20378604,34143004,29288006>, r=58518334
+ pos=<22592969,32742758,65475193>, r=82648070
+ pos=<16117763,40662246,53450184>, r=85017596
+ pos=<13886433,28026609,25193210>, r=62988887
+ pos=<31818418,-41855029,25188905>, r=92120695
+ pos=<42922182,30068586,30909355>, r=84421003
+ pos=<46107204,-1262798,7599061>, r=54829965
+ pos=<13414269,22024884,71818002>, r=87451480
+ pos=<-44280163,96687843,63976820>, r=56811747
+ pos=<109705335,8341417,38552090>, r=65874140
+ pos=<50417141,22040671,88452743>, r=67099176
+ pos=<9012946,20968485,39887718>, r=58866152
+ pos=<50749135,2051824,36324184>, r=90161958
+ pos=<20091675,8362179,39787583>, r=51587684
+ pos=<51308493,-62559392,43002680>, r=94507583
+ pos=<73591550,65038440,47476449>, r=78833548
+ pos=<27797253,36322548,35520743>, r=51068937
+ pos=<-16104151,17649304,30184204>, r=77611181
+ pos=<107735008,27539643,56644681>, r=84646516
+ pos=<34072570,42046230,2318192>, r=79697388
+ pos=<48388076,64071368,45496647>, r=68202823
+ pos=<27185485,36734332,37294581>, r=53866455
+ pos=<40108253,45708588,47215088>, r=59838304
+ pos=<45269958,53051203,58250396>, r=73054787
+ pos=<-48444234,72507300,83380403>, r=68297083
+ pos=<54217066,71759552,60713131>, r=85278486
+ pos=<70088120,61002478,37240253>, r=61058023
+ pos=<60225038,38197009,91403378>, r=82552660
+ pos=<104545441,27503188,39052737>, r=63828577
+ pos=<77959992,51593229,37819062>, r=60099418
+ pos=<-2166815,24919819,37617701>, r=71727235
+ pos=<32838700,-18086407,47556125>, r=73057749
+ pos=<3257036,20343432,56837095>, r=80946983
+ pos=<-12597324,21109652,35238602>, r=75968446
+ pos=<24754148,40424155,72004834>, r=94697841
+ pos=<8218378,20432245,41011153>, r=60247885
+ pos=<39119144,71552109,39158367>, r=78614362
+ pos=<51424060,40887896,88981126>, r=85467974
+ pos=<24850997,29503511,39633714>, r=51309117
+ pos=<3425110,28177606,34838484>, r=66613930
+ pos=<-17784204,19722474,41067597>, r=85597150
+ pos=<87371891,31607409,48088382>, r=59794888
+ pos=<61995329,52871416,21427909>, r=53185193
+ pos=<142806566,13903887,34721984>, r=89582832
+ pos=<5847633,7492522,28669920>, r=65262849
+ pos=<5939278,2170201,48857346>, r=81001815
+ pos=<10640237,2640756,37611707>, r=64584742
+ pos=<34046165,20910056,58010486>, r=51897322
+ pos=<124264387,23071644,25043387>, r=82039047
+ pos=<33593187,17670032,92861700>, r=83961432
+ pos=<44038702,-43620802,44362409>, r=84198716
+ pos=<-4428704,20762028,38306398>, r=70520022
+ pos=<50394276,76403886,35543131>, r=68576178
+ pos=<18878847,25501137,37973642>, r=51618807
+ pos=<30504359,37736530,70740222>, r=84995335
+ pos=<47360045,60543203,62983414>, r=83189446
+ pos=<-9523488,25194886,38312795>, r=80054459
+ pos=<10901982,14244685,34872427>, r=49979632
+ pos=<10305120,39169246,18154575>, r=84751468
+ pos=<80559057,38962311,10550586>, r=68717451
+ pos=<85502891,6413379,78602482>, r=83650091
+ pos=<68394006,13581840,50968132>, r=67337294
+ pos=<35381385,20108957,-6221740>, r=64991364
+ pos=<-1381356,19934265,38607778>, r=66946538
+ pos=<-19568766,18417170,40721517>, r=85730398
+ pos=<-6133611,32204592,43824078>, r=89185145
+ pos=<41654597,-44685839,53025792>, r=96310907
+ pos=<22082067,31663833,49881174>, r=66485812
+ pos=<20847501,-947363,50465653>, r=70820051
+ pos=<46138503,-15600691,66538518>, r=76254635
+ pos=<18040465,34922328,55910804>, r=79815539
+ pos=<39257878,20674676,90417506>, r=78857184
+ pos=<44189608,38870085,92894004>, r=94597796
+ pos=<47128844,36629411,39972788>, r=80866030
+ pos=<51679131,40067727,58299767>, r=53711239
+ pos=<40358169,31765441,58064576>, r=56494972
+ pos=<111509,26471008,44054967>, r=77437333
+ pos=<103844282,19221802,38029720>, r=53822970
+ pos=<4886656,35380528,31675172>, r=72860657
+ pos=<8607328,23771373,29892032>, r=59314088
+ pos=<46077607,49062141,-17901067>, r=94927517
+ pos=<117151450,19162100,54529532>, r=83570545
+ pos=<53426400,-4309762,83848260>, r=74985472
+ pos=<31649895,-20998956,29679670>, r=66942565
+ pos=<4299328,38076212,28841417>, r=78977382
+ pos=<14637019,18288567,43919455>, r=54593944
+ pos=<50031808,58067770,-8007206>, r=90085291
+ pos=<32545705,13653296,92699649>, r=86754505
+ pos=<30422922,34234261,47281331>, r=58115973
+ pos=<96935579,21575840,39798647>, r=51037499
+ pos=<96773525,11290027,40355858>, r=51797448
+ pos=<87850120,7918658,46628126>, r=52517931
+ pos=<-151734092,20556943,38932714>, r=94746555
+ pos=<121626140,19034887,26316379>, r=74090936
+ pos=<111684444,28723739,37869352>, r=71004647
+ pos=<36770007,47648914,36317777>, r=54219568
+ pos=<31232841,69427785,35248259>, r=80466235
+ pos=<9338913,31230421,32438143>, r=63495391
+ pos=<40843285,49040181,-13793807>, r=96032618
+ pos=<9679675,24377613,45408268>, r=67129100
+ pos=<40668051,20799366,-15546445>, r=69719854
+ pos=<106924676,-7491438,20907712>, r=86485552
+ pos=<10740494,14611205,60944297>, r=75846852
+ pos=<-7914166,21481026,27656561>, r=75780621
+ pos=<38644472,24956124,59318505>, r=52653083
+ pos=<51438685,20070627,40267968>, r=72513388
+ pos=<6890922,26862148,56515929>, r=83510085
+ pos=<65386055,50169864,88780668>, r=97063784
+ pos=<39914923,-25655202,50248666>, r=76242823
+ pos=<48271760,22564201,101763628>, r=83079532
+ pos=<-15239870,21895763,34818160>, r=78976995
+ pos=<44327428,28083817,76784044>, r=67563444
+ pos=<49515519,60727366,29735435>, r=55518769
+ pos=<69941699,25308549,95654046>, r=83631395
+ pos=<7463459,20823898,40816322>, r=61199679
+ pos=<52071876,63150804,79765271>, r=97867227
+ pos=<54225942,74002069,53897686>, r=80696688
+ pos=<-25003034,20008404,44454395>, r=96488952
+ pos=<-48484059,24228325,132947062>, r=91953293
+ pos=<42152866,25010059,101666251>, r=91546627
+ pos=<26015507,20118357,58288683>, r=59414530
+ pos=<50109386,124229132,137074269>, r=70167058
+ pos=<-7569287,23026047,46090446>, r=83708693
+ pos=<26926580,18911005,60770531>, r=59777845
+ pos=<-20591930,22907825,34665040>, r=85187717
+ pos=<75662338,26010648,102085360>, r=96485504
+ pos=<-11534149,-5105116,40278879>, r=97172043
+ pos=<76493332,28496326,8670824>, r=56065012
+ pos=<16206692,34334070,46828764>, r=71979074
+ pos=<44681945,27401170,28154204>, r=96339122
+ pos=<47319600,44667688,64294364>, r=68665501
+ pos=<121305086,17824909,34969338>, r=66826449
+ pos=<25396678,22412753,58999844>, r=63038788
+ pos=<-8171754,43084861,28426690>, r=96871859
+ pos=<-5585894,23894309,42914621>, r=79417693
+ pos=<51995754,49305607,18936454>, r=52415425
+ pos=<88475876,41092855,39289766>, r=61585689
+ pos=<41051796,42583481,58585171>, r=67139767
+ pos=<36293348,22025223,58770377>, r=51525183
+ pos=<49745364,54136173,70245682>, r=81659361
+ pos=<24254259,45403063,50600328>, r=78772024
+ pos=<50482149,79323678,19747963>, r=83135531
+ pos=<96615917,43606444,46008579>, r=78958041
+ pos=<39538181,39507089,50981990>, r=57974120
+ pos=<22082846,31713029,37829937>, r=54483029
+ pos=<34776353,32568063,64170538>, r=68985130
+ pos=<31546662,6411736,64795033>, r=67090928
+ pos=<-12148539,18133709,36383253>, r=73688365
+ pos=<34444119,4283106,69183043>, r=70710186
+ pos=<20363301,-1543808,51836227>, r=73270825
+ pos=<32585047,47478656,72352589>, r=94269096
+ pos=<2002320,52406526,38768608>, r=96195794
+ pos=<-9663102,34236505,43893884>, r=94816371
+ pos=<25210140,26756248,-11164504>, r=86752561
+ pos=<22437620,38056492,16632396>, r=73028858
+ pos=<13779691,29153317,35486497>, r=57883025
+ pos=<25100131,39565718,75598945>, r=97087437
+ pos=<10003553,8549807,74321518>, r=96022328
+ pos=<50895944,29884297,97051009>, r=83062230
+ pos=<-2493919,36226264,37242221>, r=82985393
+ pos=<48642751,48652443,88202762>, r=95235461
+ pos=<7409814,38817886,51067532>, r=89498719
+ pos=<4873995,22081708,34839690>, r=59070399
+ pos=<43344444,70435619,26763001>, r=74370106
+ pos=<55894275,39975876,42177153>, r=80180744
+ pos=<1880895,42372027,37135744>, r=84650058
+ pos=<47364035,39680957,59574555>, r=58914341
+ pos=<43084627,18000109,95012215>, r=76950917
+ pos=<44265245,57873647,47851092>, r=68482939
+ pos=<55818150,56983821,49329331>, r=57518153
+ pos=<26602794,34956290,46016993>, r=61393352
+ pos=<25755045,42885994,38278046>, r=62431982
+ pos=<-13083346,24275923,39340628>, r=83723403
+ pos=<38630273,-28594406,68303913>, r=98521956
+ pos=<712803,38666973,34808496>, r=79785823
+ pos=<91010332,25188345,47922669>, r=56848583
+ pos=<72644855,19296889,79330776>, r=63999634
+ pos=<60012146,38599976,73988703>, r=65328117
+ pos=<-26489725,19195768,34972052>, r=87680456
+ pos=<15561114,13616114,76135913>, r=87212536
+ pos=<-51234073,55713088,104954159>, r=93078430
+ pos=<-29482911,22821379,30058468>, r=96287751
+ pos=<78841335,21146704,71417522>, r=64132715
+ pos=<87633429,18488417,-1642906>, r=67510929
+ pos=<59763129,23351008,56942941>, r=92723539
+ pos=<81093538,79321525,39671955>, r=92814286
+ pos=<56144058,-23193303,49233019>, r=56536278
+ pos=<107197678,-1012759,52747956>, r=86916678
+ pos=<44774013,62495766,47225446>, r=71970067
+ pos=<47928064,58945276,39656344>, r=57696551
+ pos=<49185986,62883751,44731792>, r=65452632
+ pos=<42298105,42234033,87554509>, r=94513645
+ pos=<42955452,-9474649,67674853>, r=74448028
+ pos=<27210535,32691243,65516772>, r=78020359
+ pos=<6246146,44783666,43422918>, r=88983307
+ pos=<50410483,77529556,44121497>, r=78263436
+ pos=<51004019,40661348,55225636>, r=51905828
+ pos=<83346842,44344003,36776748>, r=57194722
+ pos=<24883449,34674960,48168384>, r=64982780
+ pos=<53254470,49369715,84065301>, r=87203414
+ pos=<34805571,68472371,42413819>, r=83103483
+ pos=<40041450,41153934,46777811>, r=54913295
+ pos=<26701258,18312323,13487300>, r=52165725
+ pos=<11780737,27449213,36631075>, r=59322422
+ pos=<-8249349,30402635,53237354>, r=98912295
+ pos=<63175889,71103881,54678388>, r=81685265
+ pos=<47272770,17916196,72121734>, r=49788090
+ pos=<34381090,45601966,31659148>, r=53603694
+ pos=<19241712,36693400,53435666>, r=77910225
+ pos=<76417360,-13779006,36162045>, r=52316538
+ pos=<83683382,46289876,23222451>, r=66496963
+ pos=<4072097,34268236,39300535>, r=76519604
+ pos=<13405489,24033370,55865921>, r=73516982
+ pos=<78921542,12532435,58032805>, r=50380021
+ pos=<36075961,25512355,57821222>, r=54280498
+ pos=<8978640,17967695,36706417>, r=52718665
+ pos=<100457418,21389306,63389378>, r=77963286
+ pos=<-10741259,30396218,28885232>, r=86294173
+ pos=<37097106,77508059,43028389>, r=90462247
+ pos=<25181515,-20085597,38586554>, r=73744511
+ pos=<29370257,37440401,14082692>, r=68029376
+ pos=<27395114,32548381,40339764>, r=52515975
+ pos=<133303834,18297945,23653081>, r=87695283

A day23.lisp => day23.lisp +140 -0
@@ 0,0 1,140 @@
+ (in-package :aoc18)
+ 
+ (defstruct pos3
+   (x 0 :type fixnum)
+   (y 0 :type fixnum)
+   (z 0 :type fixnum))
+ 
+ (defun pos3-move (p1 p2)
+   (make-pos3 :x (+ (pos3-x p1) (pos3-x p2))
+ 	     :y (+ (pos3-y p1) (pos3-y p2))
+ 	     :z (+ (pos3-z p1) (pos3-z p2))))
+ 
+ (defun pos3-m-dist (p1 p2)
+   (+ (abs (- (pos3-x p1) (pos3-x p2)))
+      (abs (- (pos3-y p1) (pos3-y p2)))
+      (abs (- (pos3-z p1) (pos3-z p2)))))
+ 
+ (defstruct nanobot
+   (pos3 nil :type pos3)
+   (r 0 :type fixnum))
+ 
+ (defun bot-size (bot)
+   (with-slots (r) bot
+     (* r r r)))
+ 
+ (defun parse-nanobot (line)
+   (cl-ppcre:register-groups-bind ((#'parse-integer x y z r)) ("pos=<(.*),(.*),(.*)>, r=(.*)" line)
+     (make-nanobot :pos3 (make-pos3 :x x :y y :z z) :r r)))
+ 
+ (defun parse-day23-input (path)
+   (mapcar #'parse-nanobot (read-lines path)))
+ 
+ (defun find-strongest-nanobot (bots)
+   (let ((best nil))
+     (loop for bot in bots do
+ 	 (when (or (and best (> (nanobot-r bot) (nanobot-r best))) (null best))
+ 	   (setf best bot)))
+     best))
+ 
+ (defun in-range-of-bot (bot pos)
+   (<= (pos3-m-dist (nanobot-pos3 bot) pos) (nanobot-r bot)))
+ 
+ (defun in-range (bot bots)
+   (loop for b in bots when (in-range-of-bot bot (nanobot-pos3 b)) collecting bot))
+ 
+ (defun solve-day23-part1 (input)
+   (length (in-range (find-strongest-nanobot input) input)))
+ 
+ (test day23-part1
+   (is (= 433 (solve-day23-part1 (parse-day23-input "day23.input")))))
+ 
+ (defun in-range-pos (p bots)
+   (loop for b in bots when (in-range-of-bot b p) counting b))
+ 
+ (defun max-radius-from-zero (bots)
+   (let ((zero (make-pos3)))
+     (loop for bot in bots maximizing (+ (nanobot-r bot) (pos3-m-dist zero (nanobot-pos3 bot))))))
+ 
+ (defun min-r (bots)
+   (loop for b in bots minimizing (nanobot-r b)))
+ 
+ (defparameter *zero* (make-pos3))
+ 
+ (defparameter *3d-dirs* (list (make-pos3 :x 1) (make-pos3 :x -1)
+ 			      (make-pos3 :y 1) (make-pos3 :y -1)
+ 			      (make-pos3 :z 1) (make-pos3 :z -1)))
+ 
+ (defun pos3-times (p v)
+   (with-slots (x y z) p
+     (make-pos3 :x (* v x) :y (* v y) :z (* v z))))
+ 
+ (defun next-points (point delta &optional (from *zero*))
+   (let ((dist (pos3-m-dist from point))
+ 	(dirs (mapcar #'(lambda (p) (pos3-times p delta)) *3d-dirs*)))
+     (remove-if-not #'(lambda (p) (> (pos3-m-dist from p) dist)) (mapcar #'(lambda (d) (pos3-move point d)) dirs))))
+ 
+ (defun next-frontier (points delta from)
+   (remove-duplicates (mapcan #'(lambda (p) (next-points p delta from)) points) :test #'equalp))
+ 
+ (defun find-max (pos bots &optional (to-z most-positive-fixnum))
+   (let ((to-zero to-z)
+ 	(best 0)
+ 	(best-pos *zero*)
+ 	(set (lparallel:pmapcar #'(lambda (p) (cons (in-range-pos p bots) p)) pos)))
+     (loop for p in set do
+ 	 (when (> (car p) best)
+ 	   (setf best (car p)
+ 		 best-pos (cdr p)
+ 		 to-zero (pos3-m-dist *zero* (cdr p))))
+ 	 (when (and (= (car p) best) (< (pos3-m-dist *zero* (cdr p)) to-zero))
+ 	   (setf to-zero (pos3-m-dist *zero* (cdr p))
+ 		 best-pos (cdr p))))
+     (values best best-pos to-zero)))
+ 
+ (defun find-best-for-step (bots delta turns start)
+   (let ((current start)
+ 	(to-zero most-positive-fixnum)
+ 	(best-score 0))
+     (loop for turn from 0 to turns do
+ 	 (multiple-value-bind (score pos to-z) (find-frontiers-from bots delta turns current)
+ 	   (if (or (> score best-score) (< to-z to-zero))
+ 	       (setf current pos
+ 		     to-zero to-z
+ 		     best-score score))))
+     current))
+ 
+ (defun find-frontiers-from (bots delta turns &optional (from *zero*))
+   (let ((frontier (list from))
+ 	(best 0)
+ 	(best-pos)
+ 	(to-zero most-positive-fixnum))
+     (loop for turn from 1 to turns do
+ 	 (let* ((next-f (next-frontier frontier delta from)))
+ 	   (multiple-value-bind (val pos to-z) (find-max next-f bots to-zero)
+ 	     (when (< best val)
+ 	       (setf best val
+ 		     best-pos pos))
+ 	     (when (and (= best val) (< to-z to-zero))
+ 	       (setf to-zero to-z
+ 		     best-pos pos)))
+ 	   (setf frontier next-f)))
+     (values best best-pos to-zero)))
+ 
+ (defun solve-day23-part2 (input start-step)
+   (let ((step start-step)
+ 	(iter 10)
+ 	(best *zero*))
+     (block outer
+       (loop do
+ 	   (format t "best ~a; step: ~a; dist: ~a~%" best step (pos3-m-dist *zero* best))
+ 	   (let ((next-best (find-best-for-step input step iter best))
+ 		 (next-step (floor (/ step 2))))
+ 	     (setf step next-step
+ 		   best next-best)
+ 	     (when (= 0 next-step)
+ 	       (return-from outer)))))
+     (pos3-m-dist *zero* best)))
+ 
+ (test day23-part2
+   (is (= 107272899 (solve-day23-part2 (parse-day23-input "day23.input") 1000000))))