mirror of
https://github.com/wezm/advent-of-code.git
synced 2024-12-18 18:29:55 +00:00
Day 6 part 1
This commit is contained in:
parent
6cb3230d27
commit
93d609a25e
2 changed files with 964 additions and 0 deletions
859
2019/input/day6.txt
Normal file
859
2019/input/day6.txt
Normal file
|
@ -0,0 +1,859 @@
|
|||
Z9G)Q7N
|
||||
D1W)7G9
|
||||
FP7)F5P
|
||||
L8W)55T
|
||||
YZC)1HN
|
||||
1DQ)QKD
|
||||
4RD)38D
|
||||
8V7)DC8
|
||||
95Q)33Q
|
||||
Y8N)G7L
|
||||
X25)7YN
|
||||
5QH)JWW
|
||||
ZWL)HGG
|
||||
H4Y)RWG
|
||||
N38)XWR
|
||||
PWP)F6Y
|
||||
6XB)QX1
|
||||
G3W)PKM
|
||||
5G5)439
|
||||
V1Z)CBZ
|
||||
8X1)5R5
|
||||
6LJ)QHD
|
||||
V9Q)N7G
|
||||
WRP)XBW
|
||||
61Z)7KN
|
||||
FQR)371
|
||||
KD8)GSS
|
||||
FMM)B8R
|
||||
QXD)4ZG
|
||||
7JC)5SB
|
||||
VGH)XCZ
|
||||
VSN)C2H
|
||||
W76)12B
|
||||
R4Y)W7R
|
||||
L8H)V1Z
|
||||
BHB)1T9
|
||||
7S2)1V6
|
||||
338)MYS
|
||||
ZM3)RN1
|
||||
3P8)WW7
|
||||
GVG)FPQ
|
||||
43B)HKJ
|
||||
QN3)KK9
|
||||
728)KSW
|
||||
QBV)J45
|
||||
XTS)WW1
|
||||
Q2C)HM8
|
||||
X25)9TL
|
||||
V63)WR1
|
||||
DP1)PX5
|
||||
GNV)J4Y
|
||||
672)BY5
|
||||
CK1)WD2
|
||||
5R5)TZR
|
||||
4JW)MKF
|
||||
KMR)Y8K
|
||||
HDY)YZC
|
||||
CGS)ZL4
|
||||
RCT)238
|
||||
ZNZ)J3L
|
||||
17F)8LJ
|
||||
YG5)YVS
|
||||
1Z9)CK5
|
||||
HFN)GZV
|
||||
V15)97D
|
||||
5NP)6XB
|
||||
K9D)J32
|
||||
Q36)KN8
|
||||
91X)85T
|
||||
XRY)LLV
|
||||
ZL4)CK2
|
||||
JLC)DLX
|
||||
99Q)8LK
|
||||
P3R)X6R
|
||||
ZNZ)SH8
|
||||
H7C)669
|
||||
V7K)43B
|
||||
Y9T)7VF
|
||||
X5L)54F
|
||||
RLX)TKF
|
||||
5XJ)H69
|
||||
7FB)MXS
|
||||
D74)24S
|
||||
MDV)VSN
|
||||
C1Y)J7T
|
||||
P8Q)BPJ
|
||||
LF7)JCM
|
||||
77T)XYQ
|
||||
JYP)DCX
|
||||
WZ6)GB3
|
||||
4YN)1Z9
|
||||
5FS)Y9Z
|
||||
HXD)MWF
|
||||
XLS)CRC
|
||||
C93)9SN
|
||||
STQ)3FL
|
||||
D81)NLP
|
||||
T7T)8V7
|
||||
K6N)YSF
|
||||
7ZB)73P
|
||||
8NT)28S
|
||||
F1F)1L8
|
||||
1HN)WL1
|
||||
TWS)D1W
|
||||
6WG)2DS
|
||||
FPN)FBN
|
||||
CK2)NW8
|
||||
2RS)DG7
|
||||
N6F)G5L
|
||||
CCK)C6M
|
||||
7B9)KRX
|
||||
TXD)7FB
|
||||
J45)C32
|
||||
CG2)V7K
|
||||
6YL)S4C
|
||||
PVN)CX9
|
||||
BTW)4FQ
|
||||
6SL)CC5
|
||||
S97)3GM
|
||||
47N)R5J
|
||||
T9R)5NP
|
||||
3FL)HXF
|
||||
HF1)DSX
|
||||
RWJ)33Z
|
||||
NGS)JRF
|
||||
T74)D5R
|
||||
9SQ)747
|
||||
Z7S)S4D
|
||||
WHS)XQ2
|
||||
PTF)1PW
|
||||
KW2)RCT
|
||||
4Z7)K9D
|
||||
9TV)N5N
|
||||
GJP)91Y
|
||||
RQB)WS7
|
||||
14X)Y9T
|
||||
D1W)6ZH
|
||||
Z5M)M52
|
||||
HMM)JY4
|
||||
H64)SAN
|
||||
V3N)FT8
|
||||
1ZQ)FTD
|
||||
WJG)516
|
||||
YQP)MK9
|
||||
79F)GMS
|
||||
NC9)CKH
|
||||
VMD)W32
|
||||
GMS)385
|
||||
XPP)RDH
|
||||
JCM)8MB
|
||||
ZKH)CMV
|
||||
HYY)SK7
|
||||
NYN)JDY
|
||||
FTD)6WG
|
||||
G8K)Z4P
|
||||
5NK)RRG
|
||||
GKY)3Z4
|
||||
Z9W)BWG
|
||||
LS6)3D4
|
||||
HZF)X5L
|
||||
3NV)9TG
|
||||
2HB)GLS
|
||||
8N9)842
|
||||
T95)S6F
|
||||
4PZ)338
|
||||
NC9)HYS
|
||||
VGM)VBR
|
||||
X9G)855
|
||||
GGP)WTG
|
||||
DRJ)HFY
|
||||
SXT)49K
|
||||
71R)P99
|
||||
49K)4VN
|
||||
B4P)G3W
|
||||
DS1)CC6
|
||||
PTX)Z69
|
||||
19D)2V8
|
||||
2DM)2VY
|
||||
CNT)CH4
|
||||
WD2)L5Y
|
||||
VFV)NGN
|
||||
BV6)8MQ
|
||||
HMS)NJ1
|
||||
V39)355
|
||||
8B6)63R
|
||||
N6V)N8S
|
||||
X9X)BPV
|
||||
H5L)HW5
|
||||
QX1)8XJ
|
||||
BGB)2XW
|
||||
8P1)99V
|
||||
3H8)9TV
|
||||
Z2Q)XDQ
|
||||
385)QS2
|
||||
3D4)FMM
|
||||
BL3)J3T
|
||||
L6P)YG5
|
||||
JV4)6SL
|
||||
VL5)N6F
|
||||
BPV)SG7
|
||||
HLX)LB6
|
||||
KSW)SSF
|
||||
HKJ)KW2
|
||||
VYP)YGK
|
||||
4RZ)KQG
|
||||
X8Q)X25
|
||||
CM4)XF4
|
||||
ZSG)C9Q
|
||||
XXP)CG2
|
||||
9LS)YRN
|
||||
L4W)9SZ
|
||||
98B)XJQ
|
||||
C9W)HMS
|
||||
SSF)9SQ
|
||||
21W)J3F
|
||||
4PH)H2J
|
||||
PKM)SHR
|
||||
35M)G4D
|
||||
8FT)9LH
|
||||
3RW)VX8
|
||||
SSX)VZG
|
||||
BHH)BL3
|
||||
RTD)RNZ
|
||||
RD6)KMT
|
||||
YSL)1N8
|
||||
X1B)BH8
|
||||
LHB)HNN
|
||||
73P)LHB
|
||||
TGY)Z2L
|
||||
JPD)HK3
|
||||
SN6)BTD
|
||||
FW3)T7T
|
||||
CBZ)1PM
|
||||
HV3)CM4
|
||||
2DP)TX4
|
||||
6P4)FWL
|
||||
HNN)BDH
|
||||
51S)YS5
|
||||
3VP)GZC
|
||||
3D4)DDR
|
||||
MWF)66Z
|
||||
M52)TWS
|
||||
7XM)V9Q
|
||||
XQ2)KQH
|
||||
4XN)H8Y
|
||||
QKD)FP7
|
||||
FPQ)VC3
|
||||
91Y)16Y
|
||||
752)6P7
|
||||
RZN)T3D
|
||||
YS5)Z7S
|
||||
V1D)19X
|
||||
14P)7WH
|
||||
KQT)FLS
|
||||
WVC)ZSG
|
||||
JXC)4JJ
|
||||
B8R)KD8
|
||||
6S7)2MS
|
||||
NJH)S75
|
||||
S75)4Z7
|
||||
8LJ)Y19
|
||||
C5K)57N
|
||||
SH2)HSR
|
||||
CJJ)13S
|
||||
1HN)WVJ
|
||||
H3M)HLX
|
||||
N1R)Z9W
|
||||
S4C)XLS
|
||||
HP7)7LK
|
||||
WVJ)7JX
|
||||
GY3)SKW
|
||||
HSP)8X1
|
||||
VX8)2JT
|
||||
S4D)6CQ
|
||||
9TM)752
|
||||
J3L)G1K
|
||||
5LT)G4W
|
||||
HFY)6SN
|
||||
4X9)VGY
|
||||
VMD)YK2
|
||||
66Z)PWP
|
||||
HGP)YM7
|
||||
JDY)BDM
|
||||
ZSF)P2V
|
||||
MK9)XXP
|
||||
JRF)RFM
|
||||
RNZ)QRW
|
||||
7QF)NJY
|
||||
BWN)YD5
|
||||
9SS)X9V
|
||||
H69)GNV
|
||||
ZZH)LL9
|
||||
CM7)NYN
|
||||
J24)BGB
|
||||
RY9)5QL
|
||||
CCK)H5L
|
||||
J5M)DRJ
|
||||
7LK)T74
|
||||
373)RZN
|
||||
WQ1)7JC
|
||||
DG7)QBV
|
||||
LSR)PMX
|
||||
6ZH)PYL
|
||||
MFL)4X9
|
||||
LTB)Z5M
|
||||
36D)P7S
|
||||
63P)DP1
|
||||
38D)DVK
|
||||
D2P)XL6
|
||||
1SZ)T3Q
|
||||
N27)F1F
|
||||
F9Q)BV6
|
||||
ZDS)SDJ
|
||||
JW6)61Z
|
||||
7YN)Y14
|
||||
BXV)9LS
|
||||
JY4)VT4
|
||||
GVG)8FT
|
||||
HJW)3RW
|
||||
K39)GYC
|
||||
14F)NCB
|
||||
MXS)2DM
|
||||
24S)98N
|
||||
TKZ)CJJ
|
||||
XCZ)3NV
|
||||
NLP)X1B
|
||||
87T)RL7
|
||||
JBF)SQV
|
||||
3MZ)R56
|
||||
7JX)ZNM
|
||||
2S8)MPH
|
||||
MTL)LVS
|
||||
M87)3W9
|
||||
HXF)2L3
|
||||
751)WG5
|
||||
4ZG)65P
|
||||
28R)DS1
|
||||
LPT)HYY
|
||||
ZGT)HKP
|
||||
W63)QXH
|
||||
ZL6)C4K
|
||||
W66)LVF
|
||||
QSN)9BR
|
||||
8LY)BTW
|
||||
TP7)YTG
|
||||
SWG)BJ2
|
||||
8MB)373
|
||||
CS8)ZDS
|
||||
34F)N1R
|
||||
P1S)W66
|
||||
BWG)H2K
|
||||
G9T)ZM3
|
||||
DHJ)672
|
||||
H6G)V2T
|
||||
FCY)S1M
|
||||
XVM)4WM
|
||||
N6F)N27
|
||||
LZ3)HDY
|
||||
9D8)6P4
|
||||
2L3)PSK
|
||||
5HS)SH3
|
||||
4FQ)MDQ
|
||||
QXD)JPD
|
||||
6H1)2JH
|
||||
GNV)WXS
|
||||
RRG)Z2Q
|
||||
SQV)HQ1
|
||||
GCN)JL5
|
||||
LG6)SH2
|
||||
ZXK)PTF
|
||||
2JT)3H8
|
||||
SKW)HMM
|
||||
Q46)T95
|
||||
2XW)71R
|
||||
DBL)35T
|
||||
T7D)NT9
|
||||
PJ7)PMC
|
||||
M6X)DBK
|
||||
PZT)7P1
|
||||
G9H)5LT
|
||||
1V6)D1X
|
||||
MDV)M6G
|
||||
WVC)9D8
|
||||
T6X)NJG
|
||||
Q44)SSX
|
||||
BY5)Q44
|
||||
Y8K)DKH
|
||||
DLX)H64
|
||||
NJ1)79F
|
||||
3ZH)R9Z
|
||||
PYP)CW6
|
||||
N38)728
|
||||
3SC)NBL
|
||||
XWR)4RC
|
||||
BPJ)X24
|
||||
FCP)WQ1
|
||||
8XJ)NJH
|
||||
6V6)2TK
|
||||
M7H)PR6
|
||||
65P)XM7
|
||||
9R1)D74
|
||||
MBZ)VX3
|
||||
XJQ)P8Q
|
||||
HM8)HSP
|
||||
5W2)MPV
|
||||
DVK)17F
|
||||
8LK)5XJ
|
||||
BP2)6FD
|
||||
C6M)QLL
|
||||
ZXJ)KMR
|
||||
8QS)YTH
|
||||
W35)3R1
|
||||
1N8)HKQ
|
||||
4VN)H6Z
|
||||
2VW)3V9
|
||||
HYS)VFV
|
||||
YZ3)ZK5
|
||||
KNV)3VP
|
||||
FWL)YSL
|
||||
NRN)P38
|
||||
MFX)PVN
|
||||
MZ7)3P8
|
||||
LLV)PYP
|
||||
MGY)7H8
|
||||
N26)KCC
|
||||
4ZK)2DP
|
||||
HJS)ZSF
|
||||
HTV)JXC
|
||||
3J3)W4G
|
||||
4GG)JNB
|
||||
X6R)HY5
|
||||
GLS)FQR
|
||||
9LH)H4Y
|
||||
F4P)TV5
|
||||
HLY)V39
|
||||
HM8)LG6
|
||||
F6Y)JHK
|
||||
VPC)NN3
|
||||
YWT)X8T
|
||||
JV5)NQS
|
||||
7FL)3ZH
|
||||
MKY)P3R
|
||||
SCR)RY9
|
||||
5FR)T47
|
||||
BJ2)5FR
|
||||
NJY)MZ7
|
||||
BTD)JLC
|
||||
516)PXS
|
||||
G8K)K3T
|
||||
9SZ)PTX
|
||||
MYS)47N
|
||||
Z4P)CRS
|
||||
J84)V63
|
||||
6P7)VYP
|
||||
YGK)596
|
||||
SF4)VL5
|
||||
PX5)4SJ
|
||||
2V8)F4W
|
||||
XSC)FDN
|
||||
RBZ)35M
|
||||
XL6)4KJ
|
||||
K9M)R47
|
||||
Q7N)LZ3
|
||||
DJ2)Q36
|
||||
HY5)X8Q
|
||||
35T)PHH
|
||||
C3Q)6V6
|
||||
SH3)CTS
|
||||
X8T)DHJ
|
||||
3K4)W76
|
||||
LF1)KTP
|
||||
GB3)2RS
|
||||
RL7)HLL
|
||||
G1K)9TM
|
||||
63R)F4P
|
||||
LR9)Q2C
|
||||
XM7)6YL
|
||||
9TG)P67
|
||||
C32)4GG
|
||||
5NP)L1Z
|
||||
3V9)1TL
|
||||
GJP)ZGT
|
||||
N5N)L71
|
||||
VX3)7C8
|
||||
Q8Q)95Q
|
||||
Z3T)1N1
|
||||
57N)HJS
|
||||
QS2)3SC
|
||||
PV8)8FF
|
||||
63P)8QS
|
||||
PBV)JV5
|
||||
KQG)TXL
|
||||
7P1)X9X
|
||||
ZK5)M28
|
||||
JVF)P1S
|
||||
DL8)JTY
|
||||
9D8)91X
|
||||
4WT)XCJ
|
||||
S6F)TPQ
|
||||
FDN)KPT
|
||||
KS4)2VW
|
||||
NGN)7NQ
|
||||
WW1)XSC
|
||||
HP7)YOU
|
||||
KTP)MV8
|
||||
49K)2VD
|
||||
2CJ)CCK
|
||||
J4Y)YSY
|
||||
Q2Q)MWV
|
||||
YTH)J5M
|
||||
26H)CXL
|
||||
MWV)SCR
|
||||
W4G)9TT
|
||||
Y19)K6N
|
||||
5QL)GKY
|
||||
R5K)BBQ
|
||||
C2H)M74
|
||||
WW7)Q8Q
|
||||
YSF)J84
|
||||
9BR)14P
|
||||
6FD)CM7
|
||||
7G9)XTS
|
||||
TV5)ZKK
|
||||
X24)Y8N
|
||||
CSK)3YD
|
||||
HSR)H3M
|
||||
211)CK1
|
||||
92P)BHH
|
||||
MGZ)MDV
|
||||
5ZR)Q2Q
|
||||
P7S)2FV
|
||||
JWW)Z9G
|
||||
99V)ZZH
|
||||
WXS)S97
|
||||
PVN)HP7
|
||||
6CQ)KXK
|
||||
RZF)RD6
|
||||
M87)RLQ
|
||||
Y9Z)DT2
|
||||
PR6)GNR
|
||||
WL1)VGH
|
||||
LG6)6Z2
|
||||
C4K)HV3
|
||||
WS7)KD5
|
||||
98N)XCT
|
||||
CKH)BHB
|
||||
8CH)TGY
|
||||
GMS)99Q
|
||||
7VF)K39
|
||||
D54)LF1
|
||||
4SJ)PV8
|
||||
BDM)JW6
|
||||
3YD)ZL6
|
||||
BBQ)5NK
|
||||
9BR)GCN
|
||||
73L)D54
|
||||
MDQ)TP7
|
||||
C9Q)2S8
|
||||
2TK)77T
|
||||
PR5)LS6
|
||||
L5Y)FHX
|
||||
VZG)4PH
|
||||
NCB)D31
|
||||
H6Z)PBV
|
||||
6YD)26H
|
||||
XCT)63P
|
||||
BDH)8KZ
|
||||
VX3)ZNZ
|
||||
7PM)3MZ
|
||||
F4W)R4Y
|
||||
HKQ)PZT
|
||||
HKY)QN3
|
||||
TQY)FCY
|
||||
NJG)QX8
|
||||
CMV)8NT
|
||||
NN3)HK9
|
||||
7P1)5ZR
|
||||
697)YQP
|
||||
RV3)69K
|
||||
QX8)G9H
|
||||
R5J)RWJ
|
||||
13S)T2D
|
||||
NT9)NC4
|
||||
RLQ)BR6
|
||||
M24)CS8
|
||||
YSY)2HB
|
||||
VGY)DBL
|
||||
QQN)CCC
|
||||
RWG)X76
|
||||
SSX)F9Q
|
||||
FT5)N38
|
||||
6QQ)SY4
|
||||
JL5)L4W
|
||||
2VD)211
|
||||
5BF)36D
|
||||
JV4)L6P
|
||||
RDH)XW8
|
||||
61C)LC1
|
||||
85T)FCP
|
||||
4H6)LPT
|
||||
CH4)F8G
|
||||
BB7)RZF
|
||||
JHK)T6Z
|
||||
SHR)LTB
|
||||
HK9)JB4
|
||||
6QQ)TQY
|
||||
5WX)KQT
|
||||
7G9)L8H
|
||||
4T5)CNT
|
||||
T3D)92P
|
||||
7NQ)77J
|
||||
DDR)8M3
|
||||
DBK)X9G
|
||||
CGQ)9J8
|
||||
G5L)3WM
|
||||
YVS)M6X
|
||||
SG7)JK2
|
||||
CK5)V1D
|
||||
NQS)26M
|
||||
C32)TXD
|
||||
51G)FKP
|
||||
X8T)5BF
|
||||
XW8)6LJ
|
||||
CBZ)87T
|
||||
Q5J)NGW
|
||||
3YD)VGM
|
||||
WR1)C1Y
|
||||
2MS)H6G
|
||||
JK2)9R1
|
||||
YM7)21W
|
||||
W32)6WP
|
||||
4T5)CV6
|
||||
CW6)D2P
|
||||
DSX)7XM
|
||||
YDG)7ZB
|
||||
T13)Z3T
|
||||
P67)2JF
|
||||
XGK)SX6
|
||||
NFB)DCW
|
||||
KN8)KZH
|
||||
TXL)14F
|
||||
KD5)HGP
|
||||
2VD)S9X
|
||||
TQV)D81
|
||||
TRM)75P
|
||||
PXS)T13
|
||||
BH8)HJW
|
||||
48P)2CJ
|
||||
H2J)RLX
|
||||
XYQ)NGS
|
||||
FKP)14X
|
||||
SK7)7PM
|
||||
LVS)D56
|
||||
DT2)J24
|
||||
439)M5S
|
||||
4Z7)4ZK
|
||||
HGG)7MR
|
||||
VC3)6QQ
|
||||
3W9)DDZ
|
||||
842)YWT
|
||||
PHH)RV3
|
||||
B3V)JVF
|
||||
7C8)WHS
|
||||
9TT)61C
|
||||
ZNM)RTD
|
||||
48Y)6S7
|
||||
PRW)HV6
|
||||
LC1)HTV
|
||||
75P)34F
|
||||
MPH)MTL
|
||||
2X4)4H6
|
||||
F8G)N6V
|
||||
VC3)WRP
|
||||
MLR)SKV
|
||||
7WH)1GY
|
||||
CZC)NFB
|
||||
9SN)DL8
|
||||
COM)HXD
|
||||
XZV)9SS
|
||||
YTG)4RD
|
||||
6SQ)MFL
|
||||
3GM)K9M
|
||||
1N1)4XN
|
||||
PS3)FW3
|
||||
HK3)CGQ
|
||||
N7G)ZWL
|
||||
28S)NRN
|
||||
GNR)BXQ
|
||||
DKH)LSR
|
||||
Z69)T6X
|
||||
M74)1ZN
|
||||
J3T)MLR
|
||||
SH8)1ZQ
|
||||
L1Z)WVC
|
||||
CXL)M49
|
||||
GGP)BWN
|
||||
7MR)NX2
|
||||
1GY)6SQ
|
||||
KQH)HKY
|
||||
LL9)V15
|
||||
TNS)HZF
|
||||
Y6X)6YD
|
||||
9VN)TNS
|
||||
K3T)YDG
|
||||
48P)XRY
|
||||
G7L)5FS
|
||||
HV6)7S2
|
||||
7H8)SF4
|
||||
4RC)MBZ
|
||||
BH8)48P
|
||||
K3N)7QF
|
||||
YM7)FT5
|
||||
1T9)M87
|
||||
PYL)DJ2
|
||||
Y14)9VN
|
||||
12B)LF7
|
||||
C9Q)48Y
|
||||
X9V)T9R
|
||||
MPV)ZKH
|
||||
MDQ)2X4
|
||||
GVY)XGK
|
||||
G4D)8ZH
|
||||
T47)4PZ
|
||||
M49)MGY
|
||||
RN1)V3N
|
||||
8KZ)K3N
|
||||
211)TRM
|
||||
69K)BP2
|
||||
7LK)PS3
|
||||
NX2)6H1
|
||||
D5R)GJP
|
||||
S9X)PJ7
|
||||
D1X)Y6X
|
||||
GZC)19D
|
||||
8M3)QQN
|
||||
YNN)PR5
|
||||
33Q)5QH
|
||||
YK2)GVG
|
||||
4JJ)751
|
||||
GSS)5G5
|
||||
MKF)KNV
|
||||
3WM)VQH
|
||||
QSX)VPC
|
||||
FLS)MKY
|
||||
MKF)4RZ
|
||||
33Z)BXV
|
||||
CC5)FPN
|
||||
RJT)28R
|
||||
YD5)TVW
|
||||
H2K)HF1
|
||||
TKZ)1SZ
|
||||
Z4Y)JBF
|
||||
X76)FJW
|
||||
VT4)4YN
|
||||
Q44)M7H
|
||||
L71)M24
|
||||
RBN)CS1
|
||||
DLL)M81
|
||||
DDZ)G8K
|
||||
1ZN)Z4Y
|
||||
KK9)8CH
|
||||
TZR)JV4
|
||||
9Z4)GY3
|
||||
596)BB7
|
||||
WG5)JYP
|
||||
RDH)VMD
|
||||
JNB)C5K
|
||||
XF4)GGP
|
||||
SKV)NJS
|
||||
FBN)71F
|
||||
9J8)1KP
|
||||
NBL)9Z4
|
||||
6Z2)L8W
|
||||
16Y)N26
|
||||
DC8)4WT
|
||||
FT8)4JW
|
||||
97D)8LY
|
||||
NDH)QSN
|
||||
VQH)LR9
|
||||
PMX)3Y2
|
||||
T3Q)Q46
|
||||
M6G)XSB
|
||||
8LK)51G
|
||||
J12)T7D
|
||||
FHX)XVM
|
||||
77J)5HS
|
||||
9WM)RQB
|
||||
HKP)CSK
|
||||
CGH)RBZ
|
||||
9TL)QSX
|
||||
KCC)H7C
|
||||
SDJ)SWG
|
||||
SY4)YF8
|
||||
2FV)C9W
|
||||
Z2L)PRW
|
||||
W7R)WZ6
|
||||
72C)STQ
|
||||
YRN)B4P
|
||||
1PM)8B6
|
||||
T6Z)C93
|
||||
CRC)XZV
|
||||
8MQ)RJT
|
||||
J3F)CGS
|
||||
238)8N9
|
||||
19X)JN8
|
||||
QXH)ZXK
|
||||
6P7)X3M
|
||||
ZKK)RBN
|
||||
P2V)DLL
|
||||
J32)3J3
|
||||
NJS)8P1
|
||||
6WP)MGZ
|
||||
NW8)B3V
|
||||
9J8)Q5J
|
||||
FKP)TQV
|
||||
P99)C3Q
|
||||
M28)KS4
|
||||
98N)9WM
|
||||
CJ9)R5K
|
||||
DCX)J12
|
||||
2V5)QXD
|
||||
JTY)SXT
|
||||
HW5)XPP
|
||||
2VY)W35
|
||||
1KP)G2Y
|
||||
747)1DQ
|
||||
BR6)CGH
|
||||
J7T)MFX
|
||||
FJW)HLY
|
||||
MGV)4T5
|
||||
PMC)TKZ
|
||||
S1M)7B9
|
||||
KXK)5W2
|
||||
GZV)DLW
|
||||
YF8)72C
|
||||
1L8)7FL
|
||||
JB4)98B
|
||||
DCW)W63
|
||||
D31)DTG
|
||||
CRS)ZXJ
|
||||
D56)CJ9
|
||||
43B)WJG
|
||||
WTG)YZ3
|
||||
KPT)2V5
|
||||
G2Y)HFN
|
||||
R9Z)3K4
|
||||
7KN)51S
|
||||
JN8)NC9
|
||||
2JH)697
|
||||
55T)73L
|
||||
3R1)5WX
|
||||
5SB)GVY
|
||||
CX9)YNN
|
||||
P38)CZC
|
||||
1PW)SN6
|
||||
2JF)G9T
|
||||
QRW)9MD
|
||||
LVF)MGV
|
||||
RFM)NDH
|
105
2019/src/bin/day6.rs
Normal file
105
2019/src/bin/day6.rs
Normal file
|
@ -0,0 +1,105 @@
|
|||
use std::{fs, io};
|
||||
|
||||
#[derive(Debug, Eq, PartialEq)]
|
||||
struct Orbit<'a>(&'a str, &'a str);
|
||||
|
||||
#[derive(Debug, Eq, PartialEq)]
|
||||
struct Node<'a> {
|
||||
name: &'a str,
|
||||
parent: Option<usize>, // Only COM should have None at the end
|
||||
}
|
||||
|
||||
fn main() -> io::Result<()> {
|
||||
let input = fs::read_to_string("input/day6.txt")?;
|
||||
let orbits = parse_input(&input);
|
||||
|
||||
println!("Part 1: {}", number_of_orbits(&orbits));
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn parse_input(input: &str) -> Vec<Orbit<'_>> {
|
||||
input
|
||||
.lines()
|
||||
.map(|line| {
|
||||
let mut parts = line.trim().split(')');
|
||||
Orbit(parts.next().unwrap(), parts.next().unwrap())
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
fn number_of_orbits(input: &[Orbit<'_>]) -> usize {
|
||||
// Build the tree from the input
|
||||
let mut nodes: Vec<Node<'_>> = Vec::with_capacity(input.len());
|
||||
|
||||
// Except for the universal Center of Mass (COM), every object in space is in orbit around
|
||||
// exactly one other object.
|
||||
for orbit in input {
|
||||
// Try to find the parent of this object
|
||||
let parent_index = nodes
|
||||
.iter()
|
||||
.position(|node| node.name == orbit.0)
|
||||
.unwrap_or_else(|| {
|
||||
nodes.push(Node {
|
||||
name: orbit.0,
|
||||
parent: None,
|
||||
});
|
||||
nodes.len() - 1
|
||||
});
|
||||
|
||||
// See if this object is already in nodes. If it is, then ensure its parent is
|
||||
// set, otherwise insert it.
|
||||
nodes
|
||||
.iter_mut()
|
||||
.find(|node| node.name == orbit.1)
|
||||
.map(|node| {
|
||||
if node.parent.is_none() {
|
||||
node.parent = Some(parent_index);
|
||||
}
|
||||
})
|
||||
.unwrap_or_else(|| {
|
||||
nodes.push(Node {
|
||||
name: orbit.1,
|
||||
parent: Some(parent_index),
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Now traverse the node and sum the orbits of each one
|
||||
(0..nodes.len())
|
||||
.map(|index| count_orbits(&nodes, index, 0))
|
||||
.sum()
|
||||
}
|
||||
|
||||
fn count_orbits(nodes: &[Node], node_index: usize, count: usize) -> usize {
|
||||
let node = &nodes[node_index];
|
||||
if let Some(parent) = node.parent {
|
||||
count_orbits(nodes, parent, count + 1)
|
||||
} else {
|
||||
count
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
const TEST_INPUT: &str = "B)C
|
||||
COM)B
|
||||
C)D
|
||||
D)E
|
||||
E)F
|
||||
B)G
|
||||
G)H
|
||||
D)I
|
||||
E)J
|
||||
J)K
|
||||
K)L
|
||||
";
|
||||
|
||||
#[test]
|
||||
fn test_number_of_orbits() {
|
||||
let orbits = parse_input(TEST_INPUT);
|
||||
assert_eq!(number_of_orbits(&orbits), 42);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue