Created
December 8, 2017 13:38
-
-
Save PurpleMyst/31e497ac32e9f91add8748f90fd1c46c to your computer and use it in GitHub Desktop.
Solution for AoC Day 7 Part 2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apcztdj (61) | |
ulovosc (61) -> buzjgp, iimyluk | |
awpvs (88) | |
ykbjhi (14) | |
gxvketg (49) | |
gpmvdo (78) -> jjixrr, zacrh, smylfq, fdvtn | |
nwpmqu (6025) -> aytrde, grokih, pjqaa, nzzved | |
keiakhg (50) | |
vkrlz (22) | |
myzkj (40) | |
zkzpbbp (46) | |
eaumqtc (288) -> tvmvvxn, ckcpovl | |
htlovrb (1662) -> atxtq, ewsqqum, mjwviex | |
aoxky (53873) -> orzwmml, tcvtul, ygszhn | |
uhfiqwc (81) | |
gziopi (189) -> hboommj, glbipl, evojkum | |
rjksjq (66) | |
rwyzrl (1434) -> geiethw, nclvb, riphudi | |
gmusjd (98) | |
vjmwzo (76) | |
xymsu (153) -> kbgmlab, yjjewyt | |
mgiumh (64) | |
cnfcuww (40) | |
pgeoixp (211) -> qgrtg, svtcvi, rutmxs | |
zwwpva (89) | |
otgnir (87) | |
vxftbc (60) | |
xxpfmp (32) -> cnqemd, jmujchg, yfolyk, zalahl | |
tcrcyis (1098) -> tyealpm, dirvqby | |
ffjshhj (65) | |
powwpec (23) | |
gudpriq (171) -> zqxyn, bwxgrhf, dclnnlg | |
nzrbmfg (7) | |
fgptt (210) | |
hpcafa (91) | |
urepv (2628) -> qzcqhsk, iqeynjk, fakqhi | |
qzcqhsk (516) -> ujjksl, qccwy, cddbi, cvpoqqk, nnhlcn | |
riphudi (35) | |
nwtvzap (101) -> iwumx, bpazmfd | |
xhxctp (84) | |
dkpmgrq (94) | |
rvftpif (5) | |
iqeap (27) | |
aplauwh (693) -> rjkzf, nfvns, snhww | |
iayrwd (81) -> beidb, lpjxpx, mtvxp, alcfp | |
nsuysii (86) -> aktzpym, gdckok | |
zbxbe (59) -> ahwtsi, uqjcaa | |
yhiwu (37) | |
qpcmzl (28) | |
jmujchg (48) | |
germn (218) -> mbdwm, kjxac | |
mxsvay (328) -> stuom, twgcf, mexagfy | |
sneog (20) | |
rkczq (180) -> mdfae, rrsfv, yycys | |
nnbfqh (819) -> guttanj, htmjx, rwlmsx | |
nxzafkd (60) | |
tptdvct (64) | |
mokvas (49) -> ygfcl, xxitunl | |
wcztr (133) -> chxurcq, hemhd, siwvncp | |
satie (61) | |
vcjpuw (43) | |
hzcmmh (90) -> ivbwdn, eknlt, nzfjwtq, hwcbsyu, gejaump, xymsu, ebtoke | |
jimigk (68) | |
vzfebn (196) -> elqlx, lkffdz | |
lcwpm (1946) -> jwjuylx, pjmwkz, geajywv, zyqfc | |
iimyluk (65) | |
zcgaxsi (49) | |
elhmwsx (92) | |
bxsxr (189) -> msowvgh, zjxlr, yylzxb | |
qgrtg (14) | |
gnupj (74) | |
aktzpym (72) | |
gvuwq (88) | |
iojjekn (160) -> gnhcs, homrc | |
gzdtco (88) | |
ospfv (5) | |
epovby (14) | |
jflns (39) | |
hmqam (161) -> tkiheq, flrtvno | |
koxyrpn (94) | |
witxvcj (44) | |
pseltr (70) -> bzqmgl, vlmzfaf | |
yrotnfh (68) | |
fyqlqkg (19) -> gicwtf, dlxubg, ysrwm, qjnela, djupte, rayzwrp, mgexekz | |
eipyu (84) | |
hacgqe (54) | |
nssvbj (5) | |
maugts (7) -> owizuw, dopwkoo, nnbfqh, rwyzrl, kkfio, gzpcl | |
uiclmg (14) | |
psyem (173) -> tbxxc, bodpwem, lfhmte, pyobp, znnjzzw, pcnbkxm, tolty | |
rskopr (68) | |
mhihjb (68) | |
bfkpjdl (150) -> mpbui, qcqpavg, lwmblwr | |
ezotk (50) | |
dyadgtm (7) -> zcvzrja, rifmmf | |
npipd (20) | |
ozqsvif (231) -> stketdd, jpedzjk, vrpoaq, hbollnl | |
lxshx (67) -> peocao, vqsxe, tstuc, pqwzgz, ycuajn | |
kdersld (98) -> nrarwj, ajyyjfx | |
ontcbns (111) -> jptxyhp, zwwpva, ndoecxy | |
vyzksry (99) | |
sxygbpo (27) | |
owayyaw (5346) -> ykvqh, ruejmc, oqrvpt, qmvebxb, macxvi | |
paqzzv (60) -> nujgng, krnjk | |
qhutc (168) -> ykbjhi, uiclmg | |
ofndvr (46) | |
vfgomle (56) | |
znkru (32) | |
eymsjfd (31) | |
dvetl (124) -> kdccrl, rtsji | |
pvdbhh (96) | |
ggilocf (55) | |
wjjmh (36) | |
zqxyn (14) | |
qweyxa (32) | |
tiirxay (9) | |
avsse (292) -> wchlqxi, griwu | |
fmtox (6) -> mrflo, ikpyx, tsfrlzw | |
qczgclr (90) | |
tajeklj (151) -> kmrbuvq, hiaoc | |
kxtzbj (49) | |
dopwkoo (990) -> hnrwa, nwtvzap, ruitlxx | |
gyqrut (1431) -> pykcza, kxxhn, tipdlf | |
eknlt (177) -> erphv, dhahfgv | |
pnpge (49) | |
teeunu (4569) -> hirvz, mkpgx, dnflzcz | |
kkfio (207) -> iayrwd, abofflv, cpsmrch, ndtcui | |
wkdxdem (78) | |
dnslk (50) | |
civkkh (38) | |
bzqmgl (91) | |
gxtnep (43) | |
hemhd (54) | |
nzzved (110) -> vexun, sekcqad | |
tnejqkf (47) | |
jenxqco (14) | |
tlsdvhf (79) | |
kcltvch (65) | |
tqyheu (18) | |
csoko (1055) -> hnwpfl, rstsr, icnwzox | |
jmgsk (54) | |
rayzwrp (244) -> pydrzyk, hbomk | |
dmqhi (31) | |
wsctytx (26) | |
kjxac (65) | |
vrryj (177) -> nssvbj, gzlfqg | |
vmvdhds (33) | |
iuuve (90) | |
wbugvc (938) -> hpmynx, cznyy, yjqbsxx, yzcddkw | |
hnrwa (78) -> fbzro, iempnd, ojrsv | |
inojzm (100) -> zxlfwi, homdmyc | |
cvvex (75) | |
thumfdk (365) -> hcvvfm, oyuklmp, vtnddpz, egzpkj | |
wkqnq (8) | |
ulcnxii (59) | |
kdccrl (96) | |
hpmynx (112) -> kdmprsg, jvdawi | |
iempnd (35) | |
rqzkom (305) -> bvdqhfs, ubiuve, vqlqq | |
stuom (189) -> tffhcft, lzwplw | |
bjqzgqj (75) | |
ygfcl (69) | |
qakcvf (117) -> udvdho, gxtnep | |
vxlonb (88) | |
tjlsmrz (18) -> pmznzoa, dtifm | |
golth (22) | |
xdmqa (18) | |
xsilcvz (92) | |
oudxhh (81) | |
homdmyc (25) | |
zyrztc (15) | |
mmngri (60) | |
vqsxe (220) -> prxex, jhggy, zkmdfh | |
lyeoeff (74) | |
mcnek (54) | |
ckcpovl (55) | |
vqmeer (359) -> ijbth, phoic | |
zhgql (35) | |
zalahl (48) | |
toccxvy (58) -> ryecm, embmhv, wutkvkd, qlxioka | |
sgvbpct (13) | |
ubaaa (2460) -> ivkvhf, tjzut | |
yxmycw (1258) -> mokvas, lzcant, vrryj | |
mxtqhi (286) -> jwpbg, kizufjn | |
ofqav (13) | |
gqpqzrh (49) | |
jgjbcux (23) | |
vojblx (143) -> ytcgcq, bltsiq | |
qrbiq (7) | |
qnofu (64) | |
tcvtul (372) -> vxlonb, xcvdoi | |
spcpfe (255) -> tseydw, cfdumg | |
ohyhw (153) -> xttop, hnocmo | |
dqpcn (310) -> witxvcj, qshxib | |
btxts (816) -> klgsp, thumfdk, kbothlh | |
ezptzx (86) | |
dtifm (68) | |
gicwtf (254) -> beocjuy, kgfums | |
wvawj (59) | |
cddbi (255) -> ekrym, cysyc | |
rimlwoh (64) | |
wutkvkd (25) | |
hqlni (74) | |
vwzein (18) | |
nxrlaw (74) | |
nhrla (34394) -> idfyy, nwpmqu, owayyaw | |
whotly (17) | |
prxex (5) | |
mkpgx (468) -> thunt, lujir, xjoid | |
qmklslb (19) | |
lokvk (67) | |
xecai (12) | |
mucnt (77) | |
daaldt (68) | |
rtatr (142) -> xkjzrg, btufku | |
hpouwfs (22) | |
nclvb (35) | |
dnirbtx (49) | |
pykcza (52) -> gkbpz, vzbywuf | |
djplc (18) | |
hflkio (88) -> elhmwsx, iovcix, twffuag, sygcnhv | |
nkdtsf (33) | |
cvzvo (139) -> gfrwxw, gjphrw | |
ilgee (25) | |
zyajdwf (273) -> eymsjfd, dmqhi | |
rwlmsx (212) -> djsbpg, qrbiq, fnsceun, tdymtd | |
uhwtkvo (66) | |
hzzlebr (20) | |
mundgs (93) | |
ytjaofr (149) -> hmfvzi, bzplleg | |
epbevf (26) | |
ptydckb (47) | |
hjuzxv (74) | |
eljbay (138) -> rntsalv, llpxo | |
kvnom (87) | |
qvdrme (205) -> ffjshhj, kcltvch | |
zbwrrsc (68) | |
jmifnxw (42) | |
pfojn (42) | |
wgdrxl (85) -> notot, jogicnh | |
wxzenj (224) -> swojvy, sidmmmy | |
iekjt (91) | |
quhxdb (28) | |
pydrzyk (50) | |
hboommj (21) | |
vbiyre (65) -> kdrmsgh, lngffo, dqyifwc | |
sqehayt (1007) -> vyzpzww, hmqam, qakcvf, dyadgtm | |
keuqd (30) -> zrypv, zogeax, yyjfus | |
tyjzoq (24) -> utvyxj, pwuhv, ombqq, inattlb | |
xbfmp (37) | |
aytrde (56) -> hfvkmf, vyzksry | |
oufikpd (23) | |
qpfybmv (189) -> znkru, cjlvlm | |
hgsdq (288) -> bvxiqzm, jmifnxw, pfojn, bltkr | |
nopjkom (1447) -> ayxuibs, krcntq, hbbhm, rehezo | |
wtnmryv (92) | |
mexagfy (235) -> leoti, uqwbtx | |
bmsje (87) | |
jkoyzxm (32) | |
egzpkj (12) | |
hirvz (774) -> cmhoj, eljbay, inojzm | |
mxdluii (90) | |
unuwu (41) | |
ekuohb (24) | |
xzqgkqn (87) -> mbqdugj, lujurf | |
rzehh (98) | |
dqqyiwm (61) | |
oqialc (192) -> uhptzfg, quhxdb | |
jwjuylx (63) | |
ebwifj (14) | |
grkauy (39) | |
hvizfxx (83) | |
pyxypca (64) | |
gdckok (72) | |
yccfitx (69) | |
eisyowo (83) -> jjzbzsb, vbiyre, oqialc, uzxjxjx, tgjdv, ydhoryg, kdersld | |
mjwviex (79) -> gnupj, lazcc | |
grokih (202) -> wsctytx, qvksmrd | |
vpfoaw (36) | |
wtxndn (94) | |
lazcc (74) | |
pxzzw (55) -> dhccilz, rvzppdg, qcwhzgo, htlovrb | |
jjzbzsb (88) -> cnfcuww, gtitbbk, myzkj, rfsrdn | |
hrjil (71) -> ftmftoa, vdekve, lizqvr, rtkydv | |
ddblq (28) | |
eedxiav (257) -> jdeqa, tbmflh, zpjxsi, kgamsy | |
ywxionz (239) -> gdkll, xecai | |
ateol (34) | |
hlcahpm (90) | |
rntsalv (6) | |
zcvzrja (98) | |
kbbyj (87) | |
btufku (80) | |
hygdtn (7) | |
yxbwlf (98) | |
ivkvhf (9) | |
mevvf (60) | |
jdeqa (28) | |
jhdmh (956) -> qkilfj, xzzar, gkqrml | |
qlpft (57) | |
delev (30) | |
ndoecxy (89) | |
lfhmte (334) -> qmklslb, ekcuavb | |
fakqhi (1370) -> kqhggwy, zvpaj, zbxbe | |
mzvjxgp (41) | |
xuqhpz (49) | |
rkfknhv (28) | |
fbzro (35) | |
vrmevdy (35) | |
mysslj (49) | |
aobgmc (341) -> tajeklj, rkczq, ohyhw, zceovs, gudpriq | |
cocplr (67) -> opczxnj, ulcnxii, hjqvntn, wvawj | |
fnsceun (7) | |
yjqbsxx (122) -> ybtkkgv, fgyjop | |
atxtq (181) -> oufikpd, czacja | |
qvksmrd (26) | |
gqmjvky (137) -> xvhnaf, cwspi | |
bpusqb (84) | |
ftmftoa (101) -> nlixy, mckkn, rpbawy | |
aqshqpo (56) | |
xsnmq (46) | |
bltsiq (80) | |
towwl (54) | |
anhldnx (2024) -> kvnom, jbprgm | |
ksioqg (8) | |
nnunune (227) -> jmgsk, mefyd | |
jvdawi (56) | |
icnwzox (236) | |
qiikh (127) -> zmveluw, ycncnr | |
pjmwkz (63) | |
pvqid (50) | |
fivcv (64) -> pyydxvi, tzoefdo | |
zacrh (44) | |
smylfq (44) | |
qcwhzgo (2040) -> aetlth, kqbrwt, ualcokx | |
uwauv (196) -> daojy, sfyqi | |
mjfbr (910) -> ruuovw, kghzy, psyem | |
efcff (79) | |
kzflj (19) | |
shethb (91) -> qsgpsfr, fmtox, pseltr, gziopi, ohqlwmr | |
yylzxb (6) | |
ybtkkgv (51) | |
olxmnkc (79) -> wtnmryv, encean | |
cysyc (8) | |
tkiheq (21) | |
xkjzrg (80) | |
vtnddpz (12) | |
kgfums (45) | |
rrlwo (41) | |
rujggz (68) | |
beidb (63) | |
xcvdoi (88) | |
xghng (17) | |
vmoqov (43) | |
pekzuyh (29) | |
fheklq (66) -> crdlymr, vgsuq, lqspkzw, wbugvc | |
wodhzc (18) | |
rlzbv (92) | |
ycuajn (185) -> iizggi, ilgee | |
zjrpxp (73) | |
sogepf (66) | |
gbecv (78) -> hlcahpm, mxdluii, qczgclr | |
xzvbcms (92) | |
wcklpgi (14) | |
wuhossn (96) | |
dlrfwee (35) | |
rfsrdn (40) | |
akkrsv (108) -> ontcbns, mrydp, flqjd | |
uqjcaa (54) | |
ixcxv (49) -> ruvrw, rwqjiz, towwl | |
kdrmsgh (61) | |
gtxlyzz (32) | |
udvdho (43) | |
lelvcai (28) | |
ivbwdn (121) -> hpocx, bwpqytq | |
bvdqhfs (6) | |
wrxzti (62) | |
yoofo (79) | |
oqrvpt (323) -> pyjzb, wkqnq | |
bfxdtkg (93) | |
yrmmga (36) | |
tvmvvxn (55) | |
hlhpm (187) -> xqnan, ykubvpo, bxsxr | |
ovalfky (66) | |
wpner (54) | |
gljri (96) | |
jpedzjk (153) -> byphua, nxzafkd, ccpek | |
ydhoryg (65) -> apcztdj, wfuxy, satie | |
zxsgnx (105) -> pnumlg, gouyeqw | |
zyqfc (63) | |
evxjdeo (57) | |
uspfk (54) | |
rwqjiz (54) | |
griwu (72) | |
mcgaqx (68) | |
iqzkp (103) -> rkfknhv, lelvcai | |
edmsh (77) | |
uavzab (17) | |
seleq (87) | |
wsozlg (7) | |
dgvvi (93) | |
svbmkbx (196) -> golth, casbq | |
szoomk (26) | |
bcima (78) | |
cyasn (4978) -> hlhpm, fmmhxab, chirgx | |
hfvkmf (99) | |
fjonxe (73) -> xbfmp, yhiwu, kxchm | |
wnoer (81) | |
zaouq (96) | |
gkqrml (109) -> umitnao, bkcgx | |
ppythr (73) | |
qozshd (14) | |
namzem (66) | |
cjlvlm (32) | |
ohcfrxm (85) -> xhxctp, wxpmbu | |
iqwspxd (897) -> gqmjvky, wyzmc, mbzme | |
chirgx (46) -> gpmvdo, fivcv, aelsfhi | |
pyobp (78) -> gmusjd, pqfnj, xbhcwe | |
kspoky (9) | |
gtkqi (56) -> cquptt, cdeji | |
twgcf (49) -> lokvk, cpxwa, yovtgg, nzzwed | |
plsic (60) | |
pmyqol (66) -> ayixid, efcff | |
hnmba (22) | |
ktbtfdb (56) | |
yyjfus (85) | |
rvzppdg (45) -> airnuh, mfvqvf, begmhqg, cykvv, wipzuag, fmstmh | |
vebyb (30) | |
yasoqri (41) | |
gjphrw (85) | |
caqjohx (25) | |
oqiynm (9) | |
lydynp (73) | |
dclnnlg (14) | |
nocugh (81) | |
tqzbg (15) | |
elqlx (81) | |
mckkn (67) | |
lujir (152) -> pvqid, keiakhg | |
mywhdsm (47) | |
oafxzu (27) | |
fgumszu (98) | |
hnwpfl (89) -> gqpqzrh, nlrwlj, gxvketg | |
xrvno (49) | |
kjdjj (225) -> keuqd, yompk, grxqt, ocxbgp | |
vyzpzww (163) -> npipd, hzzlebr | |
oqzcbx (81) -> wuhossn, ebhag, zaouq | |
twffuag (92) | |
nujgng (82) | |
xbhcwe (98) | |
bvugv (199) -> xdmqa, qqszul, wodhzc | |
vgsuq (1510) -> oanoax, swcxes, qmelelp | |
cwflw (27) | |
yraktfn (27236) -> pxzzw, igwew, jjzlrku | |
iqeynjk (17) -> dccvh, cvzvo, kcjujcr, phqplx, spcpfe, dygrnnf | |
vgowu (30) -> mgiumh, pyxypca | |
jjzlrku (635) -> fuwbaq, lcwpm, oahpf, anhldnx | |
zkmdfh (5) | |
dvskig (22) | |
zaitni (83) -> iqagnh, ixckwlm, kfvvzd | |
ikthp (51) | |
jvpob (76) | |
cpxwa (67) | |
sphwh (88) | |
mlbjc (81) -> fylao, ggilocf | |
rwmci (63) -> qnofu, rimlwoh | |
fluuo (51) | |
exvmk (78) | |
jgdqi (3125) -> mxsvay, hrjil, fhtktd, qqvgeq | |
aplal (124) -> ezotk, mithbv | |
gouyeqw (27) | |
iqagnh (47) | |
xfjafp (78) | |
gvaie (153) -> cpwdhw, bjqzgqj | |
ijbth (5) | |
zduooao (93) | |
tjlrb (78) | |
emeyn (35) | |
zblcbd (34) | |
xxtki (88) | |
nxgjqaf (1807) -> ubaaa, hjxhx, uyofsmv | |
xqnan (87) -> ckbuzb, rutqvq | |
xyquxix (70) | |
pwuhv (72) | |
sygcnhv (92) | |
qjlfwtm (19) | |
vkkgwbr (8) | |
casbq (22) | |
zeisn (95) | |
rplqlc (63) | |
ewsqqum (99) -> mojwgp, zuxgf | |
mojwgp (64) | |
dexul (230) | |
kdmprsg (56) | |
amifh (43) | |
notot (63) | |
byphua (60) | |
vfjayw (88) | |
gfrwxw (85) | |
vrpoaq (41) -> mwzpa, pfhjtw, rthxl, ppythr | |
wngqx (26) | |
obgmlzf (67) | |
daojy (17) | |
vxnwq (61) -> kjhrii, ulovosc, ytjaofr, vrgblbn, rwmci, mlbjc, vblppqb | |
yzcddkw (40) -> hvnzfbd, hqnonqc | |
iiswvjq (62) | |
yeerc (68) | |
ycncnr (42) | |
cmrcpf (294) -> onbptkd, qxsxzth | |
zbtlfr (35) | |
paqggr (84) -> ettsdu, iekjt | |
prfbji (14) | |
bodpwem (244) -> jkoyzxm, gtxlyzz, qweyxa, bbqzlo | |
ccpek (60) | |
buzjgp (65) | |
ahwtsi (54) | |
ckbuzb (60) | |
mrflo (82) | |
alcfp (63) | |
engay (35) | |
fxeka (18) | |
ohqlwmr (112) -> tdcxeia, maaid, fiygpep, zhgql | |
iizggi (25) | |
qcqpavg (364) | |
siwvncp (54) | |
lpjxpx (63) | |
ryecm (25) | |
xrsaryj (115) -> qcrxve, iuuve | |
dterxr (244) -> hfxmz, mpble | |
kcjujcr (207) -> eyavk, ikthp | |
sjommm (98) | |
lneqx (456) | |
dccvh (201) -> uipvt, iqeap, gbuilbn, oafxzu | |
duzorty (20) | |
mdfae (11) | |
pmavka (48) | |
ekrym (8) | |
logpgb (2713) -> wamxgvn, ozqsvif, olnpj | |
pxrxqs (78) | |
thunt (94) -> tlsdvhf, yoofo | |
ogkucp (84) | |
xroaal (43) | |
czacja (23) | |
xbaytg (5) | |
embmhv (25) | |
ahsef (41) | |
cfbjnxb (799) -> ujpka, fjonxe, slacopj | |
itusrhj (277) -> gscng, pekzuyh | |
vhruv (34) | |
fdvtn (44) | |
flrtvno (21) | |
fiygpep (35) | |
fhtktd (1103) -> xxtki, pgnulg | |
dirvqby (72) | |
codroxx (49) | |
fswirnb (98) | |
rvzqqr (290) -> wafsr, pwhrvu | |
peocao (235) | |
drleu (70) | |
ygszhn (86) -> lnuqdd, tjlsmrz, yomawy | |
ixbxszv (43) | |
nzfjwtq (67) -> douggpq, ezptzx | |
wfmxgw (98) | |
gzuqs (80) | |
ujpka (84) -> bhpvfr, dnslk | |
ebjpdvd (19) | |
mykkoc (91) | |
pyydxvi (95) | |
prybce (62) | |
smpmp (9) | |
nfvns (183) | |
rvqubk (81) | |
ezvdo (74) | |
gdkll (12) | |
tzoefdo (95) | |
vzdmsv (224) | |
vcusbhv (196) -> ospfv, wfvtfos, yjdsnqu | |
beocjuy (45) | |
zjxlr (6) | |
dlxubg (344) | |
kfvvzd (47) | |
zrypv (85) | |
aonpk (25) | |
icsrp (14) | |
pjthjam (286) -> ofqav, sgvbpct | |
fgyjop (51) | |
rstsr (68) -> xnleu, gfvjqj | |
xgrjpl (92) | |
rlzobr (89) -> ctifv, ffevqd, kbbyj, otgnir | |
vbvctl (87) | |
lqspkzw (90) -> rvzqqr, avsse, rocllr, cpiscj | |
mbqtji (392) -> paqjozd, wsbpne, tncexxs | |
vuumtry (63) | |
zpjxsi (28) | |
cykvv (247) -> yeerc, qfyrdo | |
chgpk (281) -> sxygbpo, hkyqakf | |
wchlqxi (72) | |
lzwplw (64) | |
daonbjx (790) -> ohcfrxm, yinhnv, bvugv, pgeoixp, qpfybmv | |
ffevqd (87) | |
gnhcs (78) | |
yjdsnqu (5) | |
vjugmg (73) -> qekol, jjdcuql, atdrk, rqzkom | |
swcxes (60) -> bzwhd, ekuohb | |
hmfvzi (21) | |
wwcrqwq (54) | |
iezlg (71) -> maugts, nxgjqaf, liibv, qrvmp, nwyqp, mjfbr | |
erphv (31) | |
vpxbz (48) -> qaalu, gtutr | |
sbsustu (91) | |
uvwnhot (14) | |
mbdwm (65) | |
cwspi (15) | |
fnvxe (104) -> bwmckc, vxftbc | |
qmxjyg (56) | |
hkyqakf (27) | |
uyofsmv (1214) -> ukdbm, iojjekn, dterxr, dvetl | |
glbipl (21) | |
yjjrrjj (93) | |
xnleu (84) | |
dyeffd (64) | |
mpbui (52) -> bcima, yowna, hvpzbd, smzzu | |
hvnzfbd (92) | |
vguwn (40) | |
tdcxeia (35) | |
dhccilz (471) -> wxzenj, tyjzoq, azrdj, mxtqhi, pjthjam, zzjicx | |
mfvqvf (355) -> rcdic, ebwifj | |
qsjue (81) | |
kgnbx (56) | |
efsdxm (74) | |
niojmd (95) | |
uzxjxjx (68) -> plsic, mmngri, mevvf | |
drbjnk (99) | |
hqnonqc (92) | |
opczxnj (59) | |
iwumx (41) | |
jwpbg (13) | |
aetlth (7) -> tnejqkf, mywhdsm | |
ujjksl (169) -> ixhsq, fluuo | |
ygqjcm (74) -> uqpxyi, uxmfcyr, oudxhh, iktols | |
oyjjdj (678) -> svbmkbx, lxpkrf, vayyag | |
pnumlg (27) | |
hbyxgv (94) | |
ivhzxr (14) | |
geajywv (63) | |
kjhrii (135) -> ddblq, ehkhs | |
rehezo (56) -> vuumtry, rplqlc, zcakvl | |
gunfz (80) | |
airnuh (369) -> hygdtn, nzrbmfg | |
ruejmc (283) -> icsrp, ivhzxr, uvwnhot, jakny | |
ikpyx (82) | |
zxlfwi (25) | |
ocxbgp (285) | |
qfsbvqe (39) | |
htmjx (48) -> tptdvct, smhzr, dyeffd | |
ukdbm (44) -> rskopr, rujggz, mhihjb, jimigk | |
lqtuij (66) | |
jogicnh (63) | |
vqlqq (6) | |
bkcgx (80) | |
fxsmo (85) | |
icoiqa (256) -> ljscsoa, sxqnium | |
ehhrom (334) -> aqshqpo, kgnbx | |
tgrfyrx (6071) -> urepv, ippmv, yvirt, mofdlro, teeunu, jgdqi | |
kttzsv (49) | |
hpmag (88) | |
jjixrr (44) | |
rjkzf (147) -> fxeka, pealz | |
rtsji (96) | |
wfuxy (61) | |
dzjef (22) | |
gfvjqj (84) | |
lslsl (28) | |
lizqvr (101) -> zaeyze, ppbgib, obgmlzf | |
rcdic (14) | |
ykiwb (105) -> drbjnk, vwokfc | |
dygrnnf (153) -> pxrxqs, xfjafp | |
csbdh (28) | |
tffhcft (64) | |
eilgcny (62) -> ldfybwl, gzuqs, gunfz | |
hfxmz (36) | |
spqwtg (1089) -> foaubeo, ehhrom, fcuhw | |
gtitbbk (40) | |
wsbpne (15) | |
gpcxuo (81) | |
cpsmrch (333) | |
fhmkuo (266) -> zeisn, niojmd | |
ckifyf (23) | |
ppbgib (67) | |
titychs (25909) -> fqmyi, logpgb, cyasn, fheklq | |
hlyfdr (26) | |
zmveluw (42) | |
kqhggwy (167) | |
cakob (96) | |
wipzuag (187) -> rerviwo, sjommm | |
hvpzbd (78) | |
vexun (72) | |
fuwbaq (13) -> ytzrx, pwyiwkf, rlzobr, mbqtji, jpnfrsb | |
fqmyi (3349) -> wxirji, cfbjnxb, shethb | |
xbgmzxd (144) -> wsozlg, lzqtms | |
paqjozd (15) | |
jakny (14) | |
susknu (81) | |
olnpj (87) -> rhsdbfh, vqmeer, oqzcbx, eedxiav | |
hjrzrli (62) | |
tjzut (9) | |
kizufjn (13) | |
iduxx (9) | |
wfvtfos (5) | |
dhahfgv (31) | |
oahpf (630) -> pmyqol, zaitni, xxpfmp, aplal, vzdmsv, paqzzv, fnvxe | |
utvyxj (72) | |
andixsk (39) | |
nglumw (49) | |
cdeji (59) | |
ynxfzsu (73) -> amifh, xroaal | |
hpljf (37) | |
oanoax (52) -> csbdh, tfdjhaa | |
jbxcafx (97) -> qlpft, evxjdeo | |
xaplszi (689) -> qgbtnil, icoiqa, vzfebn | |
sbtyi (91) | |
wnhmooe (37) | |
qekol (35) -> gljri, cakob, pvdbhh | |
lkffdz (81) | |
hjxhx (42) -> germn, ycrxr, cmrcpf, tbrxke, gbecv, wnakg, epdqjdp | |
ualcokx (35) -> nkdtsf, vmvdhds | |
hwofq (37) -> izjbi, dqqyiwm | |
bzmra (34) | |
gnuywz (30) | |
rutqvq (60) | |
kvgrf (38) | |
rpbawy (67) | |
uunjwu (70) | |
nlrwlj (49) | |
ettsdu (91) | |
pyjzb (8) | |
ehhlk (75) | |
vdekve (292) -> xbaytg, rvftpif | |
ycrxr (312) -> twvlr, djplc | |
pdewbw (74) | |
xzzar (239) -> tqzbg, zyrztc | |
hwcbsyu (167) -> wjjmh, uwwyv | |
msowvgh (6) | |
jptxyhp (89) | |
ulkzj (39) | |
ytzrx (275) -> uspfk, wpner, wwcrqwq | |
lunivx (78) | |
tfdjhaa (28) | |
lzqtms (7) | |
qsgpsfr (96) -> utneufs, exvmk | |
qmvebxb (43) -> hjuzxv, nxrlaw, pdewbw, hqlni | |
qkilfj (99) -> mohya, fxsmo | |
twvlr (18) | |
fejmhpg (190) -> kvgrf, civkkh | |
lzcant (149) -> gnoywf, ebjpdvd | |
fcuhw (390) -> qpcmzl, ujdil | |
qlxioka (25) | |
tyealpm (72) | |
ndbzyu (68) | |
djqtfp (68) | |
wlbua (48) | |
xuhchjm (80) | |
mwzpa (73) | |
dqyifwc (61) | |
tovvj (8) | |
rthxl (73) | |
bhpvfr (50) | |
geiethw (35) | |
yinhnv (22) -> mucnt, edmsh, apgzt | |
abofflv (105) -> vjmwzo, jvpob, ddpmrsd | |
ayxuibs (89) -> kgxseg, tjlrb | |
ebcygk (42) -> cehqdz, qmxjyg, pwpmx | |
ebhag (96) | |
pqwzgz (189) -> jgjbcux, powwpec | |
pmznzoa (68) | |
fylao (55) | |
bbqzlo (32) | |
chxurcq (54) | |
egdccd (54) | |
yghyn (72) | |
zuxgf (64) | |
apgzt (77) | |
ujdil (28) | |
lwmblwr (208) -> ingwpue, jfwho | |
oyvaqjr (80) | |
maaid (35) | |
pcnbkxm (93) -> bfxdtkg, zduooao, mundgs | |
gscng (29) | |
tolty (336) -> vwzein, tqyheu | |
nzzwed (67) | |
ruhyv (29) | |
wxpmbu (84) | |
izjbi (61) | |
jbprgm (87) | |
jpnfrsb (290) -> codroxx, xrvno, pnpge | |
hcvvfm (12) | |
yowna (78) | |
mithbv (50) | |
qcxfwey (81) | |
pgnulg (88) | |
bxucoyp (70) | |
sxqnium (51) | |
bzwhd (24) | |
tbrxke (250) -> kxtzbj, zfuqmcg | |
hnocmo (30) | |
hbollnl (225) -> qrbvsw, mcnek | |
pfhjtw (73) | |
mrydp (324) -> vswcvmu, cwflw | |
envbl (113) -> ehhlk, cvvex | |
swojvy (44) | |
gzlfqg (5) | |
vblppqb (164) -> qhwkoc, oqiynm, kspoky | |
rocllr (88) -> tvixzc, seleq, bmsje, vbvctl | |
vlmzfaf (91) | |
jfwho (78) | |
llpxo (6) | |
pwhrvu (73) | |
kxxhn (126) -> ahsef, rrlwo | |
evojkum (21) | |
cpiscj (436) | |
qhwkoc (9) | |
grxqt (233) -> mtzvap, wngqx | |
rhsdbfh (185) -> rlzbv, xgrjpl | |
mbqdugj (62) | |
aelsfhi (58) -> rzehh, fswirnb | |
douggpq (86) | |
ysrwm (206) -> zkzpbbp, xsnmq, ofndvr | |
fjtgkp (78) | |
tsfrlzw (82) | |
kghzy (1262) -> gvaie, ykiwb, wztfz, vojblx, cocplr | |
gzpcl (1291) -> qgzaj, wrxzti, hjrzrli, qklbf | |
ykryfdg (1297) -> aoqukac, gtkqi, cjhcn | |
kqitg (203) -> gnuywz, wwolc | |
bwmckc (60) | |
yovtgg (67) | |
irducr (56) | |
encean (92) | |
tseydw (27) | |
tyhtbv (28) | |
macxvi (179) -> oyvaqjr, arqvl | |
qklbf (62) | |
hpocx (59) | |
qccwy (85) -> yjjrrjj, dgvvi | |
mehtsc (84) | |
djupte (20) -> wnoer, qcxfwey, rvqubk, gpcxuo | |
meuyumr (810) -> vpxbz, mhpbfn, qhutc | |
crdlymr (1705) -> ixbxszv, vcjpuw, vmoqov | |
suhcj (14) | |
lujurf (62) | |
pjqaa (118) -> bzmra, ateol, zblcbd, qwtlvuj | |
ddpmrsd (76) | |
foaubeo (70) -> hbyxgv, totzxaf, dkpmgrq, wtxndn | |
ykubvpo (133) -> hpljf, wnhmooe | |
ljscsoa (51) | |
wztfz (269) -> whotly, evpryza | |
qaalu (74) | |
zzjicx (146) -> hvizfxx, xlukbym | |
ykvqh (305) -> uavzab, xghng | |
tbmflh (28) | |
bpazmfd (41) | |
bwxgrhf (14) | |
vswcvmu (27) | |
nnhlcn (201) -> emeyn, vzyxst | |
vzyxst (35) | |
qrvmp (426) -> xaplszi, jhdmh, hzcmmh, kkhvw, csoko | |
kmrbuvq (31) | |
uqpxyi (81) | |
tstuc (59) -> sphwh, hpmag | |
kbothlh (149) -> uhwtkvo, ovalfky, lqtuij, sogepf | |
xvhnaf (15) | |
qzsjiw (40) | |
krnjk (82) | |
rifmmf (98) | |
cnqemd (48) | |
ombqq (72) | |
xmvxrop (48) -> eaumqtc, dqpcn, ygqjcm | |
pwpmx (56) | |
jhggy (5) | |
ruvrw (54) | |
qcrxve (90) | |
ldfybwl (80) | |
eyavk (51) | |
smhzr (64) | |
mtvxp (63) | |
gmcebvw (26) | |
hpbbqmn (84) | |
wafsr (73) | |
homrc (78) | |
znnjzzw (8) -> sbsustu, sbtyi, clzgzgc, mykkoc | |
umitnao (80) | |
tncexxs (15) | |
qwbkv (92) | |
tipdlf (61) -> dnirbtx, kttzsv, mysslj | |
wnakg (166) -> hpcafa, emecx | |
fxzvbzr (51) -> qqbdtow, xuhchjm | |
tgjdv (80) -> ogkucp, bpusqb | |
hiaoc (31) | |
onbptkd (27) | |
yhovo (78) | |
zogeax (85) | |
qqbdtow (80) | |
leoti (41) | |
yomawy (154) | |
qfyrdo (68) | |
rerviwo (98) | |
liibv (8767) -> toccxvy, xbgmzxd, vgowu | |
uxmfcyr (81) | |
cfdumg (27) | |
emecx (91) | |
hbbhm (137) -> hacgqe, egdccd | |
zvrld (46) -> xsilcvz, evxjdo | |
ixckwlm (47) | |
ruitlxx (67) -> jbiaxln, ekfwsv | |
wwolc (30) | |
ixhsq (51) | |
rutmxs (14) | |
sekcqad (72) | |
haeee (400) -> qozshd, prfbji, jenxqco, wcklpgi | |
uqwbtx (41) | |
phoic (5) | |
kqbrwt (43) -> ruhyv, xxpauyc | |
btzbl (78) | |
ziock (49) | |
yycys (11) | |
tvixzc (87) | |
frucbsg (69) | |
ruuovw (41) -> hflkio, lneqx, fhmkuo, haeee, jvefqe, hgsdq | |
wamxgvn (511) -> ywxionz, olxmnkc, kqitg, envbl | |
qrbvsw (54) | |
evpryza (17) | |
zjxyreo (34) -> gvuwq, awpvs | |
sfyqi (17) | |
gtutr (74) | |
ctifv (87) | |
yjjewyt (43) | |
mofdlro (789) -> aplauwh, tcrcyis, bfkpjdl, akkrsv, lxshx, xmvxrop | |
hjqvntn (59) | |
wxirji (553) -> pmvdtmm, fejmhpg, paqggr | |
qgzaj (62) | |
qqszul (18) | |
kgxseg (78) | |
iktols (81) | |
orzwmml (478) -> engay, zbtlfr | |
gkbpz (78) | |
inattlb (72) | |
jjdcuql (183) -> xyquxix, uunjwu | |
kkhvw (1133) -> zjxyreo, fgptt, ebcygk | |
rrsfv (11) | |
atdrk (285) -> kzflj, qjlfwtm | |
nrarwj (75) | |
tdymtd (7) | |
bvxiqzm (42) | |
ehkhs (28) | |
cvpoqqk (211) -> delev, vebyb | |
owizuw (62) -> ixcxv, qiikh, wgdrxl, xzqgkqn, vcusbhv, fxzvbzr, jbxcafx | |
kgamsy (28) | |
cmhoj (12) -> frucbsg, yccfitx | |
kbgmlab (43) | |
epdqjdp (244) -> epbevf, hlyfdr, szoomk, gmcebvw | |
vrgblbn (191) | |
ndtcui (239) -> umymwd, ptydckb | |
xjoid (154) -> xuqhpz, nglumw | |
mefyd (54) | |
cpwdhw (75) | |
jwasx (246) -> tyhtbv, lslsl | |
pwyiwkf (281) -> wkdxdem, yhovo | |
xcndr (8) | |
yvirt (960) -> nopjkom, spqwtg, fyqlqkg | |
xttop (30) | |
nwyqp (1965) -> yxmycw, sqehayt, eisyowo, ykryfdg | |
clzgzgc (91) | |
agsrs (185) -> qsnjuqh, wcztr, xrsaryj, ifqsqyz | |
ojrsv (35) | |
gnoywf (19) | |
wyzmc (97) -> dlrfwee, vrmevdy | |
tesql (72) | |
ejsitta (83) -> mehtsc, hpbbqmn, eipyu | |
ekfwsv (58) | |
xxitunl (69) | |
jvefqe (339) -> ulkzj, jflns, grkauy | |
vwokfc (99) | |
mtzvap (26) | |
vzbywuf (78) | |
cquptt (59) | |
fmstmh (383) | |
qgbtnil (86) -> daaldt, ndbzyu, yrotnfh, djqtfp | |
qshxib (44) | |
nclav (91) -> vhruv, vjnejlj | |
azrdj (176) -> zbwrrsc, mcgaqx | |
cehqdz (56) | |
zfuqmcg (49) | |
tkhjz (73) | |
pealz (18) | |
hbomk (50) | |
oyuklmp (12) | |
klgsp (89) -> uhfiqwc, susknu, nocugh, qsjue | |
uwwyv (36) | |
mhpbfn (196) | |
krcntq (165) -> duzorty, mcvuku, sneog, bnetz | |
dkvqe (222) -> qzsjiw, vguwn | |
ingwpue (78) | |
smzzu (78) | |
bzplleg (21) | |
uhptzfg (28) | |
qwtlvuj (34) | |
arqvl (80) | |
bnetz (20) | |
yfolyk (48) | |
flqjd (84) -> yxbwlf, fgumszu, wfmxgw | |
igwew (5332) -> kjdjj, agsrs, vjugmg | |
vjnejlj (34) | |
svtcvi (14) | |
lnuqdd (154) | |
evxjdo (92) | |
vvtfwwb (74) | |
snhww (39) -> yghyn, tesql | |
cjhcn (124) -> aonpk, caqjohx | |
iovcix (92) | |
mgexekz (212) -> namzem, rjksjq | |
ajyyjfx (75) | |
bwpqytq (59) | |
nvmqchp (23) | |
asosowy (56) | |
guttanj (208) -> tovvj, vkkgwbr, xcndr, ksioqg | |
utneufs (78) | |
zcakvl (63) | |
begmhqg (87) -> lyeoeff, efsdxm, vvtfwwb, ezvdo | |
pmvdtmm (220) -> ckifyf, nvmqchp | |
fmmhxab (13) -> zxsgnx, iqzkp, ynxfzsu, hwofq, nclav | |
zaeyze (67) | |
djsbpg (7) | |
rqwgj (15) -> nhrla, titychs, tgrfyrx, aoxky, iezlg, yraktfn | |
lxpkrf (196) -> vkrlz, dvskig | |
nlixy (67) | |
gbuilbn (27) | |
vayyag (56) -> qwbkv, xzvbcms | |
qsnjuqh (61) -> btzbl, lunivx, fjtgkp | |
aoqukac (50) -> iiswvjq, prybce | |
ekcuavb (19) | |
tbxxc (372) | |
ippmv (21) -> btxts, daonbjx, zebuqzh, gyqrut | |
zvpaj (69) -> zcgaxsi, ziock | |
bltkr (42) | |
dnflzcz (16) -> dkvqe, eilgcny, rtatr, jwasx | |
jbiaxln (58) | |
qmelelp (80) -> epovby, suhcj | |
mpble (36) | |
ebtoke (143) -> pmavka, wlbua | |
pqfnj (98) | |
kxchm (37) | |
cznyy (224) | |
ytcgcq (80) | |
phqplx (85) -> asosowy, irducr, ktbtfdb, vfgomle | |
umymwd (47) | |
zceovs (25) -> koxyrpn, emhnlu | |
rtkydv (83) -> zjrpxp, lydynp, tkhjz | |
ayixid (79) | |
xlukbym (83) | |
stketdd (157) -> gzdtco, vfjayw | |
yompk (162) -> unuwu, yasoqri, mzvjxgp | |
slacopj (44) -> bxucoyp, drleu | |
emhnlu (94) | |
mbzme (101) -> hpouwfs, hnmba, dzjef | |
mohya (85) | |
totzxaf (94) | |
ifqsqyz (223) -> vpfoaw, yrmmga | |
lngffo (61) | |
xxpauyc (29) | |
qxsxzth (27) | |
zebuqzh (45) -> ejsitta, chgpk, zyajdwf, itusrhj, nnunune, qvdrme | |
ubiuve (6) | |
mcvuku (20) | |
uipvt (27) | |
qqvgeq (359) -> zvrld, nsuysii, uwauv, dexul | |
gejaump (212) -> iduxx, tiirxay, smpmp | |
sidmmmy (44) | |
qjnela (266) -> andixsk, qfsbvqe | |
idfyy (51) -> vxnwq, meuyumr, oyjjdj, iqwspxd, aobgmc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
class Tower: | |
known_towers = {} | |
def __init__(self, name, weight=None, children=None): | |
""" | |
Initialize a Tower instance. | |
This method should not be used directly. | |
`Tower.retrieve_or_create` is the correct method to use, as it | |
retrieves an already created instance if present. | |
""" | |
self.name = name | |
self.weight = weight | |
self.children = children or [] | |
def add_child_from_name(self, child): | |
""" | |
Add a child with the given to the tower's list of children. | |
This utilizes `Tower.retrieve_or_create` to utilize | |
already-created instances. | |
""" | |
child = self.__class__.retrieve_or_create(child) | |
self.children.append(child) | |
def total_weight(self): | |
""" | |
Calculate the total weight of a tower, including all sub-towers. | |
""" | |
if self.children: | |
return self.weight + sum(child.total_weight() | |
for child in self.children) | |
else: | |
return self.weight | |
def is_balanced(self): | |
""" | |
Return a bool representing if a tower is balanced as defined by the problem. | |
""" | |
return len({child.total_weight() for child in self.children}) == 1 | |
@classmethod | |
def retrieve_or_create(cls, name, weight=None, children=None): | |
""" | |
Retrieve, create, or update an instance of Tower. | |
This method should be preferred to `Tower.__init__` | |
""" | |
if name not in cls.known_towers: | |
cls.known_towers[name] = cls(name, weight, children) | |
tower = cls.known_towers[name] | |
if tower.weight is None: | |
tower.weight = weight | |
return tower | |
@classmethod | |
def find_root_tower(cls): | |
""" | |
Out of all the towers created so far, find the root. | |
""" | |
parents = {} | |
for tower in cls.known_towers.values(): | |
parents.setdefault(tower, None) | |
for child in tower.children: | |
parents[child] = tower | |
return next(tower for tower, parent in parents.items() | |
if parent is None) | |
def __repr__(self): | |
return (f"{self.__class__.__name__}" | |
f"({self.name!r}, {self.weight!r}, {self.children!r})") | |
def parse_input(input_file): | |
for line in input_file: | |
line = line.strip() | |
# Here we use a sort-of obscure Python 3 feature. | |
# It is best explained by example; Suppose we have the line: | |
# `a, b, *c = [1, 2, 3, 4, 5]` | |
# The tuple (a, b, c) would be equal to: | |
# `(1, 2, [3, 4, 5])` | |
parent, weight, *rest = line.split() | |
weight = int(weight.strip("()")) | |
tower = Tower.retrieve_or_create(parent, weight) | |
if rest: | |
arrow = rest.pop(0) | |
assert arrow == "->" | |
for child in rest: | |
child = child.strip(",") | |
tower.add_child_from_name(child) | |
return Tower.find_root_tower() | |
def find_correct_weight(weights): | |
seen = set() | |
for w in weights: | |
if w in seen: | |
return w | |
seen.add(w) | |
raise ValueError("The input is too ambigous!") | |
def adjust_wrong_weight(conductor): | |
# If we've accidentally hit a conductor which is balanced, either the | |
# algorithm is wrong or the whole tree is balanced. | |
# This is just an assert because for the problem the algorithm is | |
# guaranteed to work. | |
assert not conductor.is_balanced() | |
# Find out if any of the children are the culprit, and if so investigate | |
# them instead.. | |
for child in conductor.children: | |
if not child.is_balanced(): | |
return adjust_wrong_weight(child) | |
# Once we've found the true culprit (i.e. the one where all of its | |
# children but one are correct) we have to figure out which child is | |
# creating the issue. | |
weights = [child.total_weight() for child in conductor.children] | |
correct_weight = find_correct_weight(weights) | |
for child, weight in zip(conductor.children, weights): | |
if weight != correct_weight: | |
# To figure out what the weight of the wrongful node should be, | |
# we first figure out what the correct *total* weight is, then | |
# subtract the weight of all the wrongful node's children. | |
return correct_weight - (child.total_weight() - child.weight) | |
def main(): | |
with open("input.txt") as input_file: | |
conductor = parse_input(input_file) | |
print(adjust_wrong_weight(conductor)) | |
if __name__ == "__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment