[py] Port 2016_04, kinda
This commit is contained in:
parent
c8f033b32f
commit
2038c5ccde
5 changed files with 85 additions and 420 deletions
|
|
@ -1,337 +0,0 @@
|
|||
rampaging projectile rabbit training-837[dmvbi]
|
||||
consumer grade flower acquisition-171[cptzd]
|
||||
colorful bunny purchasing-813[gnehk]
|
||||
unstable basket customer service-271[thigj]
|
||||
radioactive plastic grass workshop-318[mucil]
|
||||
international chocolate receiving-295[evzfk]
|
||||
rampaging dye user testing-143[rtaef]
|
||||
classified rabbit development-224[oscdk]
|
||||
weaponized dye shipping-190[ahwfv]
|
||||
cryogenic rabbit technology-886[amceg]
|
||||
unstable flower workshop-940[kahno]
|
||||
corrosive flower training-391[qhndm]
|
||||
classified candy storage-428[goqrs]
|
||||
magnetic bunny analysis-926[xkcis]
|
||||
unstable flower training-711[ecikr]
|
||||
corrosive scavenger hunt analysis-384[ygktx]
|
||||
classified candy coating department-168[obhqr]
|
||||
cryogenic candy storage-325[pabel]
|
||||
projectile scavenger hunt engineering-122[mvoqz]
|
||||
magnetic military grade egg storage-229[lfjnw]
|
||||
fuzzy cryogenic basket laboratory-500[ilsun]
|
||||
fuzzy plastic grass user testing-147[bcadi]
|
||||
unstable flower design-745[nbuwa]
|
||||
international rabbit customer service-480[fhswb]
|
||||
military grade biohazardous candy technology-451[rfipu]
|
||||
fuzzy basket user testing-341[bpqrw]
|
||||
unstable dye research-637[refna]
|
||||
classified dye storage-621[hvdgl]
|
||||
consumer grade chocolate training-458[bkmox]
|
||||
magnetic jellybean development-697[jqsfr]
|
||||
projectile candy coating containment-952[xdmko]
|
||||
top secret projectile plastic grass research-582[uhijs]
|
||||
colorful bunny department-148[vbcmt]
|
||||
rampaging military grade candy coating operations-822[ksbqx]
|
||||
biohazardous jellybean development-385[jfqtg]
|
||||
top secret jellybean research-823[nabcj]
|
||||
cryogenic bunny research-374[dhsuo]
|
||||
magnetic plastic grass management-714[oabgh]
|
||||
military grade chocolate purchasing-805[bdjsf]
|
||||
top secret chocolate marketing-396[nyiwl]
|
||||
fuzzy candy research-927[ahijl]
|
||||
weaponized jellybean shipping-216[wafhd]
|
||||
rampaging scavenger hunt reacquisition-616[iqvmo]
|
||||
military grade flower marketing-323[gptxa]
|
||||
biohazardous plastic grass training-448[ucmla]
|
||||
classified rabbit operations-930[ogyhk]
|
||||
magnetic candy coating workshop-782[almye]
|
||||
international scavenger hunt marketing-422[hnuyc]
|
||||
projectile scavenger hunt acquisition-916[cyhnw]
|
||||
fuzzy scavenger hunt acquisition-684[afmkl]
|
||||
rampaging chocolate design-116[oubcq]
|
||||
unstable basket marketing-291[ovzfi]
|
||||
magnetic consumer grade basket user testing-828[iwxek]
|
||||
biohazardous plastic grass customer service-928[aizkm]
|
||||
unstable weaponized chocolate receiving-562[okmsx]
|
||||
consumer grade rabbit receiving-563[anrjk]
|
||||
fuzzy flower receiving-433[naior]
|
||||
colorful basket storage-829[rdhou]
|
||||
top secret basket financing-266[hnycm]
|
||||
international egg laboratory-330[ibvwz]
|
||||
corrosive basket user testing-441[ftsuj]
|
||||
rampaging jellybean sales-775[fjqls]
|
||||
international plastic grass sales-272[gobhw]
|
||||
consumer grade scavenger hunt training-218[dhuqw]
|
||||
magnetic flower workshop-177[tbjwf]
|
||||
top secret candy deployment-373[vkefg]
|
||||
cryogenic basket financing-886[lagce]
|
||||
biohazardous dye design-954[laimq]
|
||||
corrosive rabbit sales-246[fgcop]
|
||||
cryogenic scavenger hunt design-287[dmbfh]
|
||||
cryogenic rabbit workshop-662[cfpqw]
|
||||
rampaging scavenger hunt acquisition-464[emrkg]
|
||||
radioactive bunny purchasing-569[dlqfu]
|
||||
magnetic plastic grass logistics-673[vldfj]
|
||||
biohazardous jellybean engineering-524[ajewc]
|
||||
weaponized chocolate department-228[kguzi]
|
||||
international plastic grass containment-640[xdksc]
|
||||
rampaging classified plastic grass acquisition-365[hrzbf]
|
||||
international dye purchasing-482[zmudf]
|
||||
weaponized rampaging bunny receiving-354[xoskq]
|
||||
consumer grade weaponized rabbit user testing-456[qdefm]
|
||||
unstable chocolate acquisition-697[fhnty]
|
||||
weaponized egg containment-557[ctdip]
|
||||
unstable flower sales-756[cjqyd]
|
||||
cryogenic basket management-817[tcpbi]
|
||||
consumer grade flower customer service-826[kxiuy]
|
||||
military grade fuzzy candy user testing-552[clnsu]
|
||||
weaponized egg logistics-751[hjlrv]
|
||||
rampaging chocolate logistics-405[lnrtz]
|
||||
magnetic scavenger hunt laboratory-722[gktxz]
|
||||
rampaging rabbit technology-946[qwdeh]
|
||||
consumer grade rampaging chocolate research-773[hlyjn]
|
||||
fuzzy basket analysis-653[pxvwb]
|
||||
classified egg services-534[equos]
|
||||
biohazardous cryogenic rabbit research-687[gpdqr]
|
||||
weaponized jellybean containment-958[iremp]
|
||||
fuzzy bunny deployment-138[fqmrw]
|
||||
magnetic chocolate research-210[acyfm]
|
||||
consumer grade candy engineering-484[oxbqk]
|
||||
unstable flower storage-888[ahkno]
|
||||
international basket analysis-509[lydet]
|
||||
magnetic plastic grass workshop-241[ltbhi]
|
||||
weaponized candy storage-590[imlvw]
|
||||
biohazardous plastic grass technology-340[mqyae]
|
||||
projectile dye laboratory-864[ilyfn]
|
||||
consumer grade basket research-815[vijrt]
|
||||
top secret scavenger hunt technology-410[kzitu]
|
||||
cryogenic dye deployment-674[gaefp]
|
||||
fuzzy candy coating reacquisition-729[hbmzn]
|
||||
fuzzy weaponized basket user testing-465[hcvwd]
|
||||
cryogenic plastic grass management-725[dfhjq]
|
||||
cryogenic jellybean customer service-608[ushbd]
|
||||
consumer grade candy user testing-679[bkopa]
|
||||
consumer grade chocolate department-248[qadfm]
|
||||
unstable candy coating reacquisition-552[chunw]
|
||||
cryogenic rabbit financing-298[bwqfo]
|
||||
cryogenic scavenger hunt laboratory-103[sbdfo]
|
||||
international chocolate purchasing-846[mzafo]
|
||||
weaponized candy department-361[hdgqs]
|
||||
corrosive candy shipping-830[kepqr]
|
||||
cryogenic colorful candy coating operations-900[ymxbk]
|
||||
fuzzy dye sales-162[mstyf]
|
||||
classified magnetic plastic grass management-115[phtxb]
|
||||
corrosive plastic grass reacquisition-680[eonkw]
|
||||
unstable bunny workshop-638[zaegn]
|
||||
corrosive unstable chocolate shipping-243[fjtvz]
|
||||
cryogenic chocolate analysis-894[seqbd]
|
||||
magnetic classified candy operations-747[hpjlu]
|
||||
rampaging plastic grass containment-150[gtmoy]
|
||||
fuzzy scavenger hunt design-696[ktafm]
|
||||
unstable flower logistics-954[atbmq]
|
||||
colorful jellybean department-556[budeh]
|
||||
international candy design-621[qdlgh]
|
||||
radioactive projectile plastic grass development-239[zdovg]
|
||||
international basket laboratory-472[wpjkn]
|
||||
radioactive magnetic bunny management-967[ivzdh]
|
||||
projectile plastic grass analysis-965[pxfib]
|
||||
cryogenic jellybean sales-704[cjalq]
|
||||
unstable corrosive scavenger hunt analysis-830[ucgpt]
|
||||
military grade jellybean training-940[ewahj]
|
||||
corrosive chocolate reacquisition-335[rflhu]
|
||||
colorful bunny laboratory-978[ybvei]
|
||||
biohazardous dye department-606[svwgj]
|
||||
projectile bunny technology-250[oxydi]
|
||||
fuzzy rabbit development-821[pekma]
|
||||
top secret candy coating research-968[wylnu]
|
||||
rampaging jellybean technology-987[bfhmo]
|
||||
projectile plastic grass technology-152[gipsw]
|
||||
international basket customer service-129[fubjo]
|
||||
international scavenger hunt deployment-225[wncja]
|
||||
radioactive plastic grass sales-989[rzhbd]
|
||||
classified basket development-896[sghor]
|
||||
magnetic basket storage-224[dkocq]
|
||||
rampaging egg storage-542[keivm]
|
||||
fuzzy unstable dye management-506[sboah]
|
||||
rampaging dye storage-300[msdqa]
|
||||
biohazardous rabbit user testing-481[efgno]
|
||||
classified fuzzy plastic grass receiving-957[nxfhj]
|
||||
classified plastic grass customer service-353[dnptc]
|
||||
cryogenic rabbit services-443[bdhqa]
|
||||
biohazardous dye user testing-613[dpcef]
|
||||
top secret bunny research-351[reafg]
|
||||
colorful basket customer service-892[wgjku]
|
||||
cryogenic rabbit laboratory-296[heqrj]
|
||||
radioactive candy management-902[imvbk]
|
||||
northpole object storage-984[sixve]
|
||||
projectile dye user testing-387[hwluv]
|
||||
military grade scavenger hunt management-596[cgpio]
|
||||
classified dye design-471[abfpc]
|
||||
colorful basket analysis-147[bjuxa]
|
||||
cryogenic dye workshop-440[qaegt]
|
||||
cryogenic basket marketing-590[mbiko]
|
||||
colorful egg deployment-644[kruma]
|
||||
projectile candy coating engineering-630[hycaw]
|
||||
colorful rabbit services-509[cdmnp]
|
||||
projectile candy coating operations-665[zelnp]
|
||||
radioactive basket development-611[rgnbi]
|
||||
projectile flower analysis-159[biflo]
|
||||
military grade chocolate development-517[hdorw]
|
||||
top secret basket containment-698[xireg]
|
||||
fuzzy flower engineering-647[hqcij]
|
||||
fuzzy flower operations-915[jamuz]
|
||||
rampaging basket storage-530[qwhij]
|
||||
biohazardous dye financing-723[fnsit]
|
||||
international candy coating laboratory-259[bopuj]
|
||||
magnetic egg containment-847[yeprl]
|
||||
unstable scavenger hunt financing-184[lcyae]
|
||||
fuzzy plastic grass containment-410[gtyzf]
|
||||
projectile chocolate deployment-641[nxclu]
|
||||
unstable candy coating financing-684[fsaul]
|
||||
weaponized plastic grass sales-313[rzdhk]
|
||||
weaponized scavenger hunt analysis-836[ajwoe]
|
||||
unstable rabbit analysis-248[menfu]
|
||||
weaponized military grade rabbit research-670[gkxoh]
|
||||
projectile candy deployment-204[icghp]
|
||||
rampaging military grade plastic grass research-847[lcdrt]
|
||||
biohazardous candy coating development-340[mybcl]
|
||||
military grade magnetic rabbit sales-931[fnjwy]
|
||||
weaponized bunny purchasing-827[sfjnu]
|
||||
top secret unstable flower operations-733[zjomn]
|
||||
cryogenic dye department-122[mbgkl]
|
||||
magnetic flower shipping-118[ubqsz]
|
||||
weaponized basket marketing-989[dzhjm]
|
||||
unstable bunny training-654[jepqw]
|
||||
unstable military grade plastic grass development-928[imabt]
|
||||
radioactive jellybean research-765[tpgar]
|
||||
unstable chocolate technology-174[wbkmt]
|
||||
colorful candy storage-275[zclnw]
|
||||
military grade chocolate containment-828[exgim]
|
||||
weaponized candy workshop-793[bacjn]
|
||||
unstable egg research-266[yalmu]
|
||||
colorful projectile plastic grass engineering-613[pctwd]
|
||||
top secret scavenger hunt purchasing-752[geptu]
|
||||
colorful jellybean management-421[gzivh]
|
||||
weaponized chocolate sales-440[gcqen]
|
||||
corrosive dye engineering-399[veizf]
|
||||
rampaging candy coating laboratory-792[obcfu]
|
||||
cryogenic scavenger hunt analysis-680[jaowy]
|
||||
magnetic egg management-489[jlfrs]
|
||||
projectile basket logistics-294[aklwd]
|
||||
unstable bunny reacquisition-772[vcqab]
|
||||
fuzzy plastic grass management-849[jbcin]
|
||||
military grade scavenger hunt containment-968[hnuyc]
|
||||
unstable flower operations-883[fpbmo]
|
||||
radioactive rabbit customer service-201[lpyah]
|
||||
corrosive egg logistics-507[bftve]
|
||||
corrosive egg design-811[bzdjm]
|
||||
consumer grade classified candy coating financing-761[gbtvl]
|
||||
rampaging top secret flower shipping-269[givxz]
|
||||
corrosive chocolate user testing-807[dnbqr]
|
||||
magnetic dye training-282[mreik]
|
||||
biohazardous scavenger hunt purchasing-865[tagkl]
|
||||
military grade weaponized rabbit storage-245[pgtxi]
|
||||
unstable scavenger hunt storage-378[qefmz]
|
||||
classified candy containment-725[qdflg]
|
||||
projectile basket engineering-245[tcxgi]
|
||||
military grade egg deployment-563[npach]
|
||||
international egg operations-576[jaekp]
|
||||
consumer grade chocolate marketing-876[mikwz]
|
||||
military grade egg workshop-417[fqdhn]
|
||||
consumer grade jellybean training-388[gpcti]
|
||||
unstable scavenger hunt customer service-133[bpkoq]
|
||||
weaponized scavenger hunt containment-704[lcrya]
|
||||
projectile scavenger hunt containment-829[hqwfd]
|
||||
unstable egg customer service-152[iwgkv]
|
||||
military grade candy coating containment-632[fsalu]
|
||||
magnetic candy coating deployment-684[flsuw]
|
||||
fuzzy top secret jellybean deployment-222[qfkxa]
|
||||
international flower user testing-233[foujs]
|
||||
unstable jellybean user testing-593[jqsxy]
|
||||
radioactive dye engineering-348[uydhq]
|
||||
consumer grade biohazardous bunny customer service-951[cpdfz]
|
||||
weaponized bunny analysis-644[tgeko]
|
||||
colorful chocolate services-142[cqszf]
|
||||
radioactive dye design-860[bcgya]
|
||||
projectile chocolate laboratory-773[vahjl]
|
||||
international dye research-132[clpyg]
|
||||
biohazardous plastic grass analysis-700[cuknq]
|
||||
magnetic scavenger hunt deployment-685[vekdr]
|
||||
unstable rabbit deployment-250[dlokv]
|
||||
military grade rabbit receiving-205[ludhe]
|
||||
colorful bunny containment-490[rsgpx]
|
||||
colorful chocolate deployment-862[khayp]
|
||||
top secret egg workshop-283[hrjsu]
|
||||
biohazardous dye deployment-109[jyztv]
|
||||
magnetic candy coating development-872[qzfmo]
|
||||
projectile chocolate logistics-326[aofqu]
|
||||
radioactive egg workshop-219[dgptv]
|
||||
international scavenger hunt research-574[clpyr]
|
||||
fuzzy egg logistics-640[qcjsd]
|
||||
magnetic dye financing-641[wrjln]
|
||||
weaponized candy coating financing-187[idvxb]
|
||||
magnetic classified plastic grass marketing-705[fpxbd]
|
||||
consumer grade chocolate workshop-521[nbdqg]
|
||||
classified candy operations-680[eowaj]
|
||||
colorful scavenger hunt containment-721[uajlv]
|
||||
magnetic dye engineering-293[xgbzf]
|
||||
rampaging flower sales-246[ofgsu]
|
||||
projectile egg financing-434[moqvk]
|
||||
weaponized scavenger hunt department-227[luahk]
|
||||
corrosive colorful chocolate financing-215[hvbeg]
|
||||
top secret jellybean operations-809[blqik]
|
||||
consumer grade bunny deployment-570[gpafo]
|
||||
colorful bunny services-680[ahjkn]
|
||||
consumer grade plastic grass shipping-918[kahjs]
|
||||
weaponized candy coating laboratory-774[gutei]
|
||||
biohazardous jellybean marketing-603[vzdgi]
|
||||
classified chocolate user testing-522[cqagr]
|
||||
consumer grade rabbit development-804[gtcdf]
|
||||
unstable egg workshop-402[cgsub]
|
||||
biohazardous basket shipping-619[fnxgm]
|
||||
projectile egg operations-164[wgahj]
|
||||
colorful dye financing-431[ynqtw]
|
||||
rampaging plastic grass purchasing-838[uamcj]
|
||||
magnetic basket marketing-955[ahlnp]
|
||||
top secret candy customer service-937[dbqrs]
|
||||
weaponized flower engineering-781[dmhfn]
|
||||
military grade bunny containment-368[jepwa]
|
||||
projectile plastic grass operations-974[gcdfh]
|
||||
magnetic weaponized candy development-213[zivyd]
|
||||
fuzzy cryogenic dye engineering-556[udowy]
|
||||
international flower storage-158[clmpr]
|
||||
corrosive plastic grass workshop-291[njmdk]
|
||||
corrosive consumer grade candy coating reacquisition-541[hntwf]
|
||||
top secret weaponized egg research-886[cpaem]
|
||||
cryogenic dye research-805[fdszb]
|
||||
fuzzy bunny technology-372[fqgmr]
|
||||
biohazardous flower department-788[gjswl]
|
||||
biohazardous candy development-614[knoyx]
|
||||
colorful candy user testing-319[eghkl]
|
||||
projectile scavenger hunt analysis-500[yhmuc]
|
||||
corrosive egg reacquisition-239[djmzb]
|
||||
international plastic grass research-698[evwim]
|
||||
unstable flower shipping-241[begil]
|
||||
projectile flower technology-333[jtqhw]
|
||||
rampaging plastic grass workshop-541[fxluw]
|
||||
cryogenic dye user testing-246[sbfgh]
|
||||
corrosive candy reacquisition-786[cilwh]
|
||||
magnetic plastic grass reacquisition-795[tdlen]
|
||||
fuzzy basket reacquisition-452[yijkp]
|
||||
rampaging dye services-798[maioq]
|
||||
unstable plastic grass development-517[hvdow]
|
||||
biohazardous radioactive basket design-507[nvbfq]
|
||||
colorful candy coating laboratory-245[dpagr]
|
||||
colorful scavenger hunt services-748[kixya]
|
||||
classified candy coating design-209[hbcmr]
|
||||
radioactive egg financing-973[xcpvr]
|
||||
top secret jellybean user testing-596[gvunp]
|
||||
magnetic rabbit technology-107[qbdfk]
|
||||
biohazardous bunny shipping-978[sxcek]
|
||||
magnetic candy customer service-713[rtbcg]
|
||||
colorful basket engineering-140[udbeh]
|
||||
international flower design-721[ulpah]
|
||||
classified cryogenic scavenger hunt training-894[dysuh]
|
||||
colorful candy receiving-337[dfjmo]
|
||||
plastic grass research-636[gfoqs]
|
||||
weaponized egg receiving-379[prtya]
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
import re
|
||||
import sys
|
||||
|
||||
# PART 1
|
||||
|
||||
ROOM_RE = r"(.*)-(\d+)\[(.{5})\]\n"
|
||||
|
||||
def load_rooms(filename):
|
||||
rooms = []
|
||||
with open(filename, "r") as f:
|
||||
for line in f:
|
||||
match = re.fullmatch(ROOM_RE, line)
|
||||
name, sector, checksum = match.groups()
|
||||
name = name.split("-")
|
||||
sector = int(sector)
|
||||
rooms.append((name, sector, checksum))
|
||||
return rooms
|
||||
|
||||
def checksum(name):
|
||||
name = "".join(name)
|
||||
freqs = {}
|
||||
for char in name:
|
||||
freqs[char] = freqs.get(char, 0) + 1
|
||||
|
||||
top = freqs.items()
|
||||
top = sorted(top, key=lambda x: x[0])
|
||||
top = sorted(top, key=lambda x: x[1], reverse=True)
|
||||
top = list(top)[:5]
|
||||
top = map(lambda x: x[0], top)
|
||||
return "".join(top)
|
||||
|
||||
def sum_correct_sectors(rooms):
|
||||
total = 0
|
||||
for name, sector, chk in rooms:
|
||||
if checksum(name) == chk:
|
||||
total += sector
|
||||
return total
|
||||
|
||||
# PART 2
|
||||
|
||||
def shift(s):
|
||||
new_s = []
|
||||
for c in s:
|
||||
if ord("a") <= ord(c) <= ord("z"):
|
||||
new_c = chr(ord("a") + ((ord(c) - ord("a") + 1) % (ord("z") - ord("a") + 1)))
|
||||
new_s.append(new_c)
|
||||
elif ord("A") <= ord(c) <= ord("Z"):
|
||||
new_c = chr(ord("A") + ((ord(c) - ord("A") + 1) % (ord("Z") - ord("A") + 1)))
|
||||
new_s.append(new_c)
|
||||
else:
|
||||
new_s.append("?")
|
||||
return "".join(new_s)
|
||||
|
||||
def decrypt_name(name, sector):
|
||||
for _ in range(sector % 26):
|
||||
name = map(shift, name)
|
||||
return " ".join(name)
|
||||
|
||||
def decrypt_names(rooms, filename):
|
||||
with open(filename, "w") as f:
|
||||
for name, sector, chk in rooms:
|
||||
if checksum(name) == chk:
|
||||
name = decrypt_name(name, sector)
|
||||
line = f"{name}-{sector}[{chk}]\n"
|
||||
f.write(line)
|
||||
|
||||
def main(filename):
|
||||
rooms = load_rooms(filename)
|
||||
print(f"Solutions for {filename}")
|
||||
total = sum_correct_sectors(rooms)
|
||||
print(f"Part 1: {total}")
|
||||
filename_2 = filename + ".decrypted"
|
||||
decrypt_names(rooms, filename_2)
|
||||
print(f"Part 2: see {filename_2} (search for 'northpole object storage')")
|
||||
|
||||
if __name__ == "__main__":
|
||||
for filename in sys.argv[1:]:
|
||||
main(filename)
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
aaaaa-bbb-z-y-x-123[abxyz]
|
||||
a-b-c-d-e-f-g-h-987[abcde]
|
||||
not-a-real-room-404[oarel]
|
||||
totally-real-room-200[decoy]
|
||||
Loading…
Add table
Add a link
Reference in a new issue