Compare commits
3 Commits
f7949a3594
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
500de11910 | ||
|
|
aee88264c5 | ||
|
|
4e26c55eb7 |
67
08/main.go
67
08/main.go
@@ -76,13 +76,55 @@ func do(test bool) (int, int) {
|
||||
// sort distances by length
|
||||
sort.Slice(connections, func(i, j int) bool { return connections[i].Length < connections[j].Length })
|
||||
|
||||
threshold := 1000
|
||||
|
||||
if test {
|
||||
connections = connections[:10]
|
||||
} else {
|
||||
connections = connections[:1000]
|
||||
threshold = 10
|
||||
}
|
||||
|
||||
var res1, res2 int
|
||||
|
||||
for ii := range connections {
|
||||
if ii == threshold {
|
||||
roots := []*Node{}
|
||||
|
||||
for ii := range points {
|
||||
pp := &points[ii]
|
||||
if pp.GetRoot() == pp {
|
||||
roots = append(roots, pp)
|
||||
}
|
||||
}
|
||||
|
||||
sort.Slice(roots, func(i, j int) bool { return roots[i].Size > roots[j].Size })
|
||||
|
||||
res1 = roots[0].Size * roots[1].Size * roots[2].Size
|
||||
|
||||
fmt.Println(res1)
|
||||
|
||||
} else if ii > threshold {
|
||||
cc := connections[ii-1]
|
||||
// check wether it is one big circuit
|
||||
root := points[0].GetRoot()
|
||||
|
||||
multipleCircuits := false
|
||||
|
||||
for jj := range points[1:] {
|
||||
pp := &points[jj]
|
||||
if pp.GetRoot() != root {
|
||||
multipleCircuits = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !multipleCircuits {
|
||||
res2 = cc.P1.X * cc.P2.X
|
||||
|
||||
fmt.Println(res2)
|
||||
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
cc := &connections[ii]
|
||||
|
||||
root1 := cc.P1.GetRoot()
|
||||
@@ -95,26 +137,11 @@ func do(test bool) (int, int) {
|
||||
}
|
||||
}
|
||||
|
||||
roots := []*Node{}
|
||||
|
||||
for ii := range points {
|
||||
pp := &points[ii]
|
||||
if pp.GetRoot() == pp {
|
||||
roots = append(roots, pp)
|
||||
}
|
||||
}
|
||||
|
||||
sort.Slice(roots, func(i, j int) bool { return roots[i].Size > roots[j].Size })
|
||||
|
||||
res1 := roots[0].Size * roots[1].Size * roots[2].Size
|
||||
|
||||
fmt.Println(res1)
|
||||
|
||||
return res1, 0
|
||||
return res1, res2
|
||||
}
|
||||
|
||||
func main() {
|
||||
if r1, r2 := do(true); r1 == 40 && r2 == 0 {
|
||||
if r1, r2 := do(true); r1 == 40 && r2 == 25272 {
|
||||
do(false)
|
||||
}
|
||||
}
|
||||
|
||||
32
09/main.go
32
09/main.go
@@ -12,8 +12,12 @@ type Point struct {
|
||||
X, Y int
|
||||
}
|
||||
|
||||
func (p Point) Area(p2 Point) float64 {
|
||||
return math.Abs(float64((p.X - p2.X + 1) * (p.Y - p2.Y + 1)))
|
||||
type Rect struct {
|
||||
P1, P2 *Point
|
||||
}
|
||||
|
||||
func (r Rect) Area() float64 {
|
||||
return math.Abs(float64((r.P1.X - r.P2.X + 1) * (r.P1.Y - r.P2.Y + 1)))
|
||||
}
|
||||
|
||||
func do(test bool) (int, int) {
|
||||
@@ -30,11 +34,27 @@ func do(test bool) (int, int) {
|
||||
}
|
||||
}
|
||||
|
||||
largestArea := 0.0
|
||||
largestArea := 0
|
||||
largestArea2 := 0
|
||||
|
||||
for ii, p1 := range points {
|
||||
for _, p2 := range points[ii+1:] {
|
||||
largestArea = math.Max(largestArea, p1.Area(p2))
|
||||
rects := make([]*Rect, len(points)*(len(points)+1)/2)
|
||||
|
||||
for ii := range points {
|
||||
for jj := range points[ii+1:] {
|
||||
rects[ii+jj+1] = &Rect{
|
||||
P1: &points[ii],
|
||||
P2: &points[jj+ii+1],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for ii := range rects {
|
||||
rr := &rects[ii]
|
||||
|
||||
// iterate all others
|
||||
for jj := range rects {
|
||||
if jj != ii {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
585
11/input
Normal file
585
11/input
Normal file
@@ -0,0 +1,585 @@
|
||||
jcy: qqq xzi wqn tga eoa dki jjn xyo ywb kor ous mni gkm
|
||||
ewa: qww tln
|
||||
wns: lin
|
||||
ldh: rnx zzx tpx
|
||||
opp: xed
|
||||
ahr: rnw
|
||||
ues: ooa jcy cub
|
||||
zgm: pxj
|
||||
nvs: ztn abt
|
||||
vxm: nwe
|
||||
lix: wii
|
||||
zsd: jdr xcr
|
||||
gms: lqa siz kbp
|
||||
wvv: xed kxy
|
||||
qop: mfc
|
||||
xyw: htg srd vpq cnn icw dfv pav yjs svm axd lqs ntk kgx mbv uzf czy hpv ysj rok aso rpf qlq eai
|
||||
ruj: pcd qkg
|
||||
oyz: rqd dwz tes tdq eeo mqm jzd sti wdx vak ruj omj gjk atk lmv jkd otz pdl rnk nvs dpn xva ils cgd mtp dyd
|
||||
bbu: yza lbs wnt
|
||||
rye: jcy bid
|
||||
gaq: inl pmh bey ofx pof asv ohv nkx kao mpg
|
||||
vpq: wgo
|
||||
fuj: gci dly
|
||||
knm: bpb vyn
|
||||
taw: saj oli yga fco
|
||||
mbm: ooa cub
|
||||
ozq: led gni
|
||||
igf: fgg mhd arm
|
||||
nwl: psk tnb
|
||||
egc: ysw xrt
|
||||
meq: nju xed
|
||||
ved: dfi gor zsd
|
||||
vub: may
|
||||
cae: tlf jds qki mrg
|
||||
gki: mjz pss
|
||||
gym: vja
|
||||
tan: oli yga cgq
|
||||
zno: nju kxy
|
||||
kpa: iep hmf ufu cmc
|
||||
ctp: ktj tft
|
||||
eds: lgb ony
|
||||
hni: gor zsd
|
||||
rej: zrr rwt sdm
|
||||
wst: igv qqg meq nwe
|
||||
gju: kts nfm
|
||||
whc: omw xry pcz
|
||||
kxy: ebu jjk haj eom fau ixr tlo ttm apc qda blh
|
||||
fes: rlt ldh
|
||||
hsx: out
|
||||
bcp: yhv uyb oyz
|
||||
nju: qnr poc cbn akc hmx haj ebu yez ixr bjr vaz tlo eom fau
|
||||
dni: cin xyw mfc
|
||||
zpi: swo ymg isk
|
||||
gbg: msf svn bgp
|
||||
iep: bid jcy cub
|
||||
fct: cjp tgk
|
||||
ovp: aqd nkd ocg
|
||||
qoi: ktn fft
|
||||
wei: lfd wvv
|
||||
qda: gqr kyg qoi
|
||||
jzd: oqh mxu
|
||||
ukm: oim fwq ntx
|
||||
dof: nwa jed tif
|
||||
zpb: zne fdm
|
||||
sei: nhd
|
||||
nkd: gaz qcx uft
|
||||
iag: xnv vke
|
||||
xrt: plt
|
||||
lfd: kxy
|
||||
mga: htl uft qcx gaz
|
||||
szf: ooa
|
||||
vbw: ooa jcy cub
|
||||
gho: svn msf bgp
|
||||
wlw: ive wvv
|
||||
psk: gbg vvk
|
||||
peg: psk tnb nhd
|
||||
ebu: gyo qqp
|
||||
cbn: cvv klx
|
||||
xob: xed nju
|
||||
qlq: crj
|
||||
rrs: ymt egc fft gjs
|
||||
bie: xis trn
|
||||
qrb: trn bbu skd
|
||||
xry: zyz qic
|
||||
fwq: zno dxf
|
||||
qqp: tlf mjr jds mrg
|
||||
vkm: kxy nju
|
||||
qtl: out
|
||||
oek: igf
|
||||
tun: ykg tgk cjp
|
||||
dac: sxv emj
|
||||
htg: izo sho btt bli
|
||||
vwx: tft ktj pdq
|
||||
ymd: mjz dsv pss
|
||||
lkk: kpe
|
||||
tlo: fmk
|
||||
mvv: urx
|
||||
alh: ooa cub
|
||||
kjo: hbl
|
||||
ztd: zpi
|
||||
blh: bie gwt qrb
|
||||
asv: kbp siz mkn
|
||||
rsk: kpa dob ctf
|
||||
ctf: ufu iep
|
||||
hpv: rfb
|
||||
cot: zrr sdm
|
||||
nfw: raa dac lix cpl
|
||||
jds: cmv
|
||||
qxa: cin mfc
|
||||
auh: cub ooa
|
||||
drh: nog wia qww
|
||||
lto: way pgj dfi gor
|
||||
cii: ojz urx
|
||||
mkn: unc
|
||||
cmc: ooa jcy cub
|
||||
mcv: mkn siz lqa
|
||||
sxv: tgk ykg cjp
|
||||
iyx: ahy wlw
|
||||
kmv: bna gkh
|
||||
cmz: bjj mfc xyw
|
||||
fsk: ffa hbl tan
|
||||
xvx: inl gms bey pmh ofx mpg sha wzh fuo pof mcv xpe kao ahr
|
||||
lkc: tgk ykg you cjp
|
||||
sds: vae bgp
|
||||
qug: bjj
|
||||
wuo: llf
|
||||
mjz: tif hmc txn nwa jed
|
||||
fuo: vxm
|
||||
cin: yjs rxt srd dfv aso eai axd
|
||||
vak: huw gki nsb ymd
|
||||
ffa: cgq oli fco yga saj
|
||||
gni: qzv efw
|
||||
qqa: igv vkm qqg
|
||||
dfv: ojz
|
||||
yct: oyz qlj
|
||||
oli: tun
|
||||
pcz: qic zyz ufi
|
||||
xcf: raa dac cpl
|
||||
oae: uyb yhv
|
||||
otz: uso chy
|
||||
zrr: out
|
||||
wjp: bhs yck
|
||||
wgo: ehw
|
||||
ybb: yon ldu nwb
|
||||
mtp: oqh rfk
|
||||
poc: cvv sfd
|
||||
fno: gkl fjv jcm
|
||||
arm: ddi wjp
|
||||
bey: ovo rnw rmn awz kmv
|
||||
kpe: uft qcx htl gwu gaz
|
||||
yow: kpa dob
|
||||
gyo: tlf mjr qki mrg
|
||||
cvv: bcp mtf jdq asj
|
||||
hcc: qlj uyb oyz
|
||||
wia: cjp
|
||||
gor: jdr nim xcr
|
||||
kgx: ekb viq
|
||||
vja: ztd vca lnv
|
||||
kao: vts plr bqf
|
||||
wzh: wst ybq ehu
|
||||
vny: bey inl gms mpg nkx ohv ofx fuo wzh ahr nee kao xpe asv mcv pof
|
||||
vts: yrh
|
||||
hjd: out
|
||||
teg: eds
|
||||
bwj: nni
|
||||
yez: qrb gwt
|
||||
oyg: fjv jcm upm
|
||||
yvj: yct wul rhq vke
|
||||
fgg: hzg ddi qae skk
|
||||
poh: nfw zpz xcf
|
||||
aso: gij wgo
|
||||
vcs: eqo mau nar
|
||||
ikl: nfm bvm
|
||||
eqo: xyw cin bjj mfc
|
||||
ixr: rpb
|
||||
blx: vnv plt uqv
|
||||
ydb: nju kxy xed
|
||||
jtk: out
|
||||
pcy: vcs nnb
|
||||
siz: xob ggb
|
||||
qic: hsx
|
||||
wrs: may vse
|
||||
eom: gyo
|
||||
rnw: ukm
|
||||
srh: jbx ipz
|
||||
qzv: wia nog tln lkc
|
||||
kor: nfw zpz
|
||||
htl: axv rcz qop
|
||||
msf: you ykg tgk cjp
|
||||
vyn: uwx
|
||||
irn: dct qug pgs
|
||||
vke: yhv uyb
|
||||
xnv: oyz yhv uyb
|
||||
uwx: cjp
|
||||
dtw: hzv nwl peg
|
||||
qeh: cmz nyd
|
||||
zae: wns omw pcz
|
||||
ppo: kpa
|
||||
uob: ahy wei
|
||||
ony: mhd
|
||||
mrg: yvj ltc iag cmv
|
||||
ofx: wst ybq qqa ehu
|
||||
zmb: kxy nju
|
||||
lqs: fuj
|
||||
eai: ren
|
||||
fft: yzt blx jpn xrt ysw
|
||||
cmv: xnv yct
|
||||
pmh: wst ehu ybq
|
||||
vca: bvz zpi
|
||||
zhm: pcz xry
|
||||
tln: tgk you ykg
|
||||
pao: nwb ues yon
|
||||
uht: taw ffa tan ofg
|
||||
otu: zzx rnx
|
||||
sdm: out
|
||||
beg: out
|
||||
ren: rye pgb mbm ecy
|
||||
bjr: gwt qrb
|
||||
cnn: urx ojz jtq
|
||||
jcm: oae nxt
|
||||
vnv: uyb qlj
|
||||
vzx: out
|
||||
tqj: zne fdm szf
|
||||
lgg: jdq fbb asj
|
||||
rpb: oyg jbx ivr ipz
|
||||
lgb: gxr mhd arm zee fgg
|
||||
ntx: ytw
|
||||
nee: afk vts ksc bqf
|
||||
ksc: qbg
|
||||
urx: seb
|
||||
ovo: ukm
|
||||
pub: dct pgs qxa
|
||||
crj: pgb rye alh
|
||||
haj: klx cvv sfd
|
||||
oim: weh dxf zno ytw opp
|
||||
npo: mhd arm fgg gxr
|
||||
raa: sxv emj
|
||||
rfk: fje
|
||||
ktn: blx jpn xrt
|
||||
lrv: ved lto hni
|
||||
hwx: kpe mga
|
||||
fei: cjp you ykg
|
||||
lap: ldh otu
|
||||
lnv: rtf bvz zpi
|
||||
saj: uzy fct
|
||||
skk: qtl yck jtk
|
||||
cnr: vse may tqj zpb
|
||||
jjk: lgg cvv sfd
|
||||
rok: rfb gij
|
||||
gpn: jcy
|
||||
led: qzv drh
|
||||
ksw: xvw gcs
|
||||
cqj: uyb oyz
|
||||
sti: gki huw nsb
|
||||
swo: yxl xlx
|
||||
rtf: swo
|
||||
uyb: mqm pii eeo nvs rnk gjk tes dwz wdx tdq lmv
|
||||
dki: hzv nwl sei nsg peg
|
||||
rnx: out
|
||||
bli: qix ixj
|
||||
tlf: iag iwy ltc
|
||||
huf: nps
|
||||
qmy: bid cub jcy
|
||||
huw: dof
|
||||
nnb: mau bbf avw eqo nar
|
||||
qqg: kxy xed
|
||||
dyd: qeh chy
|
||||
xmv: ztd llf lnv
|
||||
yzt: plt uqv vnv
|
||||
mqm: uso
|
||||
myt: foi lap hdp
|
||||
axd: esg vub wrs cnr
|
||||
zyz: beg hsx hjd
|
||||
ufi: fgo hsx beg
|
||||
dfi: xcr
|
||||
ecy: cub bid
|
||||
fql: fes hdp lap
|
||||
jjn: sei nsg peg
|
||||
awz: gkh
|
||||
cpl: wii
|
||||
ous: sei nsg peg
|
||||
efw: wia qww tln lkc
|
||||
you: teg ndz ljf dga agc ikl zob oqw gra jbh gym zgm pye ctp ovj
|
||||
cjp: ovj ctp zgm jbh gym gra ikl zob gju oqw agc dga ljf vwx bds lrv teg ndz bwj
|
||||
lin: fgo
|
||||
mxu: fje btx hhl wal
|
||||
rwt: out
|
||||
xed: eom fau blh dlw bjr apc vaz akc hmx jjk aan ebu haj yez ixr qnr poc qda
|
||||
nlq: ooa jcy cub
|
||||
ixj: cub jcy
|
||||
lll: bey pmh inl gms mpg nkx ohv ofx fuo sha ahr nee xpe asv mcv
|
||||
ybq: vkm
|
||||
gci: ooa jcy
|
||||
rfb: rsk
|
||||
ywb: grr gni led
|
||||
tya: opp
|
||||
asj: yhv oyz
|
||||
jpn: vnv
|
||||
rqd: ymd nsb gki
|
||||
qkg: tku irn
|
||||
svr: lll vny xvx gaq
|
||||
gqr: fft gjs ymt
|
||||
chy: nyd vzu cmz
|
||||
yza: uyb qlj oyz
|
||||
nhd: sds gho
|
||||
skd: yza cqj wnt vmk
|
||||
eeo: lzk lkk
|
||||
ykg: ctp ovj gym ikl gju gra fwv lrv bds vwx ljf bwj
|
||||
fdm: bid
|
||||
pdq: ayf fql myt irf btu
|
||||
vvk: msf svn
|
||||
zne: cub bid
|
||||
gcs: tgk ykg
|
||||
ooa: jjn xzi eoa ozq dki kor tga rtk ous mni
|
||||
gjk: pcy
|
||||
pgj: nim
|
||||
ekb: dly qmy hwv
|
||||
ive: xed nju kxy
|
||||
omw: ufi
|
||||
ehw: dob ctf
|
||||
fvw: wei
|
||||
pii: mxu zfo
|
||||
ktj: fql irf btu
|
||||
hmf: jcy
|
||||
cgd: pcd rea qkg
|
||||
xpe: ose iyx fvw uob
|
||||
ztn: yvg nnb
|
||||
wxi: weh dxf
|
||||
ntl: ztd
|
||||
oxb: mga aqd kpe ocg
|
||||
cge: qjf pfe
|
||||
svm: crj wlu ren hvz
|
||||
nxt: uyb qlj oyz
|
||||
cgq: hyr tun fei
|
||||
ivr: upm jcm gkl fjv
|
||||
jtq: ybb
|
||||
dpn: pcd rea
|
||||
qww: cjp tgk you
|
||||
rxt: btt
|
||||
afk: yrh wwz
|
||||
nar: mfc bjj cin xyw
|
||||
yck: out
|
||||
svn: cjp ykg you tgk
|
||||
uft: rcz ziq
|
||||
upm: hcc
|
||||
lzk: nkd
|
||||
ufu: cub
|
||||
qlj: xva nvs dpn dyd mtp cgd pdl rnk gjk otz jkd lmv atk pii ruj wdx vak sti eeo mqm jzd dwz tes tdq
|
||||
irf: hdp fes
|
||||
xlx: out
|
||||
btu: foi
|
||||
gjs: ysw xrt jpn blx yzt
|
||||
apc: cae qqp
|
||||
eoa: nfw
|
||||
ocg: qcx uft htl gwu gaz
|
||||
xva: hwx ovp lkk
|
||||
klx: asj fbb bcp jdq
|
||||
hhl: xyw
|
||||
hwv: cub jcy ooa
|
||||
ysj: hvz wlu crj
|
||||
moo: qww tln nog
|
||||
abt: vcs yvg nnb
|
||||
jkd: nsb ymd huw
|
||||
nwb: jcy cub
|
||||
jlm: zrr rwt sdm izy
|
||||
ofg: saj oli
|
||||
zfo: dni
|
||||
tgk: bwj ndz fwv teg bds lrv vwx ljf oqw gju ikl gra dga agc ovj gym jbh pye zgm
|
||||
axv: xyw bjj
|
||||
ils: oqh
|
||||
dlw: bie qrb
|
||||
hbl: cgq oli yga saj
|
||||
kts: agr zhm zae
|
||||
qnr: fmk rpb
|
||||
fje: mfc bjj cin
|
||||
nfm: whc
|
||||
yxl: out
|
||||
gwt: bbu
|
||||
uzy: tgk cjp
|
||||
ziq: mfc bjj xyw cin
|
||||
tpx: out
|
||||
zpz: cpl raa
|
||||
may: gpn fdm nlq szf
|
||||
nyd: cin
|
||||
weh: kxy nju xed
|
||||
lmv: pcy ztn
|
||||
bjj: kgx cii mbv uzf hpv rok aso rpf eai qlq srd htg vpq cnn mvv rxt icw dfv pav yjs svm axd lqs
|
||||
gkl: oae
|
||||
rit: ofg ffa taw
|
||||
wwz: sfu
|
||||
wlu: ecy pgb rye
|
||||
wul: qlj yhv
|
||||
bgp: cjp
|
||||
tga: jtb bpb
|
||||
zzx: out
|
||||
qki: iag iwy yvj
|
||||
wdx: uso chy
|
||||
dob: iep auh
|
||||
llf: bvz
|
||||
bvm: zhm whc agr
|
||||
hmx: fmk
|
||||
foi: rlt otu
|
||||
yrh: tzi
|
||||
bvz: isk
|
||||
wqn: uht kjo fsk upc rit
|
||||
ovj: vja xmv
|
||||
lbs: uyb oyz
|
||||
ljf: nni oek
|
||||
bid: xyo kor ywb rtk ozq jjn
|
||||
uzf: wrs blv cnr
|
||||
yjs: esg
|
||||
btx: bjj cin
|
||||
avw: xyw
|
||||
ehu: meq nwe qqg igv
|
||||
jed: mfc xyw cin
|
||||
aan: sfd lgg klx
|
||||
fwv: xmv vja ntl
|
||||
igv: xed
|
||||
wal: cin xyw mfc
|
||||
aqd: uft
|
||||
gwu: rcz
|
||||
gxr: skk
|
||||
upc: hbl taw ffa tan ofg
|
||||
hzv: nhd
|
||||
izy: out
|
||||
srd: viq
|
||||
pav: izo bli sho
|
||||
mbv: fuj ekb viq
|
||||
emj: you
|
||||
izo: vbw eor gpr ixj
|
||||
vse: szf nlq fdm zne
|
||||
pgb: jcy bid
|
||||
jdq: yhv uyb
|
||||
ayf: foi lap hdp fes
|
||||
tzi: qjf
|
||||
pcd: pub
|
||||
yga: uzy
|
||||
gpr: bid jcy cub
|
||||
nim: ewr jlm crv rej
|
||||
atk: oxb lzk
|
||||
grr: moo qzv efw ewa drh
|
||||
hzg: bhs yck
|
||||
tft: btu irf myt fql
|
||||
tdq: chy
|
||||
uso: vzu
|
||||
ymt: blx ysw
|
||||
fbb: qlj uyb
|
||||
zob: pdq
|
||||
pss: hmc tif nwa
|
||||
tnb: gbg vvk
|
||||
qjf: nju
|
||||
iej: nfw xcf
|
||||
gkm: gni grr
|
||||
mpg: kmv awz ovo rmn
|
||||
dwz: pcy
|
||||
blv: zpb tqj
|
||||
ose: wlw ahy
|
||||
ymg: xlx
|
||||
sha: kmv rmn ovo rnw
|
||||
eor: ooa
|
||||
ldu: cub
|
||||
nkg: gcs
|
||||
wnt: yhv uyb
|
||||
vae: you ykg tgk
|
||||
pye: ved
|
||||
rmn: gkh ukm bna
|
||||
lqa: ggb xob
|
||||
yhv: xva nvs dpn dyd mtp cgd ils pdl rnk gjk omj otz jkd atk lmv pii ruj vak sti eeo mqm jzd dwz rqd tdq
|
||||
bhs: out
|
||||
icw: urx
|
||||
ltc: wul rhq vke
|
||||
rhq: uyb
|
||||
esg: zpb tqj vse
|
||||
cub: rtk tga dtw jjn knm poh qqq dki iej
|
||||
xyo: nkg ksw jtb vyn
|
||||
nsg: psk tnb nhd
|
||||
ysw: vnv
|
||||
gkh: wxi oim fwq
|
||||
akc: gqr rrs qoi
|
||||
czy: wlu
|
||||
jdr: ewr cot jlm crv
|
||||
qqq: zpz
|
||||
kyg: egc gjs ymt
|
||||
agc: oek eds
|
||||
bbf: mfc
|
||||
ytw: kxy
|
||||
tku: qxa dct qug
|
||||
nsb: pss mjz dof
|
||||
seb: yon
|
||||
ggb: xed
|
||||
nps: xed
|
||||
tif: xyw bjj mfc
|
||||
dsv: jed txn tif
|
||||
nni: npo
|
||||
dly: jcy cub
|
||||
xcr: jlm rej crv ewr
|
||||
hdp: ldh otu
|
||||
ohv: vts ksc bqf
|
||||
vmk: qlj yhv uyb oyz
|
||||
qbg: cge huf sfu
|
||||
bna: wxi tya fwq
|
||||
ddi: jtk
|
||||
trn: cqj
|
||||
nwe: xed
|
||||
ipz: upm gkl fjv
|
||||
fco: tun fei uzy
|
||||
rea: pub tku irn
|
||||
bqf: qbg yrh
|
||||
sho: gpr ixj qix vbw eor
|
||||
pof: uob fvw iyx
|
||||
isk: xlx vzx
|
||||
dct: mfc bjj xyw cin
|
||||
ntk: cnr wrs
|
||||
nog: cjp ykg you tgk
|
||||
rcz: bjj mfc cin
|
||||
mfc: icw qlq eai vpq htg pav cnn mbv svm yjs
|
||||
rlt: tpx zzx rnx
|
||||
mau: bjj cin
|
||||
pxj: dfi pgj way
|
||||
xvw: cjp tgk you ykg
|
||||
bds: bvm nfm kts
|
||||
rpf: qvw wgo gij
|
||||
vzu: bjj mfc
|
||||
qae: yck bhs qtl
|
||||
dxf: kxy nju
|
||||
omj: oxb lzk hwx
|
||||
pgs: mfc bjj xyw
|
||||
ndz: eds oek nni
|
||||
mni: peg sei nwl hzv
|
||||
ewr: zrr izy
|
||||
mtf: oyz yhv
|
||||
yon: bid jcy cub
|
||||
jbx: upm jcm gkl
|
||||
gaz: axv ziq rcz
|
||||
qcx: rcz qop axv
|
||||
gij: yow
|
||||
rnk: oqh
|
||||
iwy: vke rhq
|
||||
uqv: oyz uyb qlj
|
||||
sfu: zmb qjf
|
||||
nwa: bjj
|
||||
ttm: gqr rrs kyg qoi
|
||||
jtb: gcs uwx xvw
|
||||
nkx: iyx
|
||||
rtk: rit upc fsk kjo uht
|
||||
agr: pcz omw
|
||||
oqh: btx fje wal
|
||||
fau: fmk rpb srh
|
||||
sfd: jdq bcp asj
|
||||
fjv: nxt oae
|
||||
ojz: seb pao ybb
|
||||
qix: bid
|
||||
way: jdr
|
||||
jbh: wuo
|
||||
unc: kxy xed
|
||||
kbp: ydb xob ggb unc
|
||||
hvz: pgb mbm rye
|
||||
wii: tgk you cjp
|
||||
dga: kts nfm bvm
|
||||
bpb: uwx
|
||||
inl: wst ehu qqa
|
||||
zee: wjp qae ddi
|
||||
pdl: ovp hwx lzk oxb
|
||||
gra: kts
|
||||
crv: sdm rwt
|
||||
oqw: lto
|
||||
xzi: uht kjo fsk
|
||||
hyr: you
|
||||
xis: cqj yza lbs vmk wnt
|
||||
ahy: lfd ive
|
||||
plr: yrh
|
||||
fgo: out
|
||||
qvw: ehw ppo yow
|
||||
viq: qmy
|
||||
plt: oyz yhv
|
||||
hmc: cin mfc
|
||||
btt: qix eor vbw
|
||||
pfe: nju xed
|
||||
yvg: bbf eqo
|
||||
tes: abt ztn pcy
|
||||
fmk: ivr oyg fno ipz
|
||||
mjr: iwy ltc
|
||||
txn: cin mfc bjj
|
||||
mhd: hzg ddi wjp skk
|
||||
vaz: gyo cae qqp
|
||||
90
11/main.go
Normal file
90
11/main.go
Normal file
@@ -0,0 +1,90 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"git.z1glr.de/advent-of-code-2025/pkg/aoc"
|
||||
)
|
||||
|
||||
type Server struct {
|
||||
Start, Out bool
|
||||
Destinations map[string]*Server
|
||||
}
|
||||
|
||||
func (s *Server) Walk() int {
|
||||
if s.Out {
|
||||
return 1
|
||||
} else {
|
||||
routes := 0
|
||||
|
||||
for _, dd := range s.Destinations {
|
||||
routes += dd.Walk()
|
||||
}
|
||||
|
||||
return routes
|
||||
}
|
||||
}
|
||||
|
||||
func ParseServerLine(s string) (*Server, string) {
|
||||
stringFields := strings.Fields(s)
|
||||
|
||||
returnServer := Server{
|
||||
Destinations: make(map[string]*Server),
|
||||
}
|
||||
|
||||
for _, ff := range stringFields[1:] {
|
||||
switch ff {
|
||||
case "you":
|
||||
returnServer.Start = true
|
||||
case "out":
|
||||
returnServer.Out = true
|
||||
default:
|
||||
returnServer.Destinations[ff] = nil
|
||||
}
|
||||
}
|
||||
|
||||
return &returnServer, stringFields[0][:len(stringFields[0])-1]
|
||||
}
|
||||
|
||||
func do(test bool) (int, int) {
|
||||
rows := aoc.ReadFileRows(test)
|
||||
|
||||
servers := make(map[string]*Server)
|
||||
|
||||
starts := []*Server{}
|
||||
|
||||
for _, rr := range rows {
|
||||
thisServer, name := ParseServerLine(rr)
|
||||
|
||||
servers[name] = thisServer
|
||||
|
||||
if thisServer.Start {
|
||||
starts = append(starts, thisServer)
|
||||
}
|
||||
}
|
||||
|
||||
// populate destinations
|
||||
for ii := range servers {
|
||||
ss := servers[ii]
|
||||
for dd := range ss.Destinations {
|
||||
ss.Destinations[dd] = servers[dd]
|
||||
}
|
||||
}
|
||||
|
||||
routes := 0
|
||||
|
||||
for _, ss := range starts[:1] {
|
||||
routes += ss.Walk()
|
||||
}
|
||||
|
||||
fmt.Println(routes)
|
||||
|
||||
return routes, 0
|
||||
}
|
||||
|
||||
func main() {
|
||||
if r1, r2 := do(true); r1 == 5 && r2 == 0 {
|
||||
do(false)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user