Up to Day 21 (excluding day 16)
This commit is contained in:
238
Cargo.lock
generated
238
Cargo.lock
generated
@@ -2,6 +2,18 @@
|
|||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
version = 3
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ahash"
|
||||||
|
version = "0.8.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"once_cell",
|
||||||
|
"version_check",
|
||||||
|
"zerocopy",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aho-corasick"
|
name = "aho-corasick"
|
||||||
version = "1.1.2"
|
version = "1.1.2"
|
||||||
@@ -11,6 +23,12 @@ dependencies = [
|
|||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "allocator-api2"
|
||||||
|
version = "0.2.16"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "anyhow"
|
name = "anyhow"
|
||||||
version = "1.0.75"
|
version = "1.0.75"
|
||||||
@@ -22,15 +40,192 @@ name = "aoc-2023"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
"gcd",
|
||||||
|
"hashbrown",
|
||||||
|
"itertools",
|
||||||
|
"ndarray",
|
||||||
|
"num",
|
||||||
"regex",
|
"regex",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "autocfg"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfg-if"
|
||||||
|
version = "1.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "either"
|
||||||
|
version = "1.9.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "gcd"
|
||||||
|
version = "2.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hashbrown"
|
||||||
|
version = "0.14.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
|
||||||
|
dependencies = [
|
||||||
|
"ahash",
|
||||||
|
"allocator-api2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itertools"
|
||||||
|
version = "0.12.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
|
||||||
|
dependencies = [
|
||||||
|
"either",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "matrixmultiply"
|
||||||
|
version = "0.3.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
"rawpointer",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "memchr"
|
name = "memchr"
|
||||||
version = "2.6.4"
|
version = "2.6.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
|
checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ndarray"
|
||||||
|
version = "0.15.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
|
||||||
|
dependencies = [
|
||||||
|
"matrixmultiply",
|
||||||
|
"num-complex",
|
||||||
|
"num-integer",
|
||||||
|
"num-traits",
|
||||||
|
"rawpointer",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num"
|
||||||
|
version = "0.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
|
||||||
|
dependencies = [
|
||||||
|
"num-bigint",
|
||||||
|
"num-complex",
|
||||||
|
"num-integer",
|
||||||
|
"num-iter",
|
||||||
|
"num-rational",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-bigint"
|
||||||
|
version = "0.4.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
"num-integer",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-complex"
|
||||||
|
version = "0.4.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
|
||||||
|
dependencies = [
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-integer"
|
||||||
|
version = "0.1.45"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-iter"
|
||||||
|
version = "0.1.43"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
"num-integer",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-rational"
|
||||||
|
version = "0.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
"num-bigint",
|
||||||
|
"num-integer",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-traits"
|
||||||
|
version = "0.2.17"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "once_cell"
|
||||||
|
version = "1.19.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro2"
|
||||||
|
version = "1.0.70"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-ident",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "quote"
|
||||||
|
version = "1.0.33"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rawpointer"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "regex"
|
name = "regex"
|
||||||
version = "1.10.2"
|
version = "1.10.2"
|
||||||
@@ -59,3 +254,46 @@ name = "regex-syntax"
|
|||||||
version = "0.8.2"
|
version = "0.8.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "syn"
|
||||||
|
version = "2.0.41"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"unicode-ident",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-ident"
|
||||||
|
version = "1.0.12"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "version_check"
|
||||||
|
version = "0.9.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zerocopy"
|
||||||
|
version = "0.7.31"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d"
|
||||||
|
dependencies = [
|
||||||
|
"zerocopy-derive",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zerocopy-derive"
|
||||||
|
version = "0.7.31"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|||||||
@@ -7,4 +7,9 @@ edition = "2021"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0.75"
|
anyhow = "1.0.75"
|
||||||
|
gcd = "2.3.0"
|
||||||
|
hashbrown = "0.14.3"
|
||||||
|
itertools = "0.12.0"
|
||||||
|
ndarray = "0.15.6"
|
||||||
|
num = "0.4.1"
|
||||||
regex = "1.10.2"
|
regex = "1.10.2"
|
||||||
|
|||||||
2
data/06.in
Normal file
2
data/06.in
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Time: 58 81 96 76
|
||||||
|
Distance: 434 1041 2219 1218
|
||||||
1000
data/07.in
Normal file
1000
data/07.in
Normal file
File diff suppressed because it is too large
Load Diff
748
data/08.in
Normal file
748
data/08.in
Normal file
@@ -0,0 +1,748 @@
|
|||||||
|
LLLRLRLRLLRRRLRRRLRRRLLLRLRLLRRLLRRLRLRLLRLRLRRLLRRRLRLLRRLRRRLRRLLLRRRLRRRLRRRLLLLRRLRRRLRLRRRLRRLLRLRLRRRLRRRLRRLRRRLLLLLLRLRRRLLLLRLRRRLRRRLRLRRLRLRLRLRLRRRLLRRLRLRRLRRLRRLLRLLLRRLRLLRRLRLRRLRRRLRRLLRLRLRLRRLLRLLRRLLLRLRLRRRLRRLLRRRLRLRLRRLLRLRLRLRRLRLRLRRLRRLLRRLRRRLRRRLLLRRRR
|
||||||
|
|
||||||
|
MQF = (DDG, LSH)
|
||||||
|
QJP = (PCT, XKJ)
|
||||||
|
JXF = (PMG, NBN)
|
||||||
|
JCK = (QCD, NRG)
|
||||||
|
LPD = (NTM, NTM)
|
||||||
|
DLN = (TXM, QRG)
|
||||||
|
MTG = (KGC, DMM)
|
||||||
|
KFV = (FXH, QLX)
|
||||||
|
SCJ = (HQH, XSD)
|
||||||
|
JKJ = (PMX, MHH)
|
||||||
|
SJK = (JXM, GRQ)
|
||||||
|
CJZ = (DPF, RMT)
|
||||||
|
QXM = (HGC, SMX)
|
||||||
|
XJS = (NRV, CCL)
|
||||||
|
QLB = (RCH, QVQ)
|
||||||
|
KDB = (QKT, BJB)
|
||||||
|
FCX = (DXG, SGQ)
|
||||||
|
PCT = (DXR, PTS)
|
||||||
|
MGJ = (FKF, HNG)
|
||||||
|
VBN = (RBK, JPL)
|
||||||
|
TRH = (SRT, VJV)
|
||||||
|
PGK = (SNP, QLP)
|
||||||
|
XVK = (KFK, QQC)
|
||||||
|
SXC = (XTB, DPQ)
|
||||||
|
HNG = (VXF, MVH)
|
||||||
|
QHT = (TTD, LBH)
|
||||||
|
LMK = (QQT, QTP)
|
||||||
|
DXR = (KCT, KQS)
|
||||||
|
FSA = (RXT, BLP)
|
||||||
|
GHK = (JMM, VBN)
|
||||||
|
DMM = (VQM, LTG)
|
||||||
|
FBQ = (FSV, GHJ)
|
||||||
|
KCN = (QVR, TDG)
|
||||||
|
KBF = (XNM, HBL)
|
||||||
|
KJP = (FKG, CJZ)
|
||||||
|
JLH = (CKG, XLV)
|
||||||
|
RJX = (KKN, RJH)
|
||||||
|
PFS = (BVC, SXR)
|
||||||
|
DHM = (HXV, FRV)
|
||||||
|
KFK = (PLL, GQC)
|
||||||
|
CNB = (KNS, HVP)
|
||||||
|
DDG = (QTS, VRJ)
|
||||||
|
QVT = (JCK, DJQ)
|
||||||
|
LRB = (TXD, MPR)
|
||||||
|
DMS = (QVD, MFS)
|
||||||
|
PMJ = (LNN, NPJ)
|
||||||
|
BXD = (MLL, QKQ)
|
||||||
|
DGF = (FMX, PKP)
|
||||||
|
RHQ = (RJH, KKN)
|
||||||
|
MRG = (TNN, LLX)
|
||||||
|
BBM = (VFP, VGF)
|
||||||
|
PLP = (BBK, KFX)
|
||||||
|
RSN = (SBN, DQF)
|
||||||
|
XTP = (HMT, XNV)
|
||||||
|
LLX = (KBF, TDV)
|
||||||
|
KHR = (QGL, NCM)
|
||||||
|
PFB = (SXR, BVC)
|
||||||
|
NKP = (JTF, BJH)
|
||||||
|
RPH = (RSN, VBM)
|
||||||
|
HBL = (LVT, JXF)
|
||||||
|
CBC = (LRB, QGN)
|
||||||
|
FXH = (GCH, KBD)
|
||||||
|
QTF = (KVL, DLS)
|
||||||
|
RPQ = (FJB, RMD)
|
||||||
|
SLD = (MSH, NSN)
|
||||||
|
PXF = (QXM, HDF)
|
||||||
|
QBJ = (RDQ, DJH)
|
||||||
|
QPH = (RKJ, CSC)
|
||||||
|
TVF = (JMC, MTV)
|
||||||
|
MJM = (DLM, BQS)
|
||||||
|
XQV = (LCD, QCL)
|
||||||
|
KQH = (SJK, BPR)
|
||||||
|
CSC = (BLD, PDP)
|
||||||
|
BLP = (XVK, LJB)
|
||||||
|
BBK = (DJT, LLJ)
|
||||||
|
PSH = (GQH, RBQ)
|
||||||
|
RMD = (XQV, KFT)
|
||||||
|
TJJ = (QLV, HPG)
|
||||||
|
STS = (BSB, TMP)
|
||||||
|
FPN = (TCK, GLD)
|
||||||
|
JPF = (VCS, CMQ)
|
||||||
|
NVX = (TLD, GMD)
|
||||||
|
XLV = (LKV, QNK)
|
||||||
|
GSF = (CKS, BVB)
|
||||||
|
QHR = (KTV, KPG)
|
||||||
|
JRX = (FPN, DTC)
|
||||||
|
KGC = (VQM, LTG)
|
||||||
|
SSK = (NHP, NHP)
|
||||||
|
GLN = (RMX, NGG)
|
||||||
|
NPJ = (QRV, KTB)
|
||||||
|
PCP = (XSF, BPL)
|
||||||
|
JTF = (LSL, BHB)
|
||||||
|
TDV = (HBL, XNM)
|
||||||
|
FKV = (JVF, HKK)
|
||||||
|
GSG = (QJP, CLF)
|
||||||
|
QNK = (XNQ, CGQ)
|
||||||
|
RQT = (QVQ, RCH)
|
||||||
|
XNT = (RKM, XRV)
|
||||||
|
JMM = (RBK, JPL)
|
||||||
|
LSL = (NGH, KCN)
|
||||||
|
QLQ = (TLV, KDN)
|
||||||
|
KXR = (KRH, KRH)
|
||||||
|
QLV = (GSR, BQV)
|
||||||
|
PMG = (LPH, XFB)
|
||||||
|
VNF = (LVQ, HHG)
|
||||||
|
CSS = (RKK, RQN)
|
||||||
|
HGR = (PVX, LFX)
|
||||||
|
QGN = (MPR, TXD)
|
||||||
|
XNQ = (GTJ, LXQ)
|
||||||
|
QQC = (GQC, PLL)
|
||||||
|
CKR = (KQH, HQD)
|
||||||
|
TLD = (JLJ, VFL)
|
||||||
|
XSD = (TTQ, LDQ)
|
||||||
|
FXF = (BXS, LMQ)
|
||||||
|
ZZZ = (QBJ, MJJ)
|
||||||
|
HPG = (GSR, BQV)
|
||||||
|
LJC = (RNF, FNK)
|
||||||
|
CCL = (DXF, HRM)
|
||||||
|
FQR = (QBF, CLH)
|
||||||
|
GHJ = (MPS, NRB)
|
||||||
|
LLJ = (NVX, BTR)
|
||||||
|
MCQ = (RTG, CTK)
|
||||||
|
PLL = (DJD, FTV)
|
||||||
|
BLD = (XGL, NDH)
|
||||||
|
MLL = (NHV, PPJ)
|
||||||
|
KDN = (LLS, DLN)
|
||||||
|
KKN = (DCC, CCH)
|
||||||
|
FHB = (TCJ, VLF)
|
||||||
|
HCC = (RDN, TRJ)
|
||||||
|
TGV = (TKF, CFG)
|
||||||
|
TKB = (SVJ, KHH)
|
||||||
|
QDN = (RXG, PFF)
|
||||||
|
GQN = (RKT, NKK)
|
||||||
|
FLV = (TLV, KDN)
|
||||||
|
KTV = (LKK, VGH)
|
||||||
|
XHQ = (JLX, SNS)
|
||||||
|
MHN = (DHV, KMD)
|
||||||
|
DLD = (SSQ, LDK)
|
||||||
|
DKD = (CKR, JPC)
|
||||||
|
SRD = (KPP, LFS)
|
||||||
|
LVT = (PMG, NBN)
|
||||||
|
KPP = (FLQ, XTX)
|
||||||
|
BQV = (GLN, NQG)
|
||||||
|
BSB = (KHR, FGL)
|
||||||
|
HGC = (DBX, QTF)
|
||||||
|
DSF = (RBQ, GQH)
|
||||||
|
GRQ = (MVQ, RVP)
|
||||||
|
JGT = (SFN, GQT)
|
||||||
|
HDF = (SMX, HGC)
|
||||||
|
QBF = (VKF, XHQ)
|
||||||
|
QKM = (JTV, LPP)
|
||||||
|
LJB = (QQC, KFK)
|
||||||
|
NTH = (QQV, MHS)
|
||||||
|
QTX = (FMX, PKP)
|
||||||
|
HCQ = (FFT, CBC)
|
||||||
|
XKJ = (DXR, PTS)
|
||||||
|
BHH = (KPP, LFS)
|
||||||
|
GRH = (QLQ, FLV)
|
||||||
|
FNX = (MJX, PFZ)
|
||||||
|
HQN = (CKS, BVB)
|
||||||
|
SJV = (CGF, VKD)
|
||||||
|
RDL = (QJV, MLX)
|
||||||
|
MFR = (DMF, CFD)
|
||||||
|
LPF = (SRD, BHH)
|
||||||
|
HCP = (MPV, NVL)
|
||||||
|
KNS = (VCD, LJL)
|
||||||
|
CDX = (LLX, TNN)
|
||||||
|
SGS = (KMC, RQK)
|
||||||
|
HQS = (NKP, FRN)
|
||||||
|
QVD = (VML, QHT)
|
||||||
|
NRG = (LDS, SCH)
|
||||||
|
BVB = (HCP, NVM)
|
||||||
|
RBK = (QLB, RQT)
|
||||||
|
MPV = (CGR, TSC)
|
||||||
|
VFP = (JXP, QCM)
|
||||||
|
QFS = (DFQ, FHB)
|
||||||
|
FTK = (LSH, DDG)
|
||||||
|
TJH = (KPL, KTR)
|
||||||
|
HQF = (MQF, FTK)
|
||||||
|
FGX = (HVP, KNS)
|
||||||
|
DDK = (NTM, JNC)
|
||||||
|
BJC = (SQK, RGB)
|
||||||
|
HVP = (VCD, LJL)
|
||||||
|
LTG = (RMV, CJC)
|
||||||
|
BNR = (CSS, RBN)
|
||||||
|
GQT = (LCN, DTK)
|
||||||
|
XSF = (BGT, FCN)
|
||||||
|
SSQ = (KTL, JMR)
|
||||||
|
RNH = (BXH, BXH)
|
||||||
|
FTV = (CMM, PBL)
|
||||||
|
QRK = (TSF, QFS)
|
||||||
|
CLR = (NFS, PGK)
|
||||||
|
SRJ = (PFV, SHX)
|
||||||
|
FQT = (QKT, BJB)
|
||||||
|
FRN = (BJH, JTF)
|
||||||
|
RCN = (NRV, CCL)
|
||||||
|
QTM = (CKR, JPC)
|
||||||
|
JHT = (HRC, NVR)
|
||||||
|
KVB = (KRH, KKT)
|
||||||
|
HJG = (GHN, GHN)
|
||||||
|
RNF = (QFF, CKV)
|
||||||
|
PTT = (VNT, FNX)
|
||||||
|
GRB = (SVJ, KHH)
|
||||||
|
TRJ = (PVJ, QKP)
|
||||||
|
MHS = (FCV, JXD)
|
||||||
|
VBM = (SBN, DQF)
|
||||||
|
DLM = (VNH, SCJ)
|
||||||
|
PPJ = (DMH, PHJ)
|
||||||
|
QJN = (LSX, KBN)
|
||||||
|
HXV = (SMH, BJP)
|
||||||
|
GVL = (VMV, DKF)
|
||||||
|
QCG = (FKV, NVD)
|
||||||
|
FNM = (XRV, RKM)
|
||||||
|
JQJ = (NVT, HGR)
|
||||||
|
KVX = (GRG, PMJ)
|
||||||
|
JLV = (SMG, RPH)
|
||||||
|
TXD = (MFN, HQG)
|
||||||
|
TLJ = (FHD, MHN)
|
||||||
|
RPV = (GKH, BPT)
|
||||||
|
CPR = (JLH, PLC)
|
||||||
|
FLQ = (TPR, LGG)
|
||||||
|
BTF = (HGR, NVT)
|
||||||
|
GCH = (QPT, FDV)
|
||||||
|
JCF = (GHM, NKS)
|
||||||
|
CLF = (PCT, XKJ)
|
||||||
|
RMT = (QKM, XCP)
|
||||||
|
KPL = (DJB, VLV)
|
||||||
|
RMV = (NMS, HCC)
|
||||||
|
XRV = (VPH, PHH)
|
||||||
|
HBB = (XKH, FBQ)
|
||||||
|
PXB = (QBF, CLH)
|
||||||
|
HMR = (PCP, LMJ)
|
||||||
|
KCT = (PFS, PFB)
|
||||||
|
DCC = (MBP, BJC)
|
||||||
|
VFV = (VBD, HQS)
|
||||||
|
DJB = (BQX, SLD)
|
||||||
|
MFS = (VML, QHT)
|
||||||
|
RPC = (PHR, JFD)
|
||||||
|
RDS = (LFC, RNK)
|
||||||
|
KMC = (RPR, NRL)
|
||||||
|
CJD = (VJN, GKK)
|
||||||
|
VST = (VCS, CMQ)
|
||||||
|
VMC = (RPC, MCV)
|
||||||
|
VJV = (XTP, DRK)
|
||||||
|
BXH = (RXT, BLP)
|
||||||
|
PNQ = (DSF, PSH)
|
||||||
|
RJJ = (FXH, QLX)
|
||||||
|
NKS = (QDQ, DPP)
|
||||||
|
QDQ = (SJV, MRP)
|
||||||
|
HQQ = (CJD, DVT)
|
||||||
|
LKV = (CGQ, XNQ)
|
||||||
|
KTL = (HFF, FPS)
|
||||||
|
MBP = (RGB, SQK)
|
||||||
|
MQQ = (HCQ, MDL)
|
||||||
|
BQS = (SCJ, VNH)
|
||||||
|
NRT = (FJD, HTS)
|
||||||
|
HHG = (RTC, RPQ)
|
||||||
|
VNH = (XSD, HQH)
|
||||||
|
QTS = (QTG, MHD)
|
||||||
|
DJQ = (NRG, QCD)
|
||||||
|
MDX = (BPT, GKH)
|
||||||
|
QJV = (QQP, VLJ)
|
||||||
|
HBD = (HBB, CKC)
|
||||||
|
GBF = (HJG, FPV)
|
||||||
|
VDC = (JFJ, VNF)
|
||||||
|
MPH = (PFV, SHX)
|
||||||
|
TPR = (BXD, FVX)
|
||||||
|
KFX = (DJT, LLJ)
|
||||||
|
LSX = (VKN, STS)
|
||||||
|
HJL = (KFX, BBK)
|
||||||
|
QLT = (KGC, DMM)
|
||||||
|
QFF = (BJM, QCG)
|
||||||
|
DVM = (GCD, FSC)
|
||||||
|
MHD = (JCF, JPJ)
|
||||||
|
DPQ = (JJX, GNL)
|
||||||
|
NMS = (TRJ, RDN)
|
||||||
|
VLJ = (XJB, HSJ)
|
||||||
|
JSP = (MHN, FHD)
|
||||||
|
BTR = (GMD, TLD)
|
||||||
|
TTD = (SPC, DFJ)
|
||||||
|
QKT = (XPV, BVJ)
|
||||||
|
MKK = (HCQ, MDL)
|
||||||
|
LFC = (LSS, GQN)
|
||||||
|
QGL = (RPG, HGJ)
|
||||||
|
JDT = (FPN, DTC)
|
||||||
|
NCM = (RPG, HGJ)
|
||||||
|
LCN = (QLT, MTG)
|
||||||
|
VGS = (VJV, SRT)
|
||||||
|
CGF = (FXF, STT)
|
||||||
|
KQS = (PFB, PFS)
|
||||||
|
PFF = (DLD, MRJ)
|
||||||
|
LSH = (QTS, VRJ)
|
||||||
|
FGF = (MPH, SRJ)
|
||||||
|
BJG = (TVF, BDN)
|
||||||
|
HQR = (CXG, CPR)
|
||||||
|
JVF = (RGM, NCG)
|
||||||
|
SNP = (BLN, DFD)
|
||||||
|
DQH = (GSC, CFT)
|
||||||
|
JVA = (RMT, DPF)
|
||||||
|
VPH = (CRN, CHT)
|
||||||
|
DFQ = (VLF, TCJ)
|
||||||
|
DFD = (HQR, QDF)
|
||||||
|
NJH = (RXG, PFF)
|
||||||
|
DTK = (QLT, MTG)
|
||||||
|
MJJ = (DJH, RDQ)
|
||||||
|
GGB = (CFT, GSC)
|
||||||
|
SMH = (RHQ, RJX)
|
||||||
|
NFS = (SNP, QLP)
|
||||||
|
LNV = (XLR, KQF)
|
||||||
|
LCD = (FNM, XNT)
|
||||||
|
GQH = (JDT, JRX)
|
||||||
|
JPJ = (GHM, NKS)
|
||||||
|
GMD = (VFL, JLJ)
|
||||||
|
HTS = (KXR, KVB)
|
||||||
|
KFT = (LCD, QCL)
|
||||||
|
SGH = (NVR, HRC)
|
||||||
|
QKP = (MQD, MLM)
|
||||||
|
HFF = (MGM, KSX)
|
||||||
|
HJM = (KBN, LSX)
|
||||||
|
MJX = (VHC, PXF)
|
||||||
|
TSF = (FHB, DFQ)
|
||||||
|
MSH = (GFM, JHC)
|
||||||
|
VBG = (HJM, QJN)
|
||||||
|
CKS = (HCP, NVM)
|
||||||
|
DQF = (LJC, KXM)
|
||||||
|
FVP = (FJD, HTS)
|
||||||
|
DPP = (SJV, MRP)
|
||||||
|
FKM = (CSS, RBN)
|
||||||
|
VCD = (FCH, GBX)
|
||||||
|
DJV = (VMC, HVC)
|
||||||
|
RKM = (VPH, PHH)
|
||||||
|
TMP = (KHR, FGL)
|
||||||
|
BVC = (TLJ, JSP)
|
||||||
|
SRV = (HQS, VBD)
|
||||||
|
FCN = (DHM, VDX)
|
||||||
|
DJH = (FBG, MCQ)
|
||||||
|
NGG = (RPL, DFV)
|
||||||
|
SRT = (XTP, DRK)
|
||||||
|
RMN = (QTD, JGS)
|
||||||
|
MLH = (MQJ, VDR)
|
||||||
|
KVL = (VFV, SRV)
|
||||||
|
VDX = (FRV, HXV)
|
||||||
|
RXT = (LJB, XVK)
|
||||||
|
LSS = (RKT, NKK)
|
||||||
|
LNN = (KTB, QRV)
|
||||||
|
BCC = (CHL, QXP)
|
||||||
|
GHN = (XBS, XBS)
|
||||||
|
FCK = (FKM, BNR)
|
||||||
|
QLP = (BLN, DFD)
|
||||||
|
BDN = (JMC, MTV)
|
||||||
|
MLX = (VLJ, QQP)
|
||||||
|
RDH = (VNT, VNT)
|
||||||
|
DFV = (JKJ, KDX)
|
||||||
|
DXG = (JLV, MVL)
|
||||||
|
TCF = (DSF, PSH)
|
||||||
|
JJX = (MKM, TJJ)
|
||||||
|
VFL = (GGB, DQH)
|
||||||
|
VLV = (SLD, BQX)
|
||||||
|
RBQ = (JDT, JRX)
|
||||||
|
JXP = (QXB, QVT)
|
||||||
|
PFV = (STX, XHF)
|
||||||
|
BLN = (QDF, HQR)
|
||||||
|
FVX = (QKQ, MLL)
|
||||||
|
QTP = (DJV, GMN)
|
||||||
|
JLP = (NJF, MFR)
|
||||||
|
CXG = (PLC, JLH)
|
||||||
|
VKF = (JLX, SNS)
|
||||||
|
QQT = (GMN, DJV)
|
||||||
|
KDX = (MHH, PMX)
|
||||||
|
FJD = (KXR, KXR)
|
||||||
|
XJB = (PHB, JTH)
|
||||||
|
VMV = (RCN, XJS)
|
||||||
|
MKM = (HPG, QLV)
|
||||||
|
SQK = (GBF, JCS)
|
||||||
|
PMT = (SGQ, DXG)
|
||||||
|
LXQ = (GRB, TKB)
|
||||||
|
RKK = (SSK, SSK)
|
||||||
|
QXA = (VHC, PXF)
|
||||||
|
QDP = (QTD, JGS)
|
||||||
|
VQC = (KQF, XLR)
|
||||||
|
QKQ = (PPJ, NHV)
|
||||||
|
TXM = (JLP, JCJ)
|
||||||
|
SPC = (LRR, SXC)
|
||||||
|
BHG = (KFL, BCC)
|
||||||
|
QBK = (VNF, JFJ)
|
||||||
|
BPB = (LBJ, JGT)
|
||||||
|
RNK = (LSS, GQN)
|
||||||
|
BJP = (RHQ, RJX)
|
||||||
|
VNT = (MJX, MJX)
|
||||||
|
QLX = (GCH, KBD)
|
||||||
|
DXF = (RNH, RNH)
|
||||||
|
DLS = (VFV, SRV)
|
||||||
|
SXR = (TLJ, JSP)
|
||||||
|
SGQ = (JLV, MVL)
|
||||||
|
NRL = (XPP, XGM)
|
||||||
|
JFD = (LVD, LTQ)
|
||||||
|
XNM = (JXF, LVT)
|
||||||
|
PHH = (CHT, CRN)
|
||||||
|
QTD = (CTJ, LPF)
|
||||||
|
FCV = (GTC, CKJ)
|
||||||
|
QRG = (JLP, JCJ)
|
||||||
|
DKS = (KPL, KTR)
|
||||||
|
TTQ = (BFV, LVR)
|
||||||
|
RPR = (XGM, XPP)
|
||||||
|
DVS = (FTH, FFG)
|
||||||
|
RRH = (NJH, QDN)
|
||||||
|
KTR = (DJB, VLV)
|
||||||
|
KQM = (BJV, MND)
|
||||||
|
GKS = (BXH, QCZ)
|
||||||
|
FSV = (MPS, NRB)
|
||||||
|
QXB = (DJQ, JCK)
|
||||||
|
FHX = (QFS, TSF)
|
||||||
|
FGL = (QGL, NCM)
|
||||||
|
BHB = (KCN, NGH)
|
||||||
|
KNA = (KTV, KPG)
|
||||||
|
NBN = (LPH, XFB)
|
||||||
|
NVM = (NVL, MPV)
|
||||||
|
LVR = (CNB, FGX)
|
||||||
|
QCL = (FNM, XNT)
|
||||||
|
XRR = (MTB, HMR)
|
||||||
|
LLS = (TXM, QRG)
|
||||||
|
AAA = (MJJ, QBJ)
|
||||||
|
RPL = (JKJ, KDX)
|
||||||
|
QCM = (QVT, QXB)
|
||||||
|
QVF = (BQS, DLM)
|
||||||
|
LMQ = (LMK, BVF)
|
||||||
|
BLS = (CQK, GTG)
|
||||||
|
JMC = (PLP, HJL)
|
||||||
|
KXM = (RNF, FNK)
|
||||||
|
NDH = (FHJ, GML)
|
||||||
|
SNS = (VJK, FMJ)
|
||||||
|
KFL = (QXP, CHL)
|
||||||
|
FSD = (XNH, MJF)
|
||||||
|
DTC = (GLD, TCK)
|
||||||
|
MRP = (CGF, VKD)
|
||||||
|
JHX = (CJD, DVT)
|
||||||
|
KPG = (LKK, VGH)
|
||||||
|
DJT = (NVX, BTR)
|
||||||
|
MQD = (FQT, KDB)
|
||||||
|
CKJ = (BLS, CGP)
|
||||||
|
JXD = (GTC, CKJ)
|
||||||
|
NVL = (CGR, TSC)
|
||||||
|
PKV = (DBR, PGB)
|
||||||
|
JPL = (QLB, RQT)
|
||||||
|
TSC = (FMS, KRS)
|
||||||
|
XGL = (GML, FHJ)
|
||||||
|
DJD = (PBL, CMM)
|
||||||
|
FSC = (BFG, NTH)
|
||||||
|
DMH = (PBN, HND)
|
||||||
|
KRS = (FQR, PXB)
|
||||||
|
LLM = (GMX, VLX)
|
||||||
|
FJB = (XQV, KFT)
|
||||||
|
KRH = (QHR, QHR)
|
||||||
|
RDQ = (MCQ, FBG)
|
||||||
|
GLD = (VST, JPF)
|
||||||
|
RVP = (HBD, RBC)
|
||||||
|
DHV = (RJJ, KFV)
|
||||||
|
FMX = (RFL, GSG)
|
||||||
|
SMX = (DBX, QTF)
|
||||||
|
LPP = (FSD, PHM)
|
||||||
|
TDG = (MKK, MQQ)
|
||||||
|
HPL = (BDN, TVF)
|
||||||
|
MGM = (RDH, RDH)
|
||||||
|
FHJ = (XFJ, GVL)
|
||||||
|
TQB = (VFP, VGF)
|
||||||
|
JLJ = (DQH, GGB)
|
||||||
|
FMS = (FQR, PXB)
|
||||||
|
HQD = (BPR, SJK)
|
||||||
|
VXR = (XQX, VBG)
|
||||||
|
GML = (XFJ, GVL)
|
||||||
|
GCS = (RKJ, CSC)
|
||||||
|
CTJ = (SRD, BHH)
|
||||||
|
CLH = (XHQ, VKF)
|
||||||
|
HND = (RDL, PXS)
|
||||||
|
QPT = (RRH, CKQ)
|
||||||
|
NVD = (HKK, JVF)
|
||||||
|
XGM = (VFK, MLH)
|
||||||
|
GMN = (HVC, VMC)
|
||||||
|
QDF = (CXG, CPR)
|
||||||
|
TCK = (JPF, VST)
|
||||||
|
BJH = (LSL, BHB)
|
||||||
|
JNC = (BPB, SLZ)
|
||||||
|
GSC = (QVF, MJM)
|
||||||
|
XHG = (SRJ, MPH)
|
||||||
|
CGQ = (GTJ, LXQ)
|
||||||
|
CHL = (TGV, HPX)
|
||||||
|
MRJ = (LDK, SSQ)
|
||||||
|
GKH = (VQC, LNV)
|
||||||
|
MLM = (FQT, KDB)
|
||||||
|
BPT = (LNV, VQC)
|
||||||
|
BXT = (TKD, ZZZ)
|
||||||
|
PMP = (NHP, KJP)
|
||||||
|
PLC = (XLV, CKG)
|
||||||
|
FXA = (LBJ, JGT)
|
||||||
|
PKP = (RFL, GSG)
|
||||||
|
BQX = (MSH, NSN)
|
||||||
|
LBJ = (SFN, GQT)
|
||||||
|
KMD = (KFV, RJJ)
|
||||||
|
PVJ = (MQD, MLM)
|
||||||
|
LDQ = (LVR, BFV)
|
||||||
|
SLS = (PGB, DBR)
|
||||||
|
VTP = (HQQ, JHX)
|
||||||
|
MPS = (QTX, DGF)
|
||||||
|
VRJ = (QTG, MHD)
|
||||||
|
HBH = (HNG, FKF)
|
||||||
|
RTC = (RMD, FJB)
|
||||||
|
PHB = (LPD, LPD)
|
||||||
|
CMM = (DMS, KFB)
|
||||||
|
QVR = (MKK, MQQ)
|
||||||
|
XFJ = (DKF, VMV)
|
||||||
|
TLV = (DLN, LLS)
|
||||||
|
QRV = (SCL, BSJ)
|
||||||
|
MFN = (GHK, RRL)
|
||||||
|
NVT = (LFX, PVX)
|
||||||
|
FVL = (HMR, MTB)
|
||||||
|
VCS = (TQB, BBM)
|
||||||
|
XHF = (QBK, VDC)
|
||||||
|
JTV = (FSD, PHM)
|
||||||
|
VML = (TTD, LBH)
|
||||||
|
SCL = (DKS, TJH)
|
||||||
|
VHC = (QXM, HDF)
|
||||||
|
LPV = (GMX, VLX)
|
||||||
|
CFG = (BTF, JQJ)
|
||||||
|
MCV = (PHR, JFD)
|
||||||
|
LDS = (FGF, XHG)
|
||||||
|
VGF = (QCM, JXP)
|
||||||
|
BVF = (QQT, QTP)
|
||||||
|
VKN = (TMP, BSB)
|
||||||
|
VJK = (KQM, DHQ)
|
||||||
|
CTK = (GSF, HQN)
|
||||||
|
PHM = (MJF, XNH)
|
||||||
|
PVX = (MHK, SXL)
|
||||||
|
JPC = (KQH, HQD)
|
||||||
|
JGS = (CTJ, LPF)
|
||||||
|
XNV = (CLR, BLB)
|
||||||
|
PTS = (KCT, KQS)
|
||||||
|
BXS = (BVF, LMK)
|
||||||
|
BJB = (XPV, BVJ)
|
||||||
|
MHK = (VTP, KKX)
|
||||||
|
CJC = (NMS, HCC)
|
||||||
|
RKT = (PMT, FCX)
|
||||||
|
BFG = (QQV, MHS)
|
||||||
|
LPH = (HDD, DVM)
|
||||||
|
GSR = (GLN, NQG)
|
||||||
|
MHH = (VGS, TRH)
|
||||||
|
HMT = (BLB, CLR)
|
||||||
|
JCJ = (NJF, MFR)
|
||||||
|
MDK = (RPV, MDX)
|
||||||
|
LRR = (DPQ, XTB)
|
||||||
|
RKJ = (PDP, BLD)
|
||||||
|
MJF = (RXX, SGS)
|
||||||
|
NCG = (NRT, FVP)
|
||||||
|
QQV = (JXD, FCV)
|
||||||
|
MJQ = (BCC, KFL)
|
||||||
|
TKD = (MJJ, QBJ)
|
||||||
|
MND = (MDK, KBG)
|
||||||
|
RXG = (MRJ, DLD)
|
||||||
|
BGT = (DHM, VDX)
|
||||||
|
XCP = (LPP, JTV)
|
||||||
|
TRS = (QPH, GCS)
|
||||||
|
FPS = (MGM, KSX)
|
||||||
|
MVL = (SMG, RPH)
|
||||||
|
BJM = (NVD, FKV)
|
||||||
|
BSJ = (TJH, DKS)
|
||||||
|
MTV = (PLP, HJL)
|
||||||
|
GQC = (FTV, DJD)
|
||||||
|
CQL = (FTK, MQF)
|
||||||
|
VQM = (RMV, CJC)
|
||||||
|
SLZ = (JGT, LBJ)
|
||||||
|
HVC = (MCV, RPC)
|
||||||
|
LFX = (MHK, SXL)
|
||||||
|
BJQ = (LFC, RNK)
|
||||||
|
BFV = (FGX, CNB)
|
||||||
|
DRK = (HMT, XNV)
|
||||||
|
VBD = (NKP, FRN)
|
||||||
|
KBN = (STS, VKN)
|
||||||
|
XQX = (HJM, QJN)
|
||||||
|
MPR = (HQG, MFN)
|
||||||
|
KFB = (MFS, QVD)
|
||||||
|
GHM = (QDQ, DPP)
|
||||||
|
KBD = (QPT, FDV)
|
||||||
|
MVH = (FVL, XRR)
|
||||||
|
PGB = (RVG, TRS)
|
||||||
|
RGM = (NRT, FVP)
|
||||||
|
KKT = (QHR, GNZ)
|
||||||
|
TCJ = (RDS, BJQ)
|
||||||
|
MVQ = (HBD, RBC)
|
||||||
|
CKC = (XKH, FBQ)
|
||||||
|
SHX = (XHF, STX)
|
||||||
|
NVR = (RFF, GRH)
|
||||||
|
DKF = (RCN, XJS)
|
||||||
|
KTB = (BSJ, SCL)
|
||||||
|
HSJ = (PHB, JTH)
|
||||||
|
RJH = (DCC, CCH)
|
||||||
|
FNK = (QFF, CKV)
|
||||||
|
XNH = (SGS, RXX)
|
||||||
|
NRV = (DXF, DXF)
|
||||||
|
HRM = (RNH, GKS)
|
||||||
|
LJL = (GBX, FCH)
|
||||||
|
RDN = (PVJ, QKP)
|
||||||
|
JXM = (MVQ, RVP)
|
||||||
|
XLR = (HBH, MGJ)
|
||||||
|
QXP = (HPX, TGV)
|
||||||
|
HQH = (TTQ, LDQ)
|
||||||
|
HGJ = (FCK, HGS)
|
||||||
|
JTH = (LPD, DDK)
|
||||||
|
NKK = (FCX, PMT)
|
||||||
|
DHQ = (MND, BJV)
|
||||||
|
RFF = (FLV, QLQ)
|
||||||
|
RGB = (GBF, JCS)
|
||||||
|
RMX = (DFV, RPL)
|
||||||
|
VXF = (XRR, FVL)
|
||||||
|
SMG = (RSN, VBM)
|
||||||
|
KBG = (RPV, MDX)
|
||||||
|
QCZ = (BLP, RXT)
|
||||||
|
CQK = (BJG, HPL)
|
||||||
|
FDV = (RRH, CKQ)
|
||||||
|
CKQ = (QDN, NJH)
|
||||||
|
RRL = (JMM, VBN)
|
||||||
|
RVG = (QPH, GCS)
|
||||||
|
FTT = (GRG, PMJ)
|
||||||
|
FHD = (KMD, DHV)
|
||||||
|
GFM = (MRG, CDX)
|
||||||
|
FFG = (QRK, FHX)
|
||||||
|
RTG = (GSF, HQN)
|
||||||
|
PXS = (MLX, QJV)
|
||||||
|
MQJ = (JHT, SGH)
|
||||||
|
KSX = (RDH, PTT)
|
||||||
|
VXP = (VBG, XQX)
|
||||||
|
PMX = (TRH, VGS)
|
||||||
|
BPR = (GRQ, JXM)
|
||||||
|
VKD = (STT, FXF)
|
||||||
|
SXL = (KKX, VTP)
|
||||||
|
HDD = (GCD, FSC)
|
||||||
|
GTJ = (GRB, TKB)
|
||||||
|
CHT = (VXP, VXR)
|
||||||
|
RBC = (CKC, HBB)
|
||||||
|
XBS = (TKD, TKD)
|
||||||
|
KHH = (CQL, HQF)
|
||||||
|
XTX = (TPR, LGG)
|
||||||
|
LKK = (LLM, LPV)
|
||||||
|
VFK = (VDR, MQJ)
|
||||||
|
JLX = (VJK, FMJ)
|
||||||
|
FRV = (SMH, BJP)
|
||||||
|
GTC = (CGP, BLS)
|
||||||
|
PHR = (LTQ, LVD)
|
||||||
|
GCD = (BFG, NTH)
|
||||||
|
SBN = (KXM, LJC)
|
||||||
|
STX = (QBK, VDC)
|
||||||
|
FBG = (RTG, CTK)
|
||||||
|
CKV = (BJM, QCG)
|
||||||
|
DPF = (XCP, QKM)
|
||||||
|
FKF = (MVH, VXF)
|
||||||
|
BLB = (PGK, NFS)
|
||||||
|
XPV = (MJQ, BHG)
|
||||||
|
GMX = (FTT, KVX)
|
||||||
|
LBH = (DFJ, SPC)
|
||||||
|
JHC = (CDX, MRG)
|
||||||
|
GNL = (TJJ, MKM)
|
||||||
|
DSM = (FTH, FFG)
|
||||||
|
FFT = (QGN, LRB)
|
||||||
|
GRG = (NPJ, LNN)
|
||||||
|
JFJ = (HHG, LVQ)
|
||||||
|
CGR = (FMS, KRS)
|
||||||
|
LFS = (XTX, FLQ)
|
||||||
|
DMF = (TCF, PNQ)
|
||||||
|
LVQ = (RTC, RPQ)
|
||||||
|
DFJ = (SXC, LRR)
|
||||||
|
VLF = (RDS, BJQ)
|
||||||
|
LMJ = (BPL, XSF)
|
||||||
|
BVJ = (BHG, MJQ)
|
||||||
|
NRB = (QTX, DGF)
|
||||||
|
GKK = (RMN, QDP)
|
||||||
|
CFD = (PNQ, TCF)
|
||||||
|
GBX = (DSM, DVS)
|
||||||
|
NTM = (BPB, BPB)
|
||||||
|
XKH = (GHJ, FSV)
|
||||||
|
LGG = (BXD, FVX)
|
||||||
|
DBR = (RVG, TRS)
|
||||||
|
GTG = (BJG, HPL)
|
||||||
|
HKK = (NCG, RGM)
|
||||||
|
CKG = (LKV, QNK)
|
||||||
|
FKG = (RMT, DPF)
|
||||||
|
QVQ = (DKD, QTM)
|
||||||
|
LDK = (KTL, JMR)
|
||||||
|
PHJ = (PBN, HND)
|
||||||
|
PFZ = (PXF, VHC)
|
||||||
|
VLX = (KVX, FTT)
|
||||||
|
KQF = (HBH, MGJ)
|
||||||
|
RQN = (SSK, PMP)
|
||||||
|
CMQ = (TQB, BBM)
|
||||||
|
NHP = (FKG, FKG)
|
||||||
|
DVT = (GKK, VJN)
|
||||||
|
RPG = (FCK, HGS)
|
||||||
|
RBN = (RKK, RQN)
|
||||||
|
PBN = (RDL, PXS)
|
||||||
|
RCH = (QTM, DKD)
|
||||||
|
CRN = (VXP, VXR)
|
||||||
|
TNN = (KBF, TDV)
|
||||||
|
RFL = (QJP, CLF)
|
||||||
|
NJF = (DMF, CFD)
|
||||||
|
NQG = (RMX, NGG)
|
||||||
|
VDR = (JHT, SGH)
|
||||||
|
FPV = (GHN, BRB)
|
||||||
|
PBL = (DMS, KFB)
|
||||||
|
XTB = (JJX, GNL)
|
||||||
|
HGS = (FKM, BNR)
|
||||||
|
CCH = (BJC, MBP)
|
||||||
|
STT = (LMQ, BXS)
|
||||||
|
LTQ = (SLS, PKV)
|
||||||
|
SFN = (LCN, DTK)
|
||||||
|
NGH = (QVR, TDG)
|
||||||
|
RQK = (RPR, NRL)
|
||||||
|
PDP = (NDH, XGL)
|
||||||
|
FCH = (DSM, DVS)
|
||||||
|
QCD = (SCH, LDS)
|
||||||
|
TKF = (BTF, JQJ)
|
||||||
|
BPL = (BGT, FCN)
|
||||||
|
SVJ = (CQL, HQF)
|
||||||
|
QTG = (JPJ, JCF)
|
||||||
|
NSN = (GFM, JHC)
|
||||||
|
JCS = (HJG, FPV)
|
||||||
|
HRC = (GRH, RFF)
|
||||||
|
VGH = (LLM, LPV)
|
||||||
|
BRB = (XBS, BXT)
|
||||||
|
JMR = (HFF, FPS)
|
||||||
|
VJN = (RMN, QDP)
|
||||||
|
HPX = (TKF, CFG)
|
||||||
|
CFT = (QVF, MJM)
|
||||||
|
DBX = (KVL, DLS)
|
||||||
|
NHV = (PHJ, DMH)
|
||||||
|
FTH = (QRK, FHX)
|
||||||
|
XFB = (DVM, HDD)
|
||||||
|
XPP = (MLH, VFK)
|
||||||
|
CGP = (CQK, GTG)
|
||||||
|
MDL = (FFT, CBC)
|
||||||
|
GNZ = (KPG, KTV)
|
||||||
|
BJV = (KBG, MDK)
|
||||||
|
SCH = (FGF, XHG)
|
||||||
|
RXX = (KMC, RQK)
|
||||||
|
HQG = (GHK, RRL)
|
||||||
|
KKX = (JHX, HQQ)
|
||||||
|
LVD = (SLS, PKV)
|
||||||
|
QQP = (XJB, HSJ)
|
||||||
|
MTB = (LMJ, PCP)
|
||||||
|
FMJ = (KQM, DHQ)
|
||||||
200
data/09.in
Normal file
200
data/09.in
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
10 37 82 150 246 389 638 1129 2122 4057 7618 13804 24006 40089 64478 100247 151210 222013 318226 446434 614326
|
||||||
|
4 11 32 93 230 496 975 1798 3150 5243 8219 11979 16093 20384 27760 52853 143831 431834 1235397 3270284 8055403
|
||||||
|
26 49 90 163 288 500 869 1531 2730 4871 8584 14799 24832 40482 64139 98903 148714 218493 314294 443467 614832
|
||||||
|
-4 4 20 51 110 210 353 506 565 334 -395 -1456 -1197 6132 35806 122961 341002 832656 1860042 3882361 7672508
|
||||||
|
-3 -11 -26 -51 -85 -123 -145 -71 358 1848 6104 16888 41913 96030 206362 420524 820437 1547812 2855682 5217834 9561853
|
||||||
|
24 46 85 148 242 385 636 1166 2420 5460 12633 28796 63504 134925 276946 552208 1075976 2059234 3884733 7237580 13323150
|
||||||
|
21 39 83 178 359 678 1219 2121 3609 6033 9915 16004 25339 39320 59787 89107 130269 186987 263811 366246 500879
|
||||||
|
10 25 44 76 151 341 784 1707 3444 6445 11272 18578 29065 43417 62204 85753 113982 146193 180820 215128 244859
|
||||||
|
-7 -12 -17 -19 -1 80 320 924 2313 5335 11696 24823 51490 104671 208280 404983 769974 1438716 2670276 5000869 9616078
|
||||||
|
11 6 11 42 130 347 846 1920 4090 8237 15798 29051 51519 88528 147959 241239 384621 600808 920981 1387296 2055920
|
||||||
|
1 9 28 54 83 111 131 124 37 -251 -937 -2140 -3223 -734 16937 82214 276484 789748 2042200 4924402 11260416
|
||||||
|
21 38 63 97 143 206 306 516 1037 2322 5261 11439 23479 45482 83576 146586 246837 401102 631707 967805 1446831
|
||||||
|
5 16 33 66 130 257 523 1090 2263 4562 8809 16230 28572 48235 78419 123286 188137 279604 405857 576826 804438
|
||||||
|
7 15 45 110 242 510 1037 2019 3752 6686 11563 19784 34327 61856 117179 231986 470861 958909 1926897 3781406 7208824
|
||||||
|
17 42 76 131 234 432 797 1439 2554 4570 8522 16908 35479 76730 166325 354352 734215 1473186 2860224 5378689 9814112
|
||||||
|
11 30 66 129 241 437 773 1348 2344 4087 7133 12386 21260 35904 59518 96799 154569 242652 375084 571759 860635
|
||||||
|
-1 -7 -11 4 83 326 938 2325 5274 11283 23158 46078 89456 170104 317453 581895 1047713 1852557 3216019 5480568 9168937
|
||||||
|
4 17 52 119 229 401 674 1132 1955 3519 6594 12758 25329 51585 108157 233992 520718 1181662 2704178 6176752 13973529
|
||||||
|
6 20 54 124 252 474 851 1491 2598 4579 8286 15587 30720 63425 135930 297947 657678 1443646 3123770 6627130 13744012
|
||||||
|
14 35 74 148 285 534 990 1841 3447 6468 12069 22245 40328 71761 125251 214444 360300 594385 963340 1534834 2405359
|
||||||
|
29 41 50 56 59 59 56 50 41 29 14 -4 -25 -49 -76 -106 -139 -175 -214 -256 -301
|
||||||
|
19 37 72 149 310 634 1280 2557 5028 9670 18147 33322 60275 108413 196008 360199 679099 1319809 2639656 5392637 11137286
|
||||||
|
26 53 88 127 170 238 405 850 1937 4334 9200 18536 35972 68651 131669 258138 521205 1081063 2283755 4866515 10379943
|
||||||
|
3 1 -9 -19 -12 33 148 413 1045 2579 6237 14715 33900 76593 170430 374402 812719 1743149 3692707 7722173 15931140
|
||||||
|
2 13 29 50 76 107 143 184 230 281 337 398 464 535 611 692 778 869 965 1066 1172
|
||||||
|
21 38 66 114 191 306 468 686 969 1326 1766 2298 2931 3674 4536 5526 6653 7926 9354 10946 12711
|
||||||
|
20 32 56 120 270 575 1132 2071 3560 5810 9080 13682 19986 28425 39500 53785 71932 94676 122840 157340 199190
|
||||||
|
-1 -1 -9 -15 17 161 537 1324 2800 5444 10148 18600 33912 61580 110876 196785 342613 583405 970325 1576163 2502147
|
||||||
|
16 22 45 102 210 392 701 1271 2420 4857 10085 21163 44142 90823 184171 369045 733382 1449608 2854917 5606422 10981452
|
||||||
|
8 23 41 67 131 298 683 1495 3144 6466 13167 26667 53639 106669 208561 398765 742000 1337993 2328717 3894571 6222067
|
||||||
|
9 8 5 0 -7 -16 -27 -40 -55 -72 -91 -112 -135 -160 -187 -216 -247 -280 -315 -352 -391
|
||||||
|
23 43 72 109 160 257 497 1116 2629 6094 13593 29059 59605 117533 223295 410138 732799 1287316 2260839 4057511 7605344
|
||||||
|
-5 10 35 80 171 359 739 1483 2901 5567 10586 20131 38441 73545 140109 264179 491771 906656 1671501 3127338 6031731
|
||||||
|
17 38 75 144 265 466 801 1397 2559 4977 10106 20863 42965 87614 176965 355122 709669 1412564 2795569 5485754 10643249
|
||||||
|
-8 -13 -6 33 137 359 783 1538 2811 4852 7961 12444 18522 26174 34892 43323 48770 46521 28972 -15493 -103905
|
||||||
|
-3 1 10 26 65 165 397 883 1825 3549 6568 11668 20021 33329 54003 85381 131989 199849 296838 433102 621529
|
||||||
|
8 18 43 85 145 231 380 709 1523 3533 8280 18922 41605 87668 176873 341682 632443 1123657 1923398 3193680 5203054
|
||||||
|
-5 3 26 78 178 342 586 968 1714 3494 7945 18606 42603 93833 199268 411681 835139 1674971 3333414 6589328 12932182
|
||||||
|
11 17 26 38 53 71 92 116 143 173 206 242 281 323 368 416 467 521 578 638 701
|
||||||
|
7 17 38 76 134 207 277 308 241 -11 -568 -1588 -3272 -5869 -9681 -15068 -22453 -32327 -45254 -61876 -82918
|
||||||
|
13 31 77 163 302 506 777 1100 1461 1929 2868 5401 12360 30160 72376 166334 364813 766067 1546895 3015503 5693514
|
||||||
|
11 26 56 118 236 441 774 1299 2147 3635 6526 12509 24983 50243 99229 190181 352951 636508 1122536 1950228 3360746
|
||||||
|
16 19 17 18 36 84 171 323 666 1633 4387 11588 28674 65874 141225 284925 545420 997695 1754317 2979862 4909448
|
||||||
|
10 19 30 43 60 90 160 348 876 2334 6145 15415 36332 80294 167019 329195 620177 1128708 2010371 3557722 6355595
|
||||||
|
4 17 47 106 214 398 691 1131 1760 2623 3767 5240 7090 9364 12107 15361 19164 23549 28543 34166 40430
|
||||||
|
18 23 20 12 17 77 269 718 1612 3219 5906 10160 16611 26057 39491 58130 83446 117199 161472 218708 291749
|
||||||
|
-3 -3 -1 3 9 17 27 39 53 69 87 107 129 153 179 207 237 269 303 339 377
|
||||||
|
13 10 17 46 106 205 359 625 1199 2651 6404 15600 36530 80834 168698 333285 626633 1127232 1949451 3254922 5265898
|
||||||
|
18 45 88 163 297 530 933 1655 3015 5658 10797 20566 38512 70257 124364 213444 355544 575859 908814 1400565 2111971
|
||||||
|
14 17 19 20 20 19 17 14 10 5 -1 -8 -16 -25 -35 -46 -58 -71 -85 -100 -116
|
||||||
|
12 10 4 10 57 188 462 963 1841 3440 6609 13344 27972 59162 123133 248525 483506 905806 1636498 2858486 4840811
|
||||||
|
1 11 49 134 295 577 1047 1800 2965 4711 7253 10858 15851 22621 31627 43404 58569 77827 101977 131918 168655
|
||||||
|
7 14 39 84 145 210 257 252 147 -122 -637 -1500 -2835 -4790 -7539 -11284 -16257 -22722 -30977 -41356 -54231
|
||||||
|
8 19 48 112 246 516 1037 1992 3648 6365 10594 16860 25726 37734 53319 72692 95688 121575 148820 174808 195510
|
||||||
|
2 1 -6 -11 10 115 426 1167 2705 5585 10553 18596 31140 50823 83887 146617 281233 592826 1331237 3065196 7038703
|
||||||
|
10 24 50 91 157 281 548 1141 2406 4940 9721 18354 33675 61406 114644 225397 472484 1045368 2383345 5466690 12403661
|
||||||
|
9 26 53 92 145 214 301 408 537 690 869 1076 1313 1582 1885 2224 2601 3018 3477 3980 4529
|
||||||
|
15 23 42 77 127 197 333 699 1738 4505 11355 27360 63198 140949 305518 646813 1342402 2739280 5510713 10957600 21587310
|
||||||
|
19 37 61 94 146 245 457 921 1909 3922 7842 15196 28676 53239 98468 183600 348119 673831 1330219 2665814 5387734
|
||||||
|
4 -3 -17 -40 -78 -141 -238 -367 -500 -563 -411 202 1658 4515 9552 17819 30692 49933 77755 116892 170674
|
||||||
|
-1 1 8 27 66 128 198 213 2 -818 -3003 -7910 -17797 -36193 -68327 -121594 -206023 -334697 -524058 -794011 -1167720
|
||||||
|
1 -1 0 11 53 181 512 1270 2872 6117 12616 25730 52480 107173 217866 437281 860403 1651755 3086264 5608725 9918151
|
||||||
|
17 31 55 111 236 482 916 1620 2691 4241 6397 9301 13110 17996 24146 31762 41061 52275 65651 81451 99952
|
||||||
|
0 10 33 89 223 518 1108 2194 4081 7279 12745 22386 39996 72865 134378 248021 453334 814504 1432481 2461735 4133061
|
||||||
|
4 -5 -14 -23 -22 37 297 1104 3202 8074 18526 39669 80531 156610 293712 533311 939276 1604957 2658166 4259557 6587732
|
||||||
|
26 49 82 125 178 241 314 397 490 593 706 829 962 1105 1258 1421 1594 1777 1970 2173 2386
|
||||||
|
14 24 37 53 80 146 325 794 1957 4702 10900 24317 52213 108112 216713 423068 810836 1540384 2930127 5629961 10984722
|
||||||
|
17 32 55 92 151 240 377 625 1165 2420 5243 11182 22835 44308 81789 144251 244297 399160 631871 972608 1460239
|
||||||
|
14 18 28 47 72 97 128 213 499 1344 3538 8745 20418 45744 99763 213822 452144 942698 1931932 3877439 7598384
|
||||||
|
16 31 57 106 193 331 522 744 942 1042 1015 1009 1514 3379 7175 10748 2592 -53483 -250583 -802088 -2159965
|
||||||
|
15 26 43 69 117 221 456 977 2090 4380 8952 17898 35184 68236 130557 245712 453081 816341 1437855 2488540 4278275
|
||||||
|
11 12 20 44 95 183 317 515 841 1512 3165 7447 18195 43613 100034 218082 452327 895860 1701610 3112686 5504559
|
||||||
|
10 20 40 72 128 251 560 1339 3198 7339 15972 32974 65017 123691 229785 422260 777466 1450816 2767623 5420691 10896672
|
||||||
|
9 24 43 65 96 169 380 953 2356 5499 12054 24946 49073 92322 166957 291464 492947 810178 1297413 2029095 3105574
|
||||||
|
15 24 48 102 200 348 534 724 887 1103 1867 4799 14114 39405 100553 235907 515279 1059778 2071066 3873260 6971428
|
||||||
|
18 41 77 129 203 311 475 728 1120 1765 3022 6012 13867 34429 85620 205451 469702 1021769 2121131 4219443 8076523
|
||||||
|
11 18 31 49 89 198 473 1110 2524 5624 12400 27107 58581 124749 261505 540357 1103485 2232434 4479569 8912417 17553909
|
||||||
|
5 5 3 9 43 135 327 675 1246 2101 3250 4554 5533 5055 1056 -8925 -23929 -26243 55221 432483 1648635
|
||||||
|
24 37 51 71 111 204 412 828 1570 2788 4753 8213 15468 33174 78947 195701 480720 1141251 2595563 5648743 11786953
|
||||||
|
9 8 3 -3 3 65 306 1017 2803 6806 15031 30809 59441 109079 191914 325757 536117 858900 1343875 2059077 3096343
|
||||||
|
8 18 43 89 164 278 443 673 984 1394 1923 2593 3428 4454 5699 7193 8968 11058 13499 16329 19588
|
||||||
|
-2 -12 -14 5 64 200 482 1036 2103 4172 8269 16559 33551 68408 139207 280648 558215 1095495 2130207 4134284 8074665
|
||||||
|
2 11 36 82 151 245 374 569 900 1499 2588 4512 7777 13093 21422 34031 52550 79035 116036 166670 234699
|
||||||
|
10 16 13 5 4 36 164 534 1456 3557 8101 17694 37848 80395 170752 362969 770150 1624734 3396021 7016083 14308004
|
||||||
|
6 22 45 84 167 355 769 1639 3400 6895 13820 27701 56003 114583 236900 492721 1025458 2125312 4369583 8885622 17831503
|
||||||
|
3 8 24 73 190 423 833 1494 2493 3930 5918 8583 12064 16513 22095 28988 37383 47484 59508 73685 90258
|
||||||
|
8 10 11 11 10 8 5 1 -4 -10 -17 -25 -34 -44 -55 -67 -80 -94 -109 -125 -142
|
||||||
|
-3 5 32 89 188 341 561 867 1304 2013 3437 6855 15647 38087 93150 221955 509247 1121997 2376078 4847429 9551590
|
||||||
|
13 26 48 91 168 293 481 748 1111 1588 2198 2961 3898 5031 6383 7978 9841 11998 14476 17303 20508
|
||||||
|
4 1 5 30 99 248 542 1119 2292 4772 10134 21754 46653 99118 207881 430492 882132 1792807 3618723 7253786 14420127
|
||||||
|
6 5 14 53 163 421 955 1959 3708 6573 11036 17705 27329 40813 59233 83851 116130 157749 210618 276893 358991
|
||||||
|
20 38 69 109 152 192 234 318 567 1292 3236 8134 19944 47459 109783 247905 549506 1202430 2608943 5624723 12044252
|
||||||
|
8 18 39 79 157 311 625 1282 2659 5514 11386 23449 48242 98951 201258 403208 791090 1513994 2820505 5111939 9017627
|
||||||
|
14 20 26 46 100 210 400 701 1158 1832 2786 4040 5476 6670 6624 3367 -6610 -29124 -73318 -152974 -288172
|
||||||
|
9 21 31 39 61 141 365 893 2053 4591 10254 23022 51549 113813 245773 517287 1061241 2126913 4178213 8075541 15413429
|
||||||
|
10 5 0 -5 -10 -15 -20 -25 -30 -35 -40 -45 -50 -55 -60 -65 -70 -75 -80 -85 -90
|
||||||
|
2 8 14 20 26 32 38 44 50 56 62 68 74 80 86 92 98 104 110 116 122
|
||||||
|
25 43 82 152 271 484 885 1649 3106 5936 11653 23709 49830 106651 228414 482512 996095 1999905 3898092 7376110 13563041
|
||||||
|
25 37 58 110 239 536 1174 2470 4995 9773 18638 34882 64481 118529 218222 405141 762261 1456041 2818722 5505066 10782955
|
||||||
|
9 9 25 72 165 319 549 870 1297 1845 2529 3364 4365 5547 6925 8514 10329 12385 14697 17280 20149
|
||||||
|
0 2 6 13 24 44 86 175 352 678 1238 2145 3544 5616 8582 12707 18304 25738 35430 47861 63576
|
||||||
|
6 30 75 162 327 623 1122 1917 3124 4884 7365 10764 15309 21261 28916 38607 50706 65626 83823 105798 132099
|
||||||
|
8 6 1 -7 -18 -32 -49 -69 -92 -118 -147 -179 -214 -252 -293 -337 -384 -434 -487 -543 -602
|
||||||
|
10 5 -1 -5 -4 5 25 59 110 181 275 395 544 725 941 1195 1490 1829 2215 2651 3140
|
||||||
|
4 13 25 51 116 268 605 1333 2875 6078 12633 25968 53154 108866 223288 457209 929642 1866383 3682349 7116701 13448156
|
||||||
|
4 0 2 13 42 113 275 610 1240 2340 4170 7146 11982 19959 33423 56695 97708 170888 302090 536811 953458
|
||||||
|
13 33 74 145 256 421 664 1027 1588 2525 4326 8374 18378 43560 105290 250237 575532 1275865 2731024 5670202 11488003
|
||||||
|
15 44 87 148 246 435 830 1634 3159 5832 10175 16746 26026 38235 53058 69260 84167 92988 87951 57224 -16410
|
||||||
|
9 22 35 48 61 74 87 100 113 126 139 152 165 178 191 204 217 230 243 256 269
|
||||||
|
3 18 49 114 243 485 923 1695 3025 5296 9266 16673 31761 64816 139895 311086 695823 1541682 3357467 7164580 14967135
|
||||||
|
28 44 59 86 152 292 552 1021 1927 3858 8218 18120 40076 87085 184046 376823 746783 1433430 2669722 4840316 8588709
|
||||||
|
18 27 47 92 192 399 804 1592 3180 6501 13512 28013 56869 111743 211525 385925 681562 1174191 1996269 3401322 5911706
|
||||||
|
20 34 55 83 118 160 209 265 328 398 475 559 650 748 853 965 1084 1210 1343 1483 1630
|
||||||
|
9 6 -5 -22 -27 36 293 995 2626 6113 13203 27072 53190 100343 181447 313295 513543 791920 1130659 1446270 1520747
|
||||||
|
9 26 59 111 177 254 363 583 1103 2307 4919 10252 20629 40081 75506 138688 250155 447262 801933 1459475 2720655
|
||||||
|
11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111
|
||||||
|
18 25 45 97 205 392 684 1132 1858 3127 5437 9599 16745 28150 44680 65578 86170 93909 61973 -60611 -363635
|
||||||
|
7 7 16 46 125 306 672 1338 2462 4296 7335 12657 22590 41893 79697 152519 288737 534997 965114 1692128 2884283
|
||||||
|
8 9 1 -8 16 142 491 1277 2889 6031 11937 22674 41526 73399 125094 205199 323391 489436 713718 1014627 1444769
|
||||||
|
13 19 33 74 184 433 926 1830 3455 6444 12163 23451 46018 91000 179536 350773 675489 1278617 2375429 4328080 7731708
|
||||||
|
11 24 48 94 196 426 916 1903 3839 7652 15309 30921 62746 126592 251301 487210 918739 1682552 2993078 5177568 8723304
|
||||||
|
6 27 73 154 275 442 675 1029 1623 2668 4461 7264 10904 13799 10921 -10067 -75636 -237807 -592423 -1307346 -2664647
|
||||||
|
-2 -4 -1 13 54 164 435 1047 2326 4828 9455 17609 31390 53844 89267 143571 224718 343228 512767 750821 1079462
|
||||||
|
-4 -14 -18 -1 66 242 646 1509 3256 6626 12838 23811 42446 72978 121406 196009 307956 472018 707390 1038631 1496730
|
||||||
|
16 23 40 74 123 175 208 191 99 -20 150 1648 7185 23051 62985 156232 364624 818923 1795546 3876244 8274637
|
||||||
|
2 18 40 65 98 159 305 691 1716 4348 10809 25940 59770 132095 280246 571702 1123798 2133502 3921102 6992667 12127338
|
||||||
|
20 24 25 30 65 200 583 1481 3330 6799 12878 23025 39509 66408 112572 199850 384145 805463 1799712 4135921 9498542
|
||||||
|
12 27 62 134 270 505 880 1440 2232 3303 4698 6458 8618 11205 14236 17716 21636 25971 30678 35694 40934
|
||||||
|
24 34 44 54 64 74 84 94 104 114 124 134 144 154 164 174 184 194 204 214 224
|
||||||
|
11 13 10 14 46 133 321 728 1666 3867 8856 19518 40892 81176 152849 273811 468865 773613 1247830 2017298 3388454
|
||||||
|
10 10 25 68 148 264 412 617 999 1879 3928 8359 17159 33355 61305 107002 178376 285576 441211 660526 961486
|
||||||
|
4 9 22 51 114 252 548 1148 2286 4325 7849 13904 24647 45033 86956 178824 386516 857089 1906160 4186141 8999036
|
||||||
|
1 19 50 96 162 258 401 617 943 1429 2140 3158 4584 6540 9171 12647 17165 22951 30262 39388 50654
|
||||||
|
5 12 34 77 147 250 392 579 817 1112 1470 1897 2399 2982 3652 4415 5277 6244 7322 8517 9835
|
||||||
|
29 42 59 86 129 194 287 414 581 794 1059 1382 1769 2226 2759 3374 4077 4874 5771 6774 7889
|
||||||
|
9 5 -2 -9 2 87 383 1176 2999 6773 14033 27352 51218 93869 170994 312817 576957 1070669 1987696 3667085 6684034
|
||||||
|
18 33 70 137 235 357 502 725 1255 2730 6624 15979 36608 79006 161298 313669 584864 1051519 1831290 3100989 5121217
|
||||||
|
10 21 59 154 354 736 1428 2659 4873 8969 16761 31792 60696 115426 216996 402316 738199 1352851 2509645 4779745 9436447
|
||||||
|
10 23 59 134 281 554 1036 1855 3206 5370 8713 13639 20461 29143 38854 47262 49482 36577 -6505 -103692 -291399
|
||||||
|
13 31 65 130 261 522 1016 1902 3436 6071 10672 18922 34010 61698 111857 200538 352599 604839 1009491 1637794 2583195
|
||||||
|
12 22 45 99 219 458 881 1549 2490 3654 4849 5655 5313 2586 -4411 -18415 -43256 -84138 -147963 -243701 -382809
|
||||||
|
0 5 14 28 55 121 298 761 1902 4571 10602 23944 52989 115115 245094 509913 1033788 2038793 3908662 7286044 13216899
|
||||||
|
18 37 68 116 195 335 588 1046 1899 3577 7037 14274 29154 58687 114879 217324 396720 699517 1193930 1977576 3187021
|
||||||
|
-7 2 25 70 153 298 537 910 1465 2258 3353 4822 6745 9210 12313 16158 20857 26530 33305 41318 50713
|
||||||
|
20 31 42 53 64 75 86 97 108 119 130 141 152 163 174 185 196 207 218 229 240
|
||||||
|
11 23 47 99 199 378 692 1247 2244 4058 7386 13567 25338 48605 96353 196685 408273 848345 1740857 3495859 6835425
|
||||||
|
14 22 40 82 187 438 999 2180 4547 9117 17722 33698 63175 117473 217603 402985 748977 1403173 2661589 5128171 10043916
|
||||||
|
11 34 68 113 169 236 314 403 503 614 736 869 1013 1168 1334 1511 1699 1898 2108 2329 2561
|
||||||
|
-1 -11 -12 10 69 179 354 608 955 1409 1984 2694 3553 4575 5774 7164 8759 10573 12620 14914 17469
|
||||||
|
18 30 42 54 66 78 90 102 114 126 138 150 162 174 186 198 210 222 234 246 258
|
||||||
|
18 27 56 123 259 513 959 1709 2944 4999 8599 15477 29863 61781 133810 294051 639606 1357043 2789234 5541767 10647019
|
||||||
|
14 10 2 2 43 186 525 1187 2337 4222 7325 12758 23116 44162 87942 178271 360024 714354 1382892 2605218 4775489
|
||||||
|
10 18 26 34 42 50 58 66 74 82 90 98 106 114 122 130 138 146 154 162 170
|
||||||
|
5 23 60 134 285 595 1228 2497 4970 9651 18327 34280 63777 119185 225423 433107 844696 1664968 3295303 6503971 12723886
|
||||||
|
22 39 68 128 254 500 944 1697 2916 4814 7653 11727 17457 26049 41905 79433 179556 445855 1118254 2715958 6305702
|
||||||
|
15 15 25 62 145 299 563 1002 1723 2895 4773 7726 12269 19099 29135 43562 63879 91951 130065 180990 248041
|
||||||
|
10 19 46 108 229 440 779 1291 2028 3049 4420 6214 8511 11398 14969 19325 24574 30831 38218 46864 56905
|
||||||
|
23 39 56 84 144 260 449 718 1081 1622 2660 5131 11413 27024 63986 147268 326735 698621 1442948 2886826 5608554
|
||||||
|
18 34 55 89 150 258 439 725 1154 1770 2623 3769 5270 7194 9615 12613 16274 20690 25959 32185 39478
|
||||||
|
15 29 57 115 232 456 866 1590 2829 4887 8207 13413 21358 33178 50352 74768 108795 155361 218037 301127 409764
|
||||||
|
14 20 24 23 14 -6 -40 -91 -162 -256 -376 -525 -706 -922 -1176 -1471 -1810 -2196 -2632 -3121 -3666
|
||||||
|
6 26 60 121 248 515 1050 2091 4134 8271 16880 34938 72435 148776 300874 598273 1171929 2269863 4365915 8373002 16059681
|
||||||
|
8 13 35 97 238 515 1005 1807 3044 4865 7447 10997 15754 21991 30017 40179 52864 68501 87563 110569 138086
|
||||||
|
17 25 35 55 107 241 550 1180 2337 4326 7725 13903 26226 52431 108729 226129 459109 895883 1667827 2952731 4961913
|
||||||
|
8 26 57 104 173 286 519 1076 2410 5402 11609 23592 45335 82766 144391 242052 391820 615034 939497 1400840 2044065
|
||||||
|
3 10 29 78 188 403 780 1389 2313 3648 5503 8000 11274 15473 20758 27303 35295 44934 56433 70018 85928
|
||||||
|
-5 -5 -1 18 82 253 651 1515 3345 7216 15440 32908 69721 146196 302134 613573 1222536 2389442 4585992 8663273 16166069
|
||||||
|
12 24 50 106 221 436 803 1384 2250 3480 5160 7382 10243 13844 18289 23684 30136 37752 46638 56898 68633
|
||||||
|
6 21 61 136 263 470 807 1383 2461 4663 9379 19577 41458 87954 186242 393845 832659 1759550 3710060 7785731 16219200
|
||||||
|
-2 1 1 -10 -36 -70 -88 -44 134 547 1327 2638 4676 7668 11870 17564 25054 34661 46717 61558 79516
|
||||||
|
0 2 5 14 48 146 386 934 2144 4736 10094 20763 41304 79829 150883 281126 521120 970802 1835611 3549656 7040224
|
||||||
|
5 14 23 30 40 75 201 596 1695 4475 11002 25468 56123 118821 243520 486375 952760 1841967 3534836 6765525 12956133
|
||||||
|
19 41 76 129 205 309 446 621 839 1105 1424 1801 2241 2749 3330 3989 4731 5561 6484 7505 8629
|
||||||
|
13 23 40 84 185 398 844 1803 3900 8445 18024 37522 75971 150138 291990 564885 1099058 2168489 4353507 8875046 18261740
|
||||||
|
10 19 39 70 112 165 229 304 390 487 595 714 844 985 1137 1300 1474 1659 1855 2062 2280
|
||||||
|
28 41 61 97 171 343 747 1650 3558 7410 14929 29240 55919 104715 192340 347091 616960 1084883 1898873 3332571 5905659
|
||||||
|
5 10 31 73 145 271 512 1018 2143 4669 10192 21719 44505 87118 162653 289918 494281 807692 1267173 1910797 2769849
|
||||||
|
4 24 65 144 300 615 1244 2461 4749 9003 16979 32223 61894 120239 235122 460136 896646 1732814 3310349 6234322 11546476
|
||||||
|
17 31 54 99 194 382 721 1284 2159 3449 5272 7761 11064 15344 20779 27562 35901 46019 58154 72559 89502
|
||||||
|
5 4 7 20 54 146 402 1082 2767 6686 15354 33810 71997 149271 302774 602609 1178613 2266292 4283477 7954868 14509316
|
||||||
|
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6
|
||||||
|
22 42 84 163 293 491 795 1302 2231 4015 7425 13728 24880 43754 74402 122349 194916 301568 454282 667929 960663
|
||||||
|
3 0 1 12 36 73 120 171 217 246 243 190 66 -153 -494 -987 -1665 -2564 -3723 -5184 -6992
|
||||||
|
20 43 88 178 348 653 1188 2134 3858 7123 13531 26473 53172 109004 226365 472214 981488 2018447 4085466 8109904 15755812
|
||||||
|
14 26 48 80 122 174 236 308 390 482 584 696 818 950 1092 1244 1406 1578 1760 1952 2154
|
||||||
|
23 29 33 35 35 33 29 23 15 5 -7 -21 -37 -55 -75 -97 -121 -147 -175 -205 -237
|
||||||
|
5 12 23 38 57 80 107 138 173 212 255 302 353 408 467 530 597 668 743 822 905
|
||||||
|
14 27 44 73 126 224 420 849 1809 3880 8109 16338 31839 60555 113439 210644 388656 711889 1290786 2309103 4063804
|
||||||
|
17 33 58 96 170 349 800 1881 4291 9297 19079 37285 69978 127287 226233 395362 681933 1162409 1956784 3246718 5296378
|
||||||
|
7 21 43 83 155 274 453 700 1015 1387 1791 2185 2507 2672 2569 2058 967 -911 -3821 -8049 -13925
|
||||||
|
12 27 45 64 92 160 339 767 1701 3625 7485 15222 30992 63876 133584 281743 592957 1232214 2509179 4987588 9674485
|
||||||
|
12 25 37 43 28 -30 -144 -283 -303 191 2130 7587 21086 52414 122509 275338 600961 1279037 2659960 5417729 10846175
|
||||||
|
0 3 22 63 141 300 650 1445 3236 7139 15273 31482 62636 121260 231241 440403 847714 1660461 3311075 6690622 13608639
|
||||||
|
5 4 8 22 48 90 174 390 963 2360 5440 11654 23302 43854 78342 133830 219969 349644 539720 811894 1193660
|
||||||
|
18 34 60 102 166 258 384 550 762 1026 1348 1734 2190 2722 3336 4038 4834 5730 6732 7846 9078
|
||||||
|
15 29 56 116 236 450 799 1331 2101 3171 4610 6494 8906 11936 15681 20245 25739 32281 39996 49016 59480
|
||||||
|
9 18 41 106 249 522 1015 1889 3418 6059 10638 18904 35049 69480 147439 327464 738904 1654857 3628600 7740039 16026822
|
||||||
|
-7 -3 9 44 136 346 781 1639 3303 6525 12785 25007 49000 96309 189672 373150 730754 1421573 2750017 5316307 10355491
|
||||||
|
17 28 58 129 284 596 1172 2157 3745 6202 9900 15351 23216 34246 49090 67879 89465 110160 121782 108773 44108
|
||||||
|
4 10 18 29 44 65 100 179 390 951 2348 5598 12758 27924 59182 122318 247584 491440 955886 1818627 3377640
|
||||||
140
data/10.in
Normal file
140
data/10.in
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
FF--7-|7F--7F--|7F77-.FJF7F-7-F|7.77.FF7-F7---7-FJ7.|J--FJJ-FF-.JJ7LF7.J7F-7-F77L7.7-7.7FF77FF7..F--L7JF--.FF.7F|JFL7.7FL77.-7|7.F7-7FJ.FJ.-
|
||||||
|
FL-JF-L-JJFFJJ.7-JLL.7JF-J---7JLF7|LLF--.LJ.F7.LJL7--JJLJJJ.||JF|.F7LJ7.JJL7-FJ7L|-JL..LJJF-FJJ-|7|||F.|7.F-J7|FJF-JF--7L|7L---7-FL7FJ-FJ7.|
|
||||||
|
F7.||.7--7-LJ.FJ.|7..J-J7J|F.LFFJ7F7J|LJFL7.FJ7.|FJ..J|.|.F-LL-7..|F|J|7.FF77|F77J.F-JJ-J-|-|7JLL7-FJLFLF-7J.LJ7--7-7-L|JL-J7J7L..L-J|L|-FF7
|
||||||
|
||F||FL7F7-|7|LF7|F|7|7|F7|..FJ|FJFJ.L--.FL.F.LF7J|FF.L7FLJ|.|7FJ-LJ|.|FL||.LF7JF.F||7JF--L-|7F7.-..L.7||..L7FL7|JL7L7-L77L|F-7J.7F|FL77.LL7
|
||||||
|
-7FJFJFLJJ.F-JJ|LJL--7-F--F-|L|FL-LJF7J|F77.L--7L.|F77LJ7FJJFF-J7LL-J--JJ.FF7LJ.J-FLJFF|J|L7FFJLFLF77F7-F|7FJJJ.|7L-JLLLL.|.|.|||77JFJ.J..LJ
|
||||||
|
L77-F7FJ|FJJ.|.|J.J7LL7||7L7J7|JL7|FF7-JF-77.LLLJ|J-77.JL7.7LJ|F--FFL-J|JFFF7J|7.|LF-FF7FJ7F|J.FF7|L7F-77-J7LF-FJLF---JF|7LF77.FL.JL7|F7-FF7
|
||||||
|
-F|7JLF-JJFJFLF7LFLF.|JFJ7.J.L|JFF|LLJ7.LL7FF.L|7LJJLJ7.--.F.LFL7F--.F|F-7F||LF-7J.|FLLL-7L--F--JLJFJ|FJF7J|F||.L-7FJ..J|7-L|7-FJ7-F||JF-.7|
|
||||||
|
LLJL-JL7|.|J||LL7|-77L7|--|LF||F7L|JLF|7..L-FF-|-LJ|7-LJ7-F7F77.7J-L77-L7L-J|FJFJJ.L|J.FLLJLFL7F--7L7|L7||7FJFF7JLLF--7.J77-|JJ|F|.F7L-7.-7-
|
||||||
|
J7F7J|LJ-FJ.|L7.F|7L7-F|7.7F7.L|||||F|LL-7-J..FL7|.-F7||F7|||L77JF-.|F7|L--7||FJ||F-|7-|.|.L|LLJ|||FJL7|||F7.F7|.|LLF---||F7LJ.L-|FJJLLL7LF7
|
||||||
|
LFJ|LLJ|JLJF77FL-J-F|JFJF7LJ-|-LJL7-FF.F|.F..F|.FF-JJLF7|LJLJFJF77||-||F7F-J|||.FF7JJJJ|.7J-F-7FF-|L-7||||||FJL7FF---7JLFJL7|.|-7L||.|.F7-LJ
|
||||||
|
F|LJ.|.|.|F--|LJF7|F|.|7|FJJ|J.|J.F-.JFFF-777-F7|||LFJ||L-7F-J7||77LFJ|||L-7||L-7||J7|F-7LJLL7L7LFJF-J|||||||F7L7L-7FJ77.L7---F7L-J7.L-|..JJ
|
||||||
|
F|FJ-7---LF-J.FLF.LJL7J|-L|7LFLF7-JJ-LF7L7|F77|L7-F7F7||F-JL--7|L7F7L7|||F-J||F-J|L7-FLJL.|F7|FJFJFJF7||||||||L-JLFJL7|JFFJ|L-J7.LJ|7|F7F7||
|
||||||
|
JLLJ7L.|.LL-7--JL7J.7|7---|-J|LL|77L--|L-J||L-JFJFJ|||||L-7F--JL7|||FJ|||L7FJ|L--JFJ.L7-|FFJLJL7L7|FJ||||||LJL7J7J|F-JJ7-L-J7LLF7F|FF.L.J|FJ
|
||||||
|
|.L-F.L7F..F|J.FJ|7-F77JJ.LFF-77L-L.FLL--7|L7F-J7L7LJLJ|7FJ|LF7FJ||||FJ|L7||L|F---J.-JF7JFL-7F7L7||L7|||||L7F7L7F7|L-77|.L-.|L|J.F7LJ7LFF-JL
|
||||||
|
J-F||J7LJ777|F-|.L-FJL777.F7|FJ7J.L777FF7|L-JL-7J.L--7FJFJFJFJ|L7|||||FJFJ||FJL----7.F||-JJLLJL7||L7|||||L7||L-J|LJF-J7F7J|F7-J.FFJ|.F.F|L-.
|
||||||
|
J-FFLFJ7|L77F7|LFJ-L7FJ7FFJLJL7F7-J|F--J|L-7F7FJ|F---J|FJFJJL7L7|||LJ||FJFJLJF-----J7F|L7JF7|F7||L7|||||L7|||JF7L-7|JFFJ|7FJ|-|-7LL--7.FJ-|F
|
||||||
|
FF7.JJ.LFFF7|7J-JLF-JL--7L--7FJ|L7JLL--7|JFJ|LJF7L---7LJFJJ.FJFJ||L-7LJL7L7F7L7F--77F-JFJFJ|FJLJL-J|||||F|LJL7|L7FJ|F7L7|7L7|JJ.|F7J7|F.LF77
|
||||||
|
-FJ7..F.|F7-JL-F|7L--7F-J-F-JL7L7L7LFF-JL7L7|F7||F-7FJF7L7-FJFJFJ|F7L7F-JFJ||FJ|F-JFJF-JFJFJL-----7|||||FJF--JL7|L7LJL-J|F7||-F-77.L|-FJ..|7
|
||||||
|
.F7F-J|FFJLJ|LFF-7LF7|L-7JL--7L7|FJF7L-7FJ7|LJLJ||FJL7|L7L7L7L7L7LJ|FJL7FJFJLJFJL7|L7|77|FJF7-F7F-JLJ||LJFJF7F-JL-JF7F--J|LJ|7|FJ--7JL|.F7|.
|
||||||
|
-LJ||.|-.FJL7.---|L|LJF7L7JF7|FJ||FJ|F-JL7FJF7F-J||7LLJLL7L7L7L7L7FJ|F-JL7L--7|F7L-7|L7FJ|FJL-J|L-7F-J|F-JFJ|L7F7F-J||F-7|F-JFJ|J--J.-LF--77
|
||||||
|
|LFL7..L|7J7.7.|-J.|F-JL7L7|||L7|LJFJL7F-J|FJLJF7||F7F--7L7L-JFJFJ|FJL7F7|F--JLJ|F-JL7||FJL---7|F-JL7FJL-7L7|FJ|LJF7LJL7||L7FJFJ7.F--.F|JFJ|
|
||||||
|
J.7.|77|LL.-F77|FLFLJFF7L7LJLJFJL-7|F7||F7||F7|||||||L7FJJL7F7L7L7||F-J|||L-7-F7||F7FJLJL7F7F-J|L7F7LJF-7L7||L7L7FJL7|FJLJFJL7L-7.FF|7-LJJF7
|
||||||
|
LJ7.F7FF7|77F7F7F-7J-FJL7L---7|F77|||||||||||L7|||LJL7|||F7LJ|FJFJLJL7FJ||F-JFJLJ|||L-7F-J||L-7L7LJ|F-J|L-J||||FJL-7L7L-7FJ7-|F-JF|-J-77F7--
|
||||||
|
F.L-J-J|FF--JLJLJFJF7|F7L7F7FJ|||FJ||||LJ||||FJ||L-7FJ||FJL7FJL7L--7FJL7LJL-7|F-7||L7FJ|F7|L-7L7L7FJL-7-LF7|L7||7F-JFJ-FJ|FF-JL7-7J.||-|J|FJ
|
||||||
|
-J77F-LF-|F--7F7FJFJ|LJL7||LJFJ||L7||LJF-J|||L7||F7|L7|||F7LJF-JF7||L-7|F---JLJFJ||FJ|FJ|||F-J.|FJL--7L7FJ||FJ|L7L-7|F7L7L-JF--J7|FFF7FF7|7.
|
||||||
|
|LL7JF7-.LJ|FJ||L7L7L---JLJF7L-JL-J|L7FJ-FJ||FJ||||L7|||LJL-7|F-J|FJF-J||F7FF7FJFJ|L7|L7|||L-7FJL7|F7|FJL7LJL7|FJF-J||L7L7F-JF--7-F7||7L-J-7
|
||||||
|
J-L-.LJ.FL|-L-JL7L7L------7|L7F-7F7|FJL-7L7|||||LJL-J||L7F--J|L-7||FJF7||||FJ||FJFJFJL7|||L-7|L-7|FJLJ|F-JF--J|L7L7FJ|FJFJL--JF7|FJ|||7F|7F|
|
||||||
|
JJFJ-L7|7F--||F-JFJF7F----JL7||FJ|||L7F-JFJ||L7L----7LJFJL--7|F-JLJ|FJLJLJ||FJ||FL7L--JLJ|F-JL-7||L--7||F-J.F7|FJFJL7|L-JF7F7FJLJL7|||F7F777
|
||||||
|
..LJ||F-77FF-7L-7||||L----7FJLJL-J||.||F7L7|L7L7F7F-JF-JJF7FJLJF7F-JL7F--7LJ|FJL7||F-----JL-7F7LJ|F7FJLJ|F-7||||LL7FJ|F--JLJLJ|-F7|||LJLJ|F7
|
||||||
|
FF7F7-L7|F7L7|F7|L7|L-7F--J||F----J|FJ||L7|L7L7LJ|L7FJ|F7||L--7|LJF7|LJ7FJF-JL7FJFJ|LF7F-7F7LJL7FJ||L--7||FJ||||F-JL-JL--7F77F7FJLJLJF7F7LJ|
|
||||||
|
--FJL--JLJL7|LJLJFJL-7|L---JFJF---7LJFJL7|L7|FJF-JFJL-7||||F--JL--JL7F-7|FJF7FJL7L7L7|||FJ|L-7FJL-J|F7FJLJL7|||LJF-7F----J||FJ|L7F7F7|LJ|F7|
|
||||||
|
.F|F-7F--7FJL---7||F7|L---7.L-JF7F|F-J-FJ|FJ|L7L7FJF--J||||L---7F-7FJL7||L7||L-7|FJFJ|LJL7|F-JL---7|||L-7F-J|LJF-JJLJF77F-JLJFJFJ||||L7FJ|LJ
|
||||||
|
FFLJ|LJLFJL-7FF-JL-J|L---7|F-7FJ|FJL7F-JFJ|FJ7|FJL7L-7L||||F7F-JL7LJF7|||FJ|L77|||FJJL-7FJ||F7F--7||||F7|L7J|F-JF7JF7||FJF7F7L-JFJ|||FJL7|LJ
|
||||||
|
LFJ|FLJ7L--7L7L----7L-7F-J||FJL7|L7FJL-7L7||F7||F7|F-JFJ||||||F-7L7FJ||||||L7|FJ||L-7F7|L7|LJ|L-7||||LJ||FJFJL--JL7|LJLJFJLJL--7L7|||L7F||.L
|
||||||
|
LLJ|F|7|.F-JFJF7F-7L7FJ|F7LJ|JFJL-J|JF7L7|||||||||||F7|FJ||||LJ7|FJL7|||||F7||L7||F-J||L7||F-JF7||||L7FJ||FJF-7F-7LJF---JF7F7F7L-JLJL7|-LJ7.
|
||||||
|
L7F|J.FF-JF7L7||L7|7|L7LJL-7|FJF7F7L7|L7|||||||LJ|||||||FJ||L7F7|L7FJ|||||||||FJ||L7FJ|FJ||L7FJ||LJ|FJL7|LJFJJLJFJF7L----J||LJL-----7||7||F7
|
||||||
|
F77.|F-L-7|L7LJL-JL7|FJF---J||FJLJL7LJLLJ|||||L-7|||||||L7|L7||||FJ|FJ|LJLJLJ||JLJ||L7|L7||FJL7|||FJL7.LJF-JF7F7L-J|F7F--7LJF--7F7F-J||J7LFJ
|
||||||
|
LJLF-JL|LLJJL-7F--7LJL7L---7|LJF7F7L----7LJ|||F7|||||||L7||FJ||LJ|FJL7|JF7LF-JL7F--JFJL-J|||F7|||FJF7|F--JF7|LJL--7|||L-7L-7L-7LJLJ.LLJJLFJ|
|
||||||
|
LL.7.||LF-----J|F-JF-7L7F7FJ|F7||||F---7|F7||||LJ||||||FJ||L7|L7FJ|F-JL-JL7L7F7|L7F7L---7LJLJ|||||FJLJL---JLJF7F7FJLJ|F7L7L|F7L---7-JL|F||JL
|
||||||
|
FF-L7-J-L---7F7||F7L7L7LJ|L7||||||LJF-7LJ|LJ||L-7LJLJLJL7||FJ|FJL7|L-7F---JFJ|||FJ|L7F--JJF7-LJLJ||F7F7F----7|||LJF-7LJL7L7|||F---J7FJL7J.7J
|
||||||
|
7J--F7||F|7FJ|||LJL-JF|F7L-JLJLJ|L--JFJF7L7FJ|F-J.F7F-7FJ|||FJL-7||F-JL---7L7|LJL7|FJL----J|F---7|||LJLJF--7|||L-7|FJF-7|FJLJ|L--7J-L7J||-|.
|
||||||
|
LLF7JFLLLJFJFJLJF-----J|L7F7F7F7L---7L-J|FJ|-|L---JLJFJL-JLJL7F-J||L-7F7F7|FJ|F--J|L7F7F--7|L7F7LJ||F7F-JF-JLJ|F7LJL-JFJ||JF7|F7FJJFJL----|-
|
||||||
|
7F77LJ7||LL7|.LFJF7F7F7L7LJ||LJL7F-7L-7FJL7|FJF----7FJF7F---7|L-7LJF-J|LJ||L7|L7F7|FJ||L-7LJ|LJ|F7|LJLJF7L---7LJL-----JJLJFJ|LJLJFFJJ||LJFF.
|
||||||
|
|7||FL-|J-LLJ7.L-JLJLJL-JF7LJLF7LJLL-7LJF7LJL7L---7LJFJ|L--7LJF7|F-JF7L-7|L7|L7||||L7||F7L---7FJ|LJFF--JL----JF---7F7FF7F7L7|F7F77J|L|-77FFJ
|
||||||
|
--J7JF|J|JJLLF7F7JF7FF---JL---J|F---7L-7|L--7L7F-7L-7|FJF--JF7|LJ|F7||F7||FJL-J||LJ7||LJL7F7FJL7L7F7L-7F---7F7|F--J||FJLJL-JLJLJ|F--7LLLL-J7
|
||||||
|
FJ.L.FJ.LF7F7FFJL-JL7L----7F--7|L--7L--J|F-7|FJ|FJF7LJ|FJF7FJ||F-J|LJ||LJ|L7-F7LJF7FJL-7.|||L7.L7||L-7||F--J|||L---JLJF---------J|F-J7|LJL7J
|
||||||
|
FL|7|.LL7LFJL-JF7F-7L77F-7LJF7||F7.L----JL7LJL7|L7||F7|L7||L7|||F7|F-JL-7L7L7|L--JLJF7FJFJ|L7L7||||F7LJ|L7F7|||F---7F7L7F-7F7F---JL-7-|7-LJ|
|
||||||
|
|JJLJ.FL|JL---7||L7L7L7L7|F-JLJ|||F---7F-7L-7FJL7||||LJFJ|L7|||||LJL7F7FJFJFJL---7F7|LJFJFJ.L7|FJ|LJL--J-LJLJLJL--7||L7LJFJ|LJF7F7F-JLF77J.J
|
||||||
|
F.FJ|LF.J.F---J||FJ7L7|F||L7F-7LJ|L--7|L7|F-JL7FJ||||F-JFJFJ||||L-7FJ|LJ7L-JF----J||L77L7|F-7LJL-JF7F---------7F7FJLJ-L-7L-JF-JLJ||||LL-7FJ7
|
||||||
|
L-JLFJJ|.FL-7F7|LJ.F-JL-JL-J|F|F7L---JL7|LJF-7LJJLJ||L7FJLL7|||L-7|L7L---7F7L-7F7FJL7L-7|LJFJF7F--JLJF-----7F7LJ|L--7F7|L7F-JF-7FJL7-|LF7-L7
|
||||||
|
L|.--.F|-7JFJ|||F-7L-7F---7FJFJ|L7F7F-7LJF7L7|F77F7||FJL7-FJ||L-7LJFJF-7FJ|L--J||L-7|F7|L7FJ-||L--7F7|F----J||F7L---J||F-JL--JFJL--J-|.LJ.LJ
|
||||||
|
F|7|JL-JF-JL-JLJL7L7FJL7F-JL7L-J|LJLJFJF7||FJ||L-J|LJL-7L7|FJ|F-JF-JFJFJ|FJF7F7|L7FJLJLJ7||F-JL7F7LJLJL-----JLJL-7F7-|||F7F7F-J||F777|F-L|.|
|
||||||
|
7.FJ.LLFF-7-|-F-7L7LJF-JL---JF7F----7L-JLJLJFJ|F--JF-7-L-J||7LJF7L7FJLL-JL-JLJ||FJL----7FJ|L7F7LJ|LF------7F7F7F7LJL7||LJ||||LF77|L77J|FJLF7
|
||||||
|
F-J.-7F||.L7|FL7L7L--JF7F--7L||L---7L--7F--7L-JL--7|FJF-7FJ|F--JL-J|F7|F--7F--J||F7F---JL-J-LJL-7L7L-7F--7LJ|||||F-7LJL-7LJLJFJL7|FJ|LJ77.FL
|
||||||
|
LL77FLFJF7J|L7LL7L---7|||F7L-JL---7L--7|L7.L------J|L-JFJL-JL7F-7F7LJL7L-7LJF7FJ|||L7F-7F-7F7F7L|FJF7LJF7L-7LJLJ|L7L7F-7L7F-7L7FJ||.FJL-77L|
|
||||||
|
FJJL--7-JJFJJF77|F7F7LJLJ|L7F--7F7L-7FJL7L-------7-L7F-JF----J|FJ|L7F7L7FJF7|||FJ||FJ|FJL7||LJL-JL-JL7FJL-7L---7L7L7|L7L7LJFJFJL-JL7|||.L7.F
|
||||||
|
7LF-7F7F|F|-FJL7LJLJL7F7FJLLJFFJ|L-7LJF-JF7F7F---JF7||F7L---7FJL7L7||L7||FJLJLJL-J|L-J|F-JLJF7F7F---7|L--7L--7FJ-|FJ|FJ.L-7L-JF---7L-7--7.LJ
|
||||||
|
L-7LLFLJLL|-L-7L7F-77LJLJF77F7L-JF7L-7L--JLJLJF7F7|||LJL7F-7||F7|FJ||FJ||L7JF--7F-JF-7|L7F-7|LJ||F--J||F7L--7|L-7||7|L7F-7L--7||F7|F-JJ-J-L-
|
||||||
|
7FJ.J|LJJF--JLL7LJFJF----JL-J|F7FJL--JF7|F----JLJLJLJF-7LJFJ|||LJ|JLJL-J|FJFJF7LJF7L7||FJ|FJ|F-J||F-7L-JL---JL7FJ|L7L7||FJF-7|L7||LJ7FF7..FJ
|
||||||
|
F|FFJ|7L-7JF.FJ|F7L7|F---7F-7LJ|L-----JL-JF7F--7F7F--JLL7FJ-LJL-7L7-F7|FJ|.|FJ|F7||FJLJ|FJL7|L7FJLJ-L-------77LJFJFJJ|||L-JFJL7LJ|F--7|J-7JJ
|
||||||
|
LJ-..||.J|FFF7FJ|L7|LJF-7LJFJF7L7F----7F--J|L-7|||L----7|L7|J|F-JFJFJL-JFJFJL7LJ||LJF-7LJF7LJ|LJJF----------JF-7L-JF7LJ|F--JF7|F7||F-J7|-||7
|
||||||
|
J.L7L-F7LLFFJ|L-J7||F7L7L-7L-JL7|L---7|L--7|F7||||F----JL7|F7FJF7L7L7F-7|||F7|F-JL7F|FJF-J|F----7L--7F7F-7F7F|FJF7FJ|.FJL7F-J|LJLJ||L|JL7F-7
|
||||||
|
.F7J|LJ|7.FJFJJ7LFJ|||FL-7|F7F-JL----JL---J||LJLJ|L-----7|LJ|L7|L7|LLJFJL7|||||F--JFJL7L-7||F--7|JF7LJLJFLJL7||7|||FJFJF7LJF7L7F7FJL7F77|LJ|
|
||||||
|
FL7FL7.FJ7L7L-7FFJFJ||F--JLJLJF-----------7|L-7F7L-7F---JL--JFLJ-LJ-L-L7FJLJ||LJF7F|F7L--J|LJF-JL7||F7JF7F7FJ||FJLJ|FJFJL7FJL7LJLJF7LJ|-FF-.
|
||||||
|
7L77F7JJ.F-JF7L7L7|FJLJF--7F-7L7F---------JL-7||L-7|L-----77FF77||JJ-LLLJ.|-|L7FJL-J||F7F7L-7L--7LJLJL-J||LJ7|LJF--J|FJF7|L-7|F---JL--JFF|J.
|
||||||
|
J-|J-F7L-L--JL7L-JLJF7FJF-J|-L-JL--------7F7JLJ|F-JL7F----JF7||-|..|-FJLJ-L-L7|L-7F7|LJLJL-7L-7FJF-7F7F7LJ7F-JF-JF7FJL-J||F-J|L---------7-7|
|
||||||
|
.L|JFL-7L||F-7L-7F7FJ||7L--JF7.F--7F7F7F7LJL7F-JL--7|L7F7F-JLJL7F7--.LJ-|.FLLLJF7LJ||F-----JF7LJFJ.||LJL---JF7L--JLJF-7FJ|L7LL7F-7F-7F--JF7|
|
||||||
|
7.JFJLF|LF7L7L7FJ||L7||F----JL-JF7LJLJLJL---J|F7F7FJL-J|LJF7F7FJ||LL7L7FF-----FJL7|LJL--7F7FJL7FJF-J|F7F7F7FJL7F7F--JJLJ-|FJF7|L7LJFJL-7.|JF
|
||||||
|
F.FFJFLJL|L7L7|L7||FJLJL--------JL-----7-F7F7||LJ||F7F7|F-JLJLJ-|||.L|F|7-|-|.|F7L7F7F-7LJLJ-FJ|FJF7||LJLJLJF7|||L------7LJF||L-JF7L--7|777|
|
||||||
|
LFJF-L-|FL7L-JL7LJLJF------------------JFJ||||L-7LJ|||LJL-7F7JF-J|77.|-|LF--|FLJL7|||L7L----7L-JL-JLJL------J|||L7F--7F-JJF-JL---JL-7|||7.7J
|
||||||
|
F|LJ7-FJFLL--7FJF7F7L----7F-7F7F7F--7|F7L7LJLJF7L-7|LJF---J||7L7FJJL|J-|F|..|F7F-J||L7L7F--7|F-7F-----7F7F7F-JLJFJL-7|L7-FJF7F-7F---JF|L7-7|
|
||||||
|
-JF.|-J.F7F--JL7||||F7LF-JL7LJLJLJFFJFJL-JF7F7||F-J|F7L----JL--JL77-LLFJ-.--FJ|L-7||FJFJ|F-JLJFJL----7LJLJLJF7F7L---JL-JFJFJLJ|LJ-J-L-L-J7.L
|
||||||
|
LF-7||LF||L---7LJLJLJL7L7F-J|F-----J7|F---JLJ|||L--J||F7F7F7F7F7FJ7J7|FJL77FL7|F7|||||L7|L7F-7|7F--7LL------JLJ|F7F7F7F7|FJF7|F-7F|77.L.F|7.
|
||||||
|
F||FF|-FJL7|F7L------7L-J|F-7L-------JL7F---7LJ|F-7FJLJ||LJLJLJ||JJ-L-J||F||FJLJLJ||L77LJLLJFJL7L-7|F-----7F7F-J|LJLJLJ||L7|L7|FJF77F777FF--
|
||||||
|
.J.L-J7L-7L-JL----7-FJF7FJL7L-7F-------J|F--JF7LJ7|L-77|L---7|FJ|.|F|7|FFFF7L----7||FJF7JF7FJF7|F7||L----7||||F7|F-----JL7||FJ||L|L7F7FL7L|J
|
||||||
|
FLJF--JJFL-------7|FJFJLJF7L-7LJF-------JL---JL--7|F7|FJF-7FJFL-JFFF7LF-F-JL7F---J||L7||FJLJFJ|LJLJ|F7F7FJLJLJ|||L--7F-7FJLJL-JL-JFJ|L7JJFJ.
|
||||||
|
F.L||FFFLF------7||L-JFF-J|F7L--JF---7F-7F7F7F-7FJ||LJL7L7|L7F-7-L-LJLJLL--7LJF--7|L7|||L-7FJFJF7F7LJLJ|L7-F7J|||F--J|FJ|F--------JJ|FJ.F--|
|
||||||
|
FJ-L7-F7JL-7F7F7LJL7F-7L-7LJL--7.L--7|L7||LJ|L7|L7|L-7FJFJL7|L7|.L7||-7LLF7L--JFFJL7|LJL--J|FL7|LJL7F-7L-JFJL-JLJ|-F-JL-JL---7F7F7F7||F7J-||
|
||||||
|
F-77JJF----J|||L7F7|L7|F7L----7|F---J|FJLJF7L-J|FJL7FJL7|J-LJL|L7J7FJ|-LL||F-7F7L-7LJF--7F-JF7LJJF7LJ7L---JF-7F-7L-JF7F---7F7LJLJLJLJLJ|F-J7
|
||||||
|
-7F7|.L-7F7FJLJFLJ|L-J|||F----J|L---7|L--7|L--7|L-7|L-7LJF-77L|FJ-F-7F7..||L7LJ|F-JF7|F7||LFJL7F7|L--7F---7L7|L7L--7||||F7LJL--7F------J7|||
|
||||||
|
FLF-77LLLJLJF7F7F-JF-7|||L--7F7L7F--JL7F-J|F--JL7FJL--J||L7|F7|L-7L7|||F7|L7|F7||F7|LJ|LJ|FJF7LJ|L--7LJF-7|FJL7L--7LJ|L-JL7F--7LJLF7F7||.-F-
|
||||||
|
F--JL|F7|JJFJLJLJF-JFJLJ|F7LLJL7|L---7LJ-FJL---7|L-7F---7FJ||LJF-JFJLJ||LJFJLJ||LJLJF-JF7|L-JL-7|F7JL-7|FJLJF7L---JF7|F--7LJF7L--7|LJL777L|J
|
||||||
|
|.L|7F-JJ|-L7F7F7|F-JF-7LJ|F---JL----JF-7|F----JL-7|L-7FJ|FJL7FJ.FJF--JL-7|F7FJL7FF7L--JLJFF-7FJLJL---J|L---JL--7F7||LJF7|F-JL--7LJF--JL7FL7
|
||||||
|
.JLFFF7.LFF-J|||LJL--JFL-7|L---7F--7F7|FJ|L-7F--7-LJF-J|FJL7FJL-7L7L-7LLFJ|||L7FJFJ|F--7LF7L7|L7F-7F-7FJF------7LJLJL-7||LJF7F7FL--JF-7.F--J
|
||||||
|
..F-FJL7||L--JLJFF-------JL-7F-J|F-J|LJL-JF-J|F-JF-7L-7||F-JL7F-JJ|F7L7FJFJ||FJL7|FJL7FJFJL-JL-J|FJ|FJL7L--7F7.L--7F-7LJL7FJLJL-7F7FJFJ-LJ.L
|
||||||
|
--LJL7FJF----7JF7L-7F-7F-7F7|L--JL--JF7F-7L--JL--JFJF-J||L7LFJL7F7LJ|FJL7L-J|L7FJ||F7|L-JF7F---7|L-JL--J|F7LJL---7|L7|F-7LJF---7LJLJFJF7JFJ7
|
||||||
|
|.|||||-L---7|FJL7FJ|FJL7||||F7F-----JLJFJF--7F---JLL-7|L7L-JF7|||F7||F7L--7L7|L-JLJLJF-7||||F-J|F--7F---JL-7F---JL-J|L7|F7L--7L7F7FJL||.|-7
|
||||||
|
|7.-FJL7..F7||L-7|L7||F-JLJ||||L------7.L7L-7|L---7.F7||FJF--JLJ|||LJ|||F7FJFJL---7F7FJFJ||L7|F-JL-7|L-----7|L------7|FJ|||F7FJLLJLJ||||-7||
|
||||||
|
L-7-L-7L--JLJL7FJL7LJ||F-7FJLJ|F7F---7L-7|F7||F---JFJ|||L7L7F7F-J|L-7LJ|||L7|F7F-7|||L7L7|L7|LJF---JL-7F---JL-------JLJ-LJLJLJF7F-7F7FJ|-JF7
|
||||||
|
.LLFJJL7F-7F-7LJF7L-7LJL7LJF-7LJ|L--7|F7||||||L---7L7|||FJFJ|||F-JF-JF-J||FJ||LJFJLJL-JFJ|FJ|F7L-----7|L----7F-7F7F-----------J|L7LJLJFJ7F-L
|
||||||
|
L.L.L7LLJFLJLL7FJ|F-JF7FJF-JLL-7L---JLJLJLJ|||F7F-JFJ|||L7L7|LJL-7L-7L-7||L7||F-JF7JF-7L-JL7|||LF----JL-----JL7||||F--7F-------JFJF7F-JJJLJJ
|
||||||
|
|7.FLF7F---7F7LJFJL--JLJFJJF-7FJF7F-------7|||||L-7L7LJ|7L7LJF7F7|F7L7FJ||FJLJ|F7|L7L7|F7F7LJ|L7L--7F7F7F7F---JLJLJL-7|L--------JFJ|L--7|FL7
|
||||||
|
LL-F7|LL7F7LJL-7L---7F-7L-7L7LJFJLJF------JLJLJL--JFJF7|F7|F-JLJLJ|L-JL-J||F--J|LJFJ-||||||F7L7|.F7LJLJLJLJF7F7F--7F-JL-7F7F7F--7|-L7F7|JJ-|
|
||||||
|
77--JJ-LLJ|F7F7L----J|FJF7|7L7FJJF-JF7F7F--7F7F7F7LL-J|LJLJL7|F7F7L-----7||L7F7|F-JF-J||LJLJL7||FJL--------J|||L7FJL---7LJ|||L-7|L7LLJLJ7LF-
|
||||||
|
|-7JL|.F|JLJLJL7F7F7FJL7|LJF7LJF-JF-JLJLJF-J|||LJL-7F-JF7F7FJFJLJ|F-7F--JLJFJ||||F7L7FJL--7F-J||L----------7LJ|FJL--7F7L-7|||F-JL7|.LLL-|.|J
|
||||||
|
JJF7JFLJ||F----J|LJ||F7||F-JL-7L7FJF----7L-7|||F---JL--JLJ|L-JF--JL7|L--7F-JFJ||||L-J|F-7FJ|F7||F7F7F-----7L-7||F--7LJL-7||||L7LLLJ--7|F-7L.
|
||||||
|
||L7.|7|FFL-----JF7LJ|||||F--7L7LJFL---7|F7LJLJ|F-7.F7F7F7|F-7|F7F7||F7FJL7-|FJ||L--7||FJL7|||||||||L----7L--JLJ|F-JJF-7|||||FJ77-JF|77|LJ7J
|
||||||
|
7-FJFF-LLF-------JL--J|LJLJF7L7|F7F----JLJL----JL7L7|||||||L7|LJ||LJ|||L-7|FJL7||FF7|LJ|F7||||||||||F---7L--7F7FJL---JFJLJ||||F-77.JJL|7LJ7.
|
||||||
|
L7|F-F--LL7F-7F-7F-7F7|F7JFJL-J|||L----7F7F7F-7F7L7LJ||||LJFJL--JL-7|||F7|LJF-J||FJ||F-J|||LJ||LJLJ|L--7L---J|||F---7FJ7LFJ||LJFJ7FL7L||7JL-
|
||||||
|
|FL.L|.F-|LJLLJFJ|FJ||LJL-JF--7LJL-----J|||||FJ|L7|F-J|||F-JF7F7F7FJ||LJ||F-JJFJ|L7||L--J||F7|L---7L7F7L---7-|LJL--7LJF7LL-JL7FJJ.LFFF-JL...
|
||||||
|
FJJ77LF--7F|LLLL-JL-JL-7F--JF-JF--------J||LJ|FJFJ||F7|||L-7||||||L7|L-7LJL7F7|FJ7|||F---JLJ||.F77|FJ|L---7L-JF7F-7L--JL-7-LL||L|7F-|LLL7..F
|
||||||
|
LJJ||JJLJ|F7.|F-------7LJF7FJF7|F--------JL-7|L7L7|||||||F-J|||LJ|FJL-7L-7FJ||||F7|||L7F7F7FJ|FJL7|L7|F7F7L---JLJJ|F7F---J7.F||F|LF-|7JF---7
|
||||||
|
.|LFJJFLF|-|7LL--7F7F7L--J|L-JLJL--7F7F-7F7FJL-JFJ||||||||F7||L-7|L--7|F7||FJ||LJ||||FJ||||L7LJF-J|FJLJLJL-------7LJLJ7FF---7|L7|F|-FJL|JF||
|
||||||
|
F-L|J7F--|F77-|F7LJ||L7F-7L7JF7F7F7|||L7|||L---7|FJ|||||||||||F7||F--J||||||FJL-7||LJL7|||L7L-7|F-J|F7F7F-7F-----JF7F7F7|F--JL-JF---L7|.||F7
|
||||||
|
|F7-7F|L|L-L7-FJL7-LJLLJ.L7L-JLJLJLJ||-||||F7F7||L7|||||||||||||||L-7FJ||||||F7J||L--7||||FJF7||L-7|||||L7|L------JLJLJLJ|LL|FL--.F-L-|-LJ|J
|
||||||
|
.||F-||-FJ7L--|F7L--7F--7FL7F7F-7F-7||FJ||LJ|||||FJ||LJ|||||||||||F7||FJLJ||||L7|L7F-J|||||FJ|||F7|LJ|||FJL7F------7F7F-7L7.L|F-FJ-|LLLFJ-.J
|
||||||
|
F|F--F7F|-J.|7LJL7F7|L-7|F7||||FJ|7||||-LJF7||||||FJ|F-J|||||||||||||||F7FJ|LJF||FJL-7||LJ||FJ|LJ|L7FJ||L-7LJF---7LLJLJ-L-J7|||.L7.7|..L|..|
|
||||||
|
7-J|F|F7|L|.LLF-7LJ|L-7|||LJ|||L-JFJ||L---J|||||||L7|L-7|LJ||||||LJ|||LJ|L7L7FFJ|L-7FJ|||FJ|L7L-7|FJ|FJ|F-JLFJF7FJF7F7JF7F7F--7JJ7F|-J7F|.FJ
|
||||||
|
F7L|7JLL7-77F7L7L--JF7LJLJF-JLJF-7L7|L7F---J||||LJ-||F-JL-7LJ||||JFJ|L7FJFL7L7L7|F-J|F|L7L7L7L7FJLJFJL7|L---JFJ|L-JLJL7|||LJF-J.FJLJL|7F-|--
|
||||||
|
L7F|.F|JL7|7LL.L-7F7|L-7F7L--7LL7L-J|FJL--7-LJLJ.F-J||F7F7L7FJ|LJFJFJFJ|F--JFJFJ||F7L7|FJFJFJFJL--7L-7||F7F7FJ-L------J|||F7|7-LF|7LF-JJ-F7|
|
||||||
|
7||-|F|F-JLJJL7LFJ|||F-J||F--JF7L-7FJL7F--JF7F7.FJF7|LJ|||FJL-JF-JFJJL7||F7FJ-|FJLJL7||L7L-J|L7F-7L7FJ|LJ||LJ7JF7JF7FF7||||LJJ7L|J.|L7.||L|J
|
||||||
|
L|JL7--J|7.FF7.FL-J||L7FJ|L7F-JL--J|F-JL---JLJL7L7|LJLFJ|||F-7JL7FJF7FJ||||L7FJ|F---J|L7L--7F-JL7L-JL7|F-JL7F7FJL-JL7|||LJL-7JJ|F-L-J-L7FJLF
|
||||||
|
LJJFJ-F-7F-7FL-LF--JL7|L7L-JL--7F-7|L7F-7F-7F7FJ||L7F-JFJ|LJFJF7|L-J|L7|LJ|FJ|FJL7F7FJJ|F--JL7F-JF--7LJL7F7LJLJF-7F7LJLJF7F7|7JFJF|-|JL7L7FJ
|
||||||
|
LF|7..LF|F-FF7.LL-7F7|L-J-F7F7FJL7||FJ|FJ|J||||F-JFJL-7|.L7FJ7|LJF7FJFJ|F-JL7|L77|||L-7LJF---JL-7|F7L7F-J|L7F7FJ|LJ|F-7FJLJ|L7-|7F-J|.FJ.L77
|
||||||
|
FFJ.|JFF|.--JF.7JLLJLJ7F--JLJLJF7|LJL-JL7L7|||||F7L-7FJL-7|L7FJF7|||FJFJ|F7FJ|FJFJ||F7L-7L7F7F-7LJ|L7|L-7|7|||L7F-7LJF|L-7L|FJLL7FJ-|J-JFLJJ
|
||||||
|
-J7|J|--J||LLF.|L-JF--7L----7F7|LJ|F77F7|FJLJLJLJ|F-J|F7FJ|FJL7|||LJL7L7|||L7||FJFJ||L7FJ7LJ||J|F7L7LJF-JL7||L-J|FJF7FJF7L7||.|L|.LFJJ.F7LFJ
|
||||||
|
|L-7FJ..F-777.77FJJL-7L7F7F7||||JF-JL-JLJL----7F-JL-7|||L7|||FJ||L7F7|FJ|||FJLJL7L7||FJL-7F-JL7||L7L7FJF7FJLJF7-|L-J||FJL-JLJFFF77LFJFF7J-J7
|
||||||
|
77JLJJL77L|77-|LLJ.LLL7LJLJLJ||L7L7F---7F-7F--JL-7F-JLJ|FJ|L7|FJ|FJ|LJL7|||L7F--JFJLJL7F-JL-7FJ||7|FJL-J|L---JL-JF7FJ||F7F--77L7J7LL-7F|-7-F
|
||||||
|
.7L7.FLL|-F7J.|-.|7.|-L7F7F-7||FJFJ|F--J|FJL---7FJL7F7FJL7L7|LJFJ|FL7F7||||FJL7F7|F---JL7FF-J||LJFJL-7F-JF7F-7F7FJLJF|LJLJF-J-JL7|7JF-7L-L-J
|
||||||
|
.77L-|7FL7L777J|7F-.FFFJ|LJFJ|||LL7||F7FJL7F7F7||F7LJ|L7FJFJL-7L7|F-J||||||L-7LJLJL7F7F7L7L-7L--7|F--JL7FJ|L7|||L---7|F7F7L77--7|JF7L7J|J7L-
|
||||||
|
F||7FJ.L.L7.J7-7|J-LFFJFJF7|FJ||F-J||||L-7||LJLJLJ|F-JFJL7L7F7L7|||F7|LJ|||F7|-F7F-J|LJ|FJF7L7F7||L---7|L7|FJ|S|F--7|LJ||L7L7JF-7---L|LFFJ7|
|
||||||
|
-7L-L.FJ.F77JF.|JJFLLL-JFJLJL7LJ|F7|||L7FJ|L-7JF--JL-7L7FJFJ||FJ|||||L-7|||||L-J|L-7L7FJL-J|F||||L7F--J|FJ||L|||L-7|L-7||FJFJ7F-|7L7F-F-J-J7
|
||||||
|
FL.|-L77F7LJ.L.|F-7-|F-7L-7F-JF-J||||L7|L7|F-JFJF7F7FJFJ|FJFJ|L7||LJL7FJ|||||F-7|.FJFJL7F--JFJ|||||L--7|L7|L7LJ|F-JL7FJ||L7L77L-FJF|J-L7F--7
|
||||||
|
-77||7|7J|JLJ|.LL7|F-L7L--JL-7L-7||||FJL7||L-7|FJ|||L7L-JL7|-L7|||FF7|L7|||||L7LJFJFJF-JL-7FJFJ|L7L7F-JL-JL7L7FJL--7||JLJJ|FJJ7-JFL|JL|-LJ7|
|
||||||
|
F|J|FFJ.F|.F-FJ-LJL-J.L---7F7L7-LJ||LJ.FJ||F7||L7|||FJF---JL-7||||FJLJFJ||||L-J|FJFJLL7F7FJ|FJFJFJFJL---7F-JFJL-7F-JLJF||.LJJL7.|7-|LLF7LF-J
|
||||||
|
F|-LF-7F|F-J-JF-7LFJ7FF---J||FJF--J|F--JFJ|||||FJ||||-L--7F7FJLJ||L-7FJ|LJLJF7F7L7|F7FJ|LJFJL7L7L7L-7F7FJ|F7L-7-LJJ|-J-F7JJ7.|L.FJF--FJ-.J.J
|
||||||
|
L|.LLJF|.F|J7L|J|7.|7FL-7F7|||FL7F7|L7F7L7LJ||LJFJ|||FF7FJ||L--7||F-J|F7F-7FJLJL-JLJ|L7|F7|F7L7L7|.FJ|LJ|LJ|F7L---7||7.|J|7L77.FJJL7|FJ|.|7|
|
||||||
|
FJ-7.FJ.--JF7J|7L-|-7-J.LJ|||L7|||||FJ|L7L7FJL7JL-JLJFJ|L7||F--JLJL-7LJ|L7LJF7F7F7F7|FJLJ|LJ|FJFJL7L7L--7JLLJ|F-7FJ-.-FJ.J7F--7|.F-L-|F7.F-L
|
||||||
|
|L7F7|J7.|7F77L-7LJ.F-|-||LJL-JFJ|||L-JF|FJL7FJJ|||.FL7L-J||L--7JF--JF7L7L7FJLJ||||LJL7F-J7FJL7L7FJLL---J-.LJ|L7||.|7L|LLF-7|-LL.LFJLJ-|7LJL
|
||||||
|
F-J.FJ.J.FJ7|FJ.777--7JF.JJ|J.LL-J||F---JL-7||JF--J.F-JF-7||F7FJFJF7FJ|FJFJL7F-J||L7F7|L--7L7FJ|||LF--7J|JFJLL7|LJ777-|.L|J-J.LJ7L-7-LF7FJ-7
|
||||||
|
F7F|L|-FFJJ.L---LJ-7FLFJL77F---JJLLJL-7F7F-JLJ.||.|-L7FJFJ|||LJFL7||L7||FJF-J|F-JL7||LJF7FJJ||F-JL-JF7L---77-L||J-JJ7J.77L-FL.J.|J|77.JJFJF-
|
||||||
|
FJ7L--77L--7L|77LJLL-JLFJF--7-|JJ|LL-LLJ|||||.JF|FF7LLJFJFJ|L7||J||L7|||L7|F-JL--7LJ|F7|LJJLLJ|F7F-7|L7F--J|LLLJFJJ.L..7JLF-.7LL.FFJ77||J.|.
|
||||||
|
L-|.|7LJF|F|-FF7FFJJ|J.L--FJJ.||FJ|LJ|LJ||7-LJLJ.JLJ7-LL7|LL7|J-FJ|LLJLJFLJL7F7F7||FJ|LJFLJJF-J|||-|L7||7|L|.|L7-7|F|-LJ.FLJF|7LFFLJ-777-|.|
|
||||||
|
|JL77-LJF-7L-J|LJF|-|.F77|LLF-|-LLJJ.L..LJJ.|.L|7J|L-7JL||JLLJ-LL-JJ|LJ-LLF-J|LJ|L7L-JFJJ|FFL7FJ|L7|FJLJ--LJ-JJ||---7FLJL7J||J|L7JF|F-FJ-L-L
|
||||||
|
|J|.L7|7.L|FLFLL-L.||..J7-7.L-|7L7LF|LF77.F--7|L|LFF|..LLJ7LLJJ.L-JF|J.LLLL--JJL|FJ-|---LL--.LJFJFJ|L7.L.FL|-|.LF7L--JJ|.L-J|-|-J.LJL-77|..|
|
||||||
|
|-J7LJ|FL7.F.|JL77LFL7.L|L--7LL|7|L-JF7JL-||L-7.LF|-777.|J77|J.F|J.7J-F7L|.F|..FJL-7J.|.7.LLFJ-|FJFJFJ7L-7.|.7-JJF.FFL7-LJ-F|77JF7-F|L-777.F
|
||||||
|
77JF.||77.J-.|--J77|L7.F7J7|LFLLF|7J7.|F|.J7.L|.-|J|JFFJ.||LJ7FFJ-7L7FFF.L7F-F7L-7FJ77|.LJ.FJ77LJ-L7L7.LL--J.|7F7L.FJ||.|L7-L.JFJ77|LJL--L.L
|
||||||
|
|F-|FFL7-.|F7-7.LL|-J|LLJ-F-FJ7-LJJF-7FL7.FL7F-7---J--.LLL-7F7L||.|JFLJJ.|--.|L7.LJF--J-7.FF--7.L|FL-J7.LLL-FLL--7F7LLL-JFJ7|.|FLLJ7|LLJJJ..
|
||||||
|
|JJ|LL7JF--LJ7LF7|L|||JJ|-7J|7L.LJ-7.-7FL-LJ-7JJ.LFJ.LL-|FF|LJF---JF-7.7JJ..7-.J-FL|J-J.FJ--7JJ-7||-JJ---L|.LJ|.F|L77J||LJ.FL--J.FJLF7.|F7FF
|
||||||
|
L|L|.LLL-JL|.|-777-L77J.L-LL|7L|.L7J-L.FL-J.LJL7J-7J-L.LL-77.7-JFJL--|7L|J.--J.LJL-JJ.F7LJ.LJ.L----JLJJ.FJ|...7J-L-L7L|-7L7-LFJJ-|J--|7JLL-L
|
||||||
140
data/11.in
Normal file
140
data/11.in
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
..................................................................................................#..................#......................
|
||||||
|
............#...............................................#.........#........................................#............................
|
||||||
|
........................#................#.........#....................................................#......................#.......#....
|
||||||
|
....#............................................................#.............#............................................................
|
||||||
|
...............................................#....................................................#.......................................
|
||||||
|
...........................#..........................#.....................................................................................
|
||||||
|
..................................#...................................................................................#............#........
|
||||||
|
...................#.....................................................#....................................................#.........#...
|
||||||
|
.......#.................................#.......#...........#...............................#.............#.....#..........................
|
||||||
|
............................................................................................................................................
|
||||||
|
....................................................................#.........#........#....................................................
|
||||||
|
.#........#.....#.......#..............................................................................#.........................#..........
|
||||||
|
............................................#...........................................................................#...................
|
||||||
|
.......................................#.......................#............................................................................
|
||||||
|
.......#....................#............................#......................................................#...........................
|
||||||
|
.............#..............................................................#.....#......................#.................#................
|
||||||
|
...........................................................................................#................................................
|
||||||
|
.........................#............................#.....#...............................................................................
|
||||||
|
...................................#...................................#....................................................................
|
||||||
|
........................................................................................#............................#................#.....
|
||||||
|
..............#......#........#.........#.........................#................#........................................................
|
||||||
|
....#...........................................................................................#........................#..................
|
||||||
|
............................................................................................................................................
|
||||||
|
............................................................#...............#...........................#........................#..........
|
||||||
|
...................................................#.............................#.................#........................................
|
||||||
|
..#......................................................................................................................................#..
|
||||||
|
...................#....................#..............................#....................#...................#.........#.................
|
||||||
|
.......................................................#....................................................................................
|
||||||
|
......#.............................#..............................................#........................................................
|
||||||
|
...........................................................................#....................#.........#.................................
|
||||||
|
....................................................................................................................#.......................
|
||||||
|
#............................#............................................................#...................................#.......#.....
|
||||||
|
...................................................#............#...........................................................................
|
||||||
|
........................#................#........................................................#......................#..................
|
||||||
|
.......#.......................................#.................................................................#..........................
|
||||||
|
...........................................................#...............................................#................................
|
||||||
|
..#.................................#................#.......................................................................#..............
|
||||||
|
.............#....................................................#.........................................................................
|
||||||
|
.........................................................................#.........#.....#..........................#...............#.......
|
||||||
|
....................#.......#..................................................................#............................................
|
||||||
|
..................................#............#...............#............................................................................
|
||||||
|
.#.......#.............................#....................................#...............................................................
|
||||||
|
.........................#...........................#.............#................................#..........#.........#..................
|
||||||
|
.....#.........................#............................................................................................................
|
||||||
|
...............#............................................#...........#...................................................................
|
||||||
|
....................................#............................................#.....#.................#..........#........#..............
|
||||||
|
............................................................................................................................................
|
||||||
|
.#................#.................................................................................................................#.......
|
||||||
|
.........................................#..............#......................................#.....#......................................
|
||||||
|
.....#.....#...............#................................................................................................................
|
||||||
|
.................................#.........................................................................#.............#.......#..........
|
||||||
|
.............................................................................#.........................................................#....
|
||||||
|
.......................................#.......................#............................................................................
|
||||||
|
.................#.................................#.....#..........#.....................#.....................#...........................
|
||||||
|
............#..................................................................................................................#............
|
||||||
|
#...................................#.......................................................................................................
|
||||||
|
........#..............#..............................#..................................................................#..................
|
||||||
|
............................................#..............#................#......................................#........................
|
||||||
|
............................................................................................................................................
|
||||||
|
...................#......#.......................#..............#..........................................................#.....#........#
|
||||||
|
................................#............................................................#..............................................
|
||||||
|
......#...................................#.......................................#...............#.........................................
|
||||||
|
.....................................#........................#.......#......................................#.................#............
|
||||||
|
...........#...........#...............................#.............................................................................#......
|
||||||
|
.#...........................................#.........................................................................#....................
|
||||||
|
............................................................................................................................................
|
||||||
|
..................................................................#...............................................#.........................
|
||||||
|
..................................................................................#.......#................#................#...............
|
||||||
|
.........................#.......#...........................................#........................................................#.....
|
||||||
|
.....#..............#......................#.........#......#.........................................#.....................................
|
||||||
|
.....................................................................................................................#......................
|
||||||
|
....................................................................................#.....................................................#.
|
||||||
|
.............#.......................#......................................................................................................
|
||||||
|
.#......................#....................#.....................#.............................................................#..........
|
||||||
|
..................................................#.........................................................#...............................
|
||||||
|
.................................#........................................#.................................................................
|
||||||
|
.....................................................................................#..............................................#.......
|
||||||
|
............................................................................................................................................
|
||||||
|
.......#..................#.............................#........................#.................#.................#....................#.
|
||||||
|
..........................................................................................#.................................................
|
||||||
|
....................................#..........................#.........................................#.....................#............
|
||||||
|
......................#...................#..................................#....................................#.........................
|
||||||
|
....#........#.............................................................................................................#................
|
||||||
|
...............................#...............#......................#...............................#.....................................
|
||||||
|
.........#.......#.......#..................................................................................................................
|
||||||
|
.#.....................................................#....................................#.............#...........................#.....
|
||||||
|
...........................................#......#......................#.....................................#............................
|
||||||
|
.............................................................#..............................................................................
|
||||||
|
.............................#......#..........................................#............................................................
|
||||||
|
....#..................#............................................#...............................#.......................................
|
||||||
|
.........#.......#.............................#.........................................#..................#........#............#.........
|
||||||
|
.......................................................................................................................................#....
|
||||||
|
#.............................................................................................#.............................................
|
||||||
|
...................................#..............................#......................................................#..................
|
||||||
|
............................#...........................#................#.............................#.......#..............#.............
|
||||||
|
................................................#.........................................................................................#.
|
||||||
|
........#.............#.....................................................................................................................
|
||||||
|
....................................................................#......................................................#................
|
||||||
|
............................................................#........................................#......................................
|
||||||
|
.............#...................#.................................................#........................................................
|
||||||
|
.............................................................................#.......................................#......................
|
||||||
|
.........#...................#........#.........#........................................................#..............................#...
|
||||||
|
.#....................................................................#..................................................#.......#..........
|
||||||
|
................#...............................................................................................#...........................
|
||||||
|
......................#....................#............#...............................#...................................................
|
||||||
|
......#.......................................................#...................................#.........................................
|
||||||
|
.........................................................................#......#............................................#..............
|
||||||
|
..........#.........................................................#.......................................................................
|
||||||
|
............................#.........#................................................................#............#.......................
|
||||||
|
.......................#......................................................................#.............#...............................
|
||||||
|
................#.......................................#...............................................................................#...
|
||||||
|
#..............................#.....................................................#......................................................
|
||||||
|
............#....................................................................................#..............#.......#...................
|
||||||
|
.....................#..............#............................#..........................................................................
|
||||||
|
....#.............................................................................#.......................................................#.
|
||||||
|
.....................................................................................................#.....#.......................#........
|
||||||
|
...............#..............#............#.............................................#................................#.................
|
||||||
|
...........................................................#.........................................................#......................
|
||||||
|
.....................................................#...........................................#..............#...........................
|
||||||
|
...........#...............#.......................................#...............#........................................................
|
||||||
|
................................#...........................................................................................................
|
||||||
|
................#.........................#...............................#.............#.......................................#.....#.....
|
||||||
|
...............................................................#.............................#........#...............#.....................
|
||||||
|
..#.........................................................................................................................................
|
||||||
|
............................#......#................................#.............#...............#.........................................
|
||||||
|
...........#.........#.............................#.........................................................#..............................
|
||||||
|
.....#...................................................#..................#..................................................#...........#
|
||||||
|
..........................................#..............................................................#..................................
|
||||||
|
.....................................#......................................................................................................
|
||||||
|
.......................#......#............................................................#.......................#........#.....#.........
|
||||||
|
.#........#.......................................#.........................................................#...............................
|
||||||
|
................#................................................................#..........................................................
|
||||||
|
.........................................#.............................................#....................................................
|
||||||
|
...............................................#.......................................................................#........#...........
|
||||||
|
............................................................................................................................................
|
||||||
|
..............................#.........................#......#....................#.......................................................
|
||||||
|
.............................................................................................................#..............................
|
||||||
|
.................#.......................................................................................................................#..
|
||||||
|
........#................................#.........................#............#.........#......#........................#.................
|
||||||
|
........................#...............................................................................#...................................
|
||||||
1000
data/12.in
Normal file
1000
data/12.in
Normal file
File diff suppressed because it is too large
Load Diff
1295
data/13.in
Normal file
1295
data/13.in
Normal file
File diff suppressed because it is too large
Load Diff
100
data/14.in
Normal file
100
data/14.in
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
O#O#O#O..OO....#O..........#.#OO..........#..#....O.........O#...#...OOO.O.#.##...#.#..##..O.....#..
|
||||||
|
#.#....O..O...#..O...O.##.OO....#.#.O..#.OOO.O....#..#..OO......O#...#.#.#O.O..#OO..O.....#.##O...O.
|
||||||
|
###O#O#O.O#..OOOO.........#.#.O#.OO..#.##.#..O....O....#.O.#..O..O####.#..O#...O....OO..#O.....OO..#
|
||||||
|
.##.O#.......#....O#.......O.......OO......#...OO#..#####.O.......OOOO###O............#O..#O#.....O.
|
||||||
|
....O..#.#.#...O......O........O#..O..#O.#O...#O.#O...O#.#...#.O....##.OO.#...........#O.#O#...O....
|
||||||
|
O...O..O.....#..O.#...O.OO..##..#OO...O........O.O.......O.#O.#..O......O#.......#O.....O.#....#..O#
|
||||||
|
.....O.OO..OO.....O##.....O.#........##.O.#..O..#OO...#.#..#....#O..#.OO...OO#...#..O.....#OO..#.O..
|
||||||
|
#..#OOO.O.....OO...O##..........###..##.O#...O.O...#..O#...........OO..#O..#..O#O......O#.#....#.O#O
|
||||||
|
..#O...#.#OOO..#O.O..#O..#....O......O.O...O##O.....................O..##....#...O...#..#......#....
|
||||||
|
.#...#.#.#O.O...#.O.#.#O.......#.....O.#.....OO....O.OO.#OO.#...OO..O.O#.OO.O...##...O..#...O#..O.O.
|
||||||
|
....OO#...###...##O...O.#..OO#..#.......O#....#.#.#..O..O..O......O.....OO#O..#...#....#.#O..#O.....
|
||||||
|
.OO....O..........O..##.OO#O.....O#.O..O.O...........##O..O......OO.O...O#.#.#.#O...##....#O..O..O.#
|
||||||
|
...O#.....O....#.........OO........O#.#O....O......O....#..#.##.#.#O##.#......#...OO.#....O.......#.
|
||||||
|
..#.O...#..#...O...#.#.........OO.........O#......###.#.#.O.O..O..O.#O...O#O.#....O..O...O.#......O.
|
||||||
|
..#.............#OO.....##...#O....O...#...O....#O..#O...#.#.O..O#.#.....#O#.#O#....#...O...#..###..
|
||||||
|
#..O.OO...O.......O..O.O..#...O.....O..#.O##....O#.#......#..###.......O.O..#O....O##.O......###...O
|
||||||
|
....O..O#OO.O#......OO...O#.O...##...O.###.#O.O.O..#.#O...O....OOO.O...O...#....OO.O.##.....O#O##...
|
||||||
|
#...#OO......O............#.O..#O..OO.O#.O.O...O.....O..O.OOO..O...#......O............O.#..####O...
|
||||||
|
#..#....O....O..#O.......#.OO#......##....O...#....O#...#O....#...#....O...O....O#O...O.#.O........#
|
||||||
|
...O........O#....O.#O......#.##....O#.#.O...##O.##..#.....#....OO..OO.....#.#.#####......#.O.......
|
||||||
|
.#O......#..#O#..O.##.....#.......OO###....O#..O##.O#OO.#.#.OO##.OO.#....#.#.#.....OO....#O#...O....
|
||||||
|
OO..O.#OO....#...#....#..O.OO....O...O#.....O...#.O.O....O.O...O###....O.O..O.#.O.........O#....O#O#
|
||||||
|
.O..OO..##.O.#OO.OOO#........#.OO#....O..#O...O#.#....O.O.##O..O.O...O#...........O...O.##O.##....O#
|
||||||
|
....#...O.#.....O#..#.#...O.OOO.#.....O..O.#O...#O....O.O#.O#.O....#O#......##......O.#.....O...OO#.
|
||||||
|
..#..O.....O.....#..O...O...#.....O.O.O...OO.O####..O#.##..O#...#..O#..O...O.###..#......O.O.....#..
|
||||||
|
..O..O#.......OO.#.O.O#.#O..OO..O..#O....#......O.......OO#...#.#.......OOO##....O....O.....#O#..#.O
|
||||||
|
O#..O.O.......O#.OO....O...#OOO.#O#O.O#....O####.#......#.......O....#O#..#.#.....O..O.#.#O..#.O..OO
|
||||||
|
#..#.#.O.O..O...O.........O.#.O...OO.....#..#...#...O..OO.O..#...#..O.O.O....O#..O....#O#..O#.O.##..
|
||||||
|
#.......##..O.O..###O.OO....#OO.#O..O..#.O..####O#.O......O...O#........#.#.O.O.#...##.OO..##...#O..
|
||||||
|
OOOO#O...##...#.......O....O..OO.O##..O#.O.......O#....O##.O.....O#....O..O.....#.......O#....OO#...
|
||||||
|
O..#.O#.#.OO..OO.OO..OO..O#...O#.O.....O........O.......#..#..#..O.OO.........O.O.....O.OO...O..O.#.
|
||||||
|
....OOO......OOO..#....#.O..O#...O....##...O...O##O..#O.#.OO.O.....OO.O#.#...OO..O...##......#..O.#O
|
||||||
|
.#....#.O.#...O.O.O#...OO..O.#.............OO.#..........O....#..OO#.#.O....OO.OO##.O...##....OO..O.
|
||||||
|
...OO...O#O#O......##..O.OOO..O.#..O..O#.O#O....#..##..#....O.#.O..OO.O.....#O.O..#.O..#...#.O.#....
|
||||||
|
O....O.O.....O.O....#.#..O.OOO.O..#....OO.O..O#OO..O#..#.O.O......O.O..O#O..O.#.#...O...O..###.O....
|
||||||
|
........#.O.O#O#O..#...#.O.O..#.OO.#...O.......O....O.O#....O....O.O..O#..O#....O.....#.O....#O.O.O#
|
||||||
|
...##.O##..O.......O.OO..#O......O...............#.OO.....OO#....#..OO..O...O..#OO..O..O..##....OO#O
|
||||||
|
.##.#.#O.......O..O...O...OO...O#....##.#OO..O.....#OO.#.OO.....O..#.O.#......O.O.#.O...#....#.O#...
|
||||||
|
...O.####.#O#..O..OO.O..OOO#.#O..#O.O#.#O..#.#...#O....#...#.#.#....##..##.......#.O..#OOO...O.#....
|
||||||
|
..#O..O#O.OO.O.O....O.O...O#....##..##OO.#...#...O.OO#...O..#....O#.....#.O#OO..O........O....O...#.
|
||||||
|
....#OO.O.#.#.#O.......O..O#........#.#OO.####..O#........#.O#....#..O..O#..#.O.OO.O.......#.O..O..#
|
||||||
|
.#.#..OO#.#...#.OO...#...O#...##.#......#OO....#...OOOOO#..#O.#.#..#O.....#..OO.#.#....O...O.O......
|
||||||
|
O#..#OO......#.O.#..O.......OO...O.O...OO..##....#...#.#OOO......#.#.O.O..###O.OO.O...#.O....O...#..
|
||||||
|
O...O.O..OO..#O#.O.#.O..#..O#..#...#..O.O.........O#..##.....#.O...#O.....O.#.#O.OO.O.#O.O#...O.O#OO
|
||||||
|
......O..#.....#.O#...O..OO..O....#..O.....#.#OO....O.O.O.#..#.......O...O.O...O.O.O.O.##..##.OO.O..
|
||||||
|
.....OO##.....O..O#O.#.O.O...#......#.#....OO..OOO#..##.#O..O.#.#OOO.#O...O......OO.##..O.#.O.......
|
||||||
|
#.....O.......#......O..#..O.#.##...O.O..O........OO...O#O.###...O.#.O.O........#.#O...O##OO#.....##
|
||||||
|
O.O..#....O....#.O.O#O.O.....O..##....##...O...#O...#.#...O..#..O.......#..#.......##..O...O...O.OO.
|
||||||
|
.#.#.O.....O##O...###....O.O......#O...OO......O###O.O.......#..............O.O.O#.O......#...O#....
|
||||||
|
##O....O.......#..O...........O...#...#.O......#..O#.OO..#...#...O.....#......O.O........O#.O#.OO...
|
||||||
|
O#....O.......O.OO.#..O.........##....OO....#O.#...OOO#......O.......OOO#O.O.O#.#..#..#OO..OO..O...O
|
||||||
|
.O..#.O....OO.#O....#O......#...#O..O#.O#OO#.......O.#.....#......O....O...#..O#.....#...##..#.#.#.#
|
||||||
|
.....OO#....#......O.....OO.O#O#.........#.#......O.##....O.OO....##.#O..OO...O#.#....O..OO.O..#.O..
|
||||||
|
.....#...#....OO......O...#....#OO#.##.O.OO#O.O..O.O.......O...#..O...OO....OOO......O#.....#.O.....
|
||||||
|
.##..OO##......OOO....O.#.#...O#.O...O...#....O#..#...O.....O...#.....#O....O...OO#.O.OO...O..##...O
|
||||||
|
O..#OO#O#.##.#....OO.O.....O..#..O..#.#O...#.#.O...#O...O.....O.O....OO........#.#.OO.OO....OOO.#...
|
||||||
|
O...OO.O..##O..O.....O#...O.....O..#.....#.O..#...#.O.##.O##....O.O.....O#.#.O.O..#..O.....O........
|
||||||
|
O..O#.O....O#.O#.O.O.O...#O.....#....O..O.OO#O...#.#O#........#..OO#O..#..O.#O.....O...O....#O.#....
|
||||||
|
...#O.#..#O..O#O........O..O#........O#....##......OO#.#..O.#OO..##..O..........#.......#O....O#.O.#
|
||||||
|
.O..OO...###.O........O..........O..#.##.##.##.#O...O.##...O..##.##...O###.....#..#.O#O.OOO.OOO#...O
|
||||||
|
........##.O..#O#.....#..#...O..#.O......#OOOO##......#.O.O.....#.##......OO.#...#.O....O..O.OOO.#..
|
||||||
|
#.#....#.............OO....OO#.OO#..........OO.OO.O.O.O.....O.....O....#....#.#.#...O...#..##.......
|
||||||
|
..#O#OO...#.....#.......##O..#O......O.....O.O.O...#.....#O.O...O....#.O...#O.O.#....O...#.##.O.....
|
||||||
|
.....#...#.#..O.O.O.#....O##O.....O...#O.O....#.....##.O....O...#...O.#.....##....#.O...#......OO#..
|
||||||
|
O..#......OO#.....OO#..OOO..O.OO.....O.....#....O...O....##.O#.....##.O#.#OO...#.#.......#...#......
|
||||||
|
.O......O#.....O.O........##.O.O...#.OO...#OO..O#OOOO.....#........#..#.#..O#..#....O.#...#.....##O#
|
||||||
|
#.O...O#.#.#....##..O..........#.O.OO.#..#.O#....................O.OO.O#.#O..#..O#..#..OO.#O..OO##.O
|
||||||
|
O#O..O.#..#O...O....#....O##..O.O..#OO.O..O#O...O.OO.....#..O....#.....#..#...#.........O....O.O.#..
|
||||||
|
..O..O...OO......##OO#....O...#.#.....O...........O...O.#.O.#.OO#...#...OO..O.#.O.#O...#O..OO#.O...O
|
||||||
|
O..O.#O......O.O....OO..#..#...O...O#...O.OO.....O#...O..O#..O..O..#OO.#..O#....#...##O#.........#.#
|
||||||
|
O..OO#...#.OO............#OOO....O.O...#........#..#....O........OO#O....#.......##O.O.O#.#..O#O.#.#
|
||||||
|
#....O.O##..O...#..O#..#.....O.#..O.#..O#.##....O....O......#...#..OO.O..O.#OO...........#OO...#OO..
|
||||||
|
#.#.#.O.#.O.##.O....O#.#..O#...O....##O.#.O.O...#..O..O..##.O#.......##O..#O#.#.#.....O##O...O.O....
|
||||||
|
....#.....O.O.#....#..O.........O...O.O.....O#.....#...#..O.#.....OOO..#........O#.#O.....#....O#O..
|
||||||
|
......#O##.....#O##.....OO..O.O....#.O.......O.OO....#...#.O#OO..#O..O...#........##...#.....#...O..
|
||||||
|
#O..O.O...#.O##OO#..OO..O..#.#..##.O.....OO.#....O..O#..OO.......#.......OO.#.........O..........OO.
|
||||||
|
O.......O...#O.......O...#O#.O..#...#.O.......#...#.#..#O.O..........OO##.O.O..#......O...O..O#O..#.
|
||||||
|
.#......O.#......O#O...O.O....#..#O.O..#.#....O.##O#..O....O..OOO..O....OO......OO..O#O...#....#..#.
|
||||||
|
.........###.O..O........#...#..OO#.#.....#.#....#.#....#OO.O...O..O...O...O#.......O.........OO.#.#
|
||||||
|
O#O#.#.#..O..........#O..O.#.O.O##...OO......OO.O#..#O#...O.O...O..##..#.OO##..O....OO..#.OO........
|
||||||
|
O..O.O#..O#.O......O.O..OO...O.......O......#.O.OO#..###OO...##...#O.OO...OO..##..#O..OO.O....O....#
|
||||||
|
O....O..O....O..OO..##..OO...O##O...O..#O..O..O#.#O....O.....##..#O...O#.#O##.#.##O...##.#O...O.....
|
||||||
|
........O.OO#OO.###OO....O....#....O..#....#....#...O..#......O#O#O##.#O#.......O#..#O.....OOO...O..
|
||||||
|
O.....O.O..O......O.O....O.....O.....................O#..#...O.#...O.O...#..OO###...#...O##.#O......
|
||||||
|
..#O#.#O##...O..O....O#.##..OO#.O.#.OO..O#.O..##O..#OO.O.#.O##.#OO..#...O#O.O..O..O.O...#..#....O#..
|
||||||
|
...O.....O......#.O.O...O.#...O..#.OO..O...O..#..#.#...#O.....O...##O..#.....#O.#....O..O..O..O#....
|
||||||
|
..............OO#.........#.#.O...##...OO.OO..O..O##.#..O..O....O..#...#OO.OOO....#OO..O.#.#O.O.O#..
|
||||||
|
..#..O.O.O..##O.##.OO...O..##...O.O..O#.#.#..OO..OO..O#O.#O.#.....#O...OO#..O#......#..O......OO..O.
|
||||||
|
..OOO.O.#...#.O......#..OOO.#.#...O.O.O.O..#....O..O..#....#...O............O.....O..#O...O.O.O...#.
|
||||||
|
O..O.O..O.O....###OO.#..#.O.O....#.....OO.O#.O#.#.O..OO#O..#.....#.OO..O##..OO.....#...O.#.....#....
|
||||||
|
..O.O........O..OO#...##....O..O....O.......O....#....O##.......O.#.#......#..O.....O.#.#.....O...#.
|
||||||
|
.#.O#.O#..#....O.....#.O#.....OOOO..#.O...#.#....#O...O..O...#.#.....#OO#.#.#..#.O.#O...O...O.O#..O.
|
||||||
|
.O.......OO.O...#.O.OO.O.O..........#.O#........O.#.#.O...O.#O.O....OO...#......#...###OO#.#.O.O#...
|
||||||
|
..O.......#..O...#..O..##...........#.#..#....#.....#O...O.#.##.O....O#...#..O..##..O............#..
|
||||||
|
...O....#.#.#..###..O...#O.O#.O.OO...O....O#O#OO..#O..O..#...##.O...OOO.##..O..#......O..O...O.#..#.
|
||||||
|
#.#O.OO.O.#..O..O.##O.....#O..OO.....O....#.#OO...O.O..O..#O.#OO...#....#..##.........O...#.O......O
|
||||||
|
....#O.#..O.#......O..OO.#......O.O.O.OO.OO.#OO...O..#OO.O#...#O#...O.#O..O...OO.O.#O..O.O..O......O
|
||||||
|
O..O..O##....O......#O....O.O....##.OO...O.O#...O.....#O.O....OO......#.O.....#...OO.#...#...#..#.#.
|
||||||
|
....OO#.O...O.O#..OO..#.....O...O.OO..O.#...O..O..O#.....#.O#...O...#OOOO.##.#..OO...#..........#O..
|
||||||
|
..O.O.O.O.#...O..#.#OOO.#.#.##.#..O......OO.#O..O.#....#O#.O##......#.##.OO#.O.O.#..O..#O.#..#.OOO#.
|
||||||
1
data/15.in
Normal file
1
data/15.in
Normal file
File diff suppressed because one or more lines are too long
141
data/17.in
Normal file
141
data/17.in
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
544611123131461715341411271353635151515335122158611336476148348778436382521167743275166634227758333614434221217256627554165443316443534211453
|
||||||
|
663635426335622721222454357737412226878625184546618766386221541247824481537273154322282382741846453432718776246762152515521117666462463411663
|
||||||
|
612354524523332474575331744121533755141845178365542823533635436387642174875263142884251157553531662556686473615131271611612225163317535235336
|
||||||
|
125653253617772412346542632322225684713858257336546532261172227746722747852734481581424727526866322686473642322674432414653171415763164456326
|
||||||
|
665555562351111265554372256156741557361786573468744518468511386121447874621231261811174667753431435313585128116264354732243671665166763622616
|
||||||
|
112551466667441641521735661226212327685257544662173144332236121114248833576166327232332762318163372477531353843285714526234723745445654325635
|
||||||
|
435123322133663773175521363812216162716217642441315611716841663691786314816745773276748776774278273436665468544317223164667326376216412233431
|
||||||
|
264435141335131312176146125537543886555644785428427636657738557378312663547332772116231125476646442162431458414134874622726575372237535655154
|
||||||
|
364545154252541141623316672245886523325146381175357763649635243331819291673318943757641327227431561428633314383588575423526644166765464443452
|
||||||
|
455151416331433564614231437611448651423343747325884671845826851779229198687825241364397697325511285546425585431646428627156464162517525146345
|
||||||
|
452652127777221436712252482488128141578715783711677195492925447493458959457352127938114645319484473337886685553341743438375436467744542623315
|
||||||
|
623247553511727323562453872141457243445658814137766361583468753845144841547818598571284299579739284541251875121712445181482774143162454337647
|
||||||
|
372763573336335776678528464741215587377367583821834367973355358188546555664116625221196993128375618522858525548677822564513135265717512622662
|
||||||
|
253172763757113544653645738377184234722151555365493418221952887361724733586624256861685821238582389155733584447372472561766277212512625556731
|
||||||
|
762416536512772111187686681585341144828161479815246567859968751338215615251697545999954875346418914752165553473413137816482365114725175225113
|
||||||
|
221633366173336622434334424366876432136714593567121181567313852436921219848638965181916557592384329988178846531384571134135156824426677626546
|
||||||
|
563277571323676718636266522115375773478223948397975728363944247952371265465663865465855132415728734843879644124224625114187864744321123546257
|
||||||
|
255653676375465265114652633858684623891754715837548879661727393199744398543479746842758526664626637475662715882614566723153226377573454775671
|
||||||
|
271523747172448453267258476516414781448772429621773125922756186776839272345514827945597489995294587726166681264383687375478143868624647317142
|
||||||
|
724614742641753683143546856375553332313619496763794389396784869263493834326482446622949811228336445949749685661667752315654474223635455435646
|
||||||
|
327422337665758856461854786578256686918931862895826111851211376673979332667882287868292163832972533957155231685866516363172774261252214146146
|
||||||
|
122636671216275785588533484514988819678556547243982672347983334842352899842254653443883169289684429567387252649776574438137462378871211327742
|
||||||
|
126656347544358278257538315565636527122925717263431822676543954634887523333252855945858883678267247373224194975865922244474355217753263225221
|
||||||
|
115176356227862778382344226172331768417968719572858495954374259223946598253392598383296787547174431125625938648632776152446544442711124574617
|
||||||
|
425565456682264552872662681825899689687234967157256367247859338949293395365594232347797235473245767572618114564388354442727261123347152267221
|
||||||
|
142451431653255373335777352517832925213857696683268332264487862738223883455995778223452245527357778388855559657934975878265646782136183563264
|
||||||
|
573524757765633684584741665929935317165588839947984593856543985599293325547488487276259986283497263822666183673871926262346513686617374513254
|
||||||
|
517576733855733817216733759675555955764836575534828334737686845858346989675982494665843984644757748761941143835273151592856661567753353773455
|
||||||
|
277313724278774227424585877178361315389651843423367384937249494758633342393586385835767995685493987386373929412674974493235214314332517152432
|
||||||
|
425551578474428181417313982771319341589926742292686733946526896979875257434972955565227967668768956566511268233217286591528365565612116478244
|
||||||
|
651338667675562254181784971853383789531635837346433594922782724563634987694348723638979366468585386952234622753357972435888565724237748317645
|
||||||
|
367364558635146153355759999172154168865833523369438734534597955829823269887886993232652474868342922722994432531378333681346278336527514856114
|
||||||
|
434676885812872576728157245589637598869289274924932954527368585874968988548429832723698545487928486927487537617745673849143442888318445637567
|
||||||
|
517667176172536125746257817856244356275372777455429899867594747848883745835785953277452375975564963432683277697592694482259946423851774735772
|
||||||
|
417368544537532274234311846349172772928644673896275872774578955869986759453354944458799397825325856556572557553455988861273416524787156417713
|
||||||
|
325175145877618283357272217378239462945859576233386288923548939539473957356574648485468942658453696738759985545123557599675311764877145213125
|
||||||
|
557434846623176536772168477653179956367633556738387489764574485536996966684965895843949674934797569647769946824229673198317447262285185576752
|
||||||
|
721823654713464271637949823917379232799757843367575933685875567665568357683543736767365779794884896855284298468164195227819552521861672268512
|
||||||
|
467338221147174544258444961946826362783377426473894743576976383688868984735779363588466736739779769893547327625469126646181875327774365186728
|
||||||
|
328374351871373931689332484213822638622249258493764655665833737345463494363757339465367774849668295723866222877261418632215764516728151753616
|
||||||
|
136568653257677245885185143574543742877635275933436699695583475876383887533437958979868398833986689276554949426395339222434223448488546735458
|
||||||
|
163563486432563524923438819218392927735896985455767637557744354384543555556475948768847635798599597373288627264362815181758926578131513588412
|
||||||
|
361664338741172268761671916234888288835955592495983397373566883476545965344933485586598374497334958285492533937234825229258956622366357548522
|
||||||
|
184462316433191189443123917663462287873994847359679767488944546853543489375977469659865436774944457334333937247968483141214643697596175783277
|
||||||
|
233423173535134697149982991597968355489249763747666345379687499947334948737339968467567847368545387625268244779498378346733932872897415747526
|
||||||
|
575222455666443495633692524359586979778352467744854646996668438673686855763546934366677575989696988746968224563836929257527667136748451654613
|
||||||
|
583858881359629627385957698293527726339276993475648693353867677598657569674955857634539646858485374559557562738463752749835672594717768271723
|
||||||
|
371888172228967199311393453726625797457434869938495949836795648896644856868946756459973367558345576946627335556532685532666222666283355562745
|
||||||
|
731578718871418283568249396247344572768268668969664639835555697758566648584484889545876649775478389846963356746277635599744791818858745157146
|
||||||
|
263836872437798346453346445326856962232545758388644599497696965888689859855477445799473779543469877436349226366675795672111857734956442318685
|
||||||
|
156433515746627379697383344698338344365999375736739936537957778566964454457875759647485934734465895587394533469877978578141911929473945458182
|
||||||
|
563356475157511751393332492528434565894695875369335666798869689965489474876997968757488893935753776836639762647959629294258951588349331236338
|
||||||
|
385443338914128289217188776982395852495663477866896749695646555866756977598799545779749965738949458845984492728387632279193177984888367281561
|
||||||
|
268435457166276784225564242777753344548785775994675749499795946455596664476978665699989997639436989885868644376828396898214184164829956863224
|
||||||
|
681722838887871769572498839824584566445577764634398985964587576466846758594779565986644858898768979356439539939348389586528779611281974737467
|
||||||
|
544452588665524574444444868287868424587487375583883944995889598489584489675545587997994758945788683763786769966563289564954228712118831715165
|
||||||
|
367658453135248828132438795545963774376369749767478576989644749659848858679889876759964568497884964863437373685295882289624485141158617726226
|
||||||
|
474287222464592943161289624237698657494835433854895796497476444749694946597549459665785648999546999963654498469926332843425855634471837681261
|
||||||
|
762627478662378117797727883638274838986835733873596467646789799469964595547969767576658885677574876594353378896695344939281247833594486974624
|
||||||
|
375252129153828614514787697786676297763885675958687479998878795875787678998685956756698464657844799975436999854262294323279151935851455978753
|
||||||
|
587772368922665242219724633564742948699764975586878876469575478965655859579758785589668854578774977454756573836556227789966919459135972527442
|
||||||
|
261677158161883151325979633963397658383769734395969878456959676665678687566599988989585445879869668666498996537766296688742722738417951653334
|
||||||
|
873267256111714354456564833998292763659695567645858769774489579656877966899966589654947464454589937469367459497429464373364993388127889285123
|
||||||
|
472112345415272176914525224465232489857858667874876459999959855587695998676858956594589646774786974745784863376925272487657299992422559743822
|
||||||
|
116828926796319239592667255278762766584785386454467949664464697695777757978796688988597897497456497357384364974946567963354426612329686514288
|
||||||
|
768338967427841114894755744276635466347746496595589779879664878688969886579688685568468449568894935688378876655272986234923641315523267312414
|
||||||
|
365173137549444794149393827737862877674983838679576775494966768979857586559758697669645676976789678938379995384924846856785649485237148731881
|
||||||
|
367376596777675591428335692245785836577599535657477847549759886686779968898699758559664655854598486485353893947487864839952361958348366967576
|
||||||
|
652663627789775776852623933324843646978545485854477475868478968995675577965959578876647864844764934987967333544455692652763355941618237112637
|
||||||
|
225247419981382989842532456632287598555589538495678589745947796558789998697978965569476554688587643554886638668427579249747534944671475266283
|
||||||
|
867446796216926789169837875998364446838487865989457557547959879856669575765578779777854746764548689969985985675629428553773825815464295648268
|
||||||
|
778684936279279971965947858878554434778985748598989459599958556655898986656976566859788794685555689787874868537797599577892669272195436887652
|
||||||
|
141672441882148752964798774978744594337574467947446899498995676767556655659758796689887468849698687654349546474462547286943976788983672377128
|
||||||
|
877144838339522571585886938393487746453466684869864847948979975975657658579559658875476759969459959758537786744523952384435399124826874973566
|
||||||
|
468775919737378249567883297872868538344667755974665844667956878885668696975776796588749787669966888556556496779664323836652917226432594534366
|
||||||
|
514561459118261464769799783432397346554547577684486484778475658766856565995659579789545794768759667436666655748549577647989851893141456333882
|
||||||
|
378757564863449277884647776924947375888559973848586968979647587665955996787689758959976585944959645594367595996689228377723313794282775427181
|
||||||
|
558611726339349813137773844946955485889933843775779678994789755599757679875699679598797598755686963669756688832986858842292632975871673661286
|
||||||
|
274323798857721979478362252222865333448589393686545546785564975655876599697578668879548747657578585784587933699823792868497585214446143448345
|
||||||
|
616512618311619267277397288883374397845966669768848599989595656965758897876657567774595669649845768578378594984666678935529219573558889364151
|
||||||
|
786332644488427393922295588825994633839934479468795554695566458657598599865678966856745555867644749536776537483937329492895911362343293428877
|
||||||
|
486843612732893872635484356443896437886845545584997799844889555567555985578767765497494768996846538687559463372599937849838165142815665527486
|
||||||
|
116564269859251229444927847624768553786954538388789459476684659496887985559588757667676859864675556546478975659838936489828198836555198216314
|
||||||
|
166737739444581324891996724797865255867745939495744764677466948567765978869895878697678494847744637966863545527448599444762976595585396716224
|
||||||
|
884872824463717894416423565485848363349333768486367789564496956954497797566744467998977744996535934943556699469873544788335689713877963712157
|
||||||
|
421141833629218263182855873458637648897635954665557975566446665675978664989574958666476799464457635937654788729687338776831938647668185217775
|
||||||
|
644871319744158192999539342434769324679956495593334458994479557699699887457749756969468568779983758977855848663992677778849366678539497746636
|
||||||
|
753663225236529537133586395884543644549874389764435569468974899487676698584486455495784996645646575345468985968882783292461112353445726436573
|
||||||
|
675224416543537315233262447858928396733547485669965369997788994866679864947595496565557779597738394685494883683737397462465558579651696358624
|
||||||
|
363825427222624843259638462453355326639965874883546698759546487548748885677594588899958877439383484959833576595425746288456543982222584537575
|
||||||
|
732236715274595749511837449826647395264999863453557436596584668969886654986456865844775984466479849565694989369454369258213779535374295872176
|
||||||
|
766638846645677422274135625897666384869466936693483464588884779674656499886696847478946787485644637377567334765559622926634228184917758578477
|
||||||
|
362617132378894632789375686284559692565839838785439893384449796777577889974586798689689646988693699534488238454765882591549998128125414874552
|
||||||
|
341435142265451679197272772526724677425938684489844888745965958589847786844866775454845838796573555745592247883882886786315175657336124141335
|
||||||
|
642185276386239718373371884929996766775655559569458993489944947975475557587559467964844579336478673758557852586963474793496739439934132362365
|
||||||
|
763525216254469215792621252672259574299246363675465737846573466955496688769565544898386488373647448654535992483338938939457284318829432654457
|
||||||
|
452437131625248542855445825445437239569457468435695944648367896567759666446886587377439854338586787859872547953449323482896183178661262867266
|
||||||
|
884786454717748663998436262983787753756756434798384467557463378486985995674338538638894756994675447544492268269448234347119622475763453341258
|
||||||
|
676378761886792978936273751999376925677759984783498978786947546558764557965337337776778974594958757687833229969473972411355573999188655327326
|
||||||
|
716748875413894137813222366468292877783275394675784595584696954683995854895765943494558937737744848269744577466626346315369556573138626148267
|
||||||
|
244513638122675978278395629246287296737658978583939374659679856493969668798773444874597689584748875487592486885788356463632822429487847525388
|
||||||
|
526718153765365228781725532925762569726826532454967698597344487375768534476839863553587863963649835645673822688779413387461678316285521125185
|
||||||
|
841364768431263613964285845752545367456596585846574379793653938387735576966893697555656856365334558428976537883568761334167576858855614418126
|
||||||
|
578176576734174664291488957624476799827885479432354534965983869445537654869739758639583333754477782937365865667555262424166359355283711212533
|
||||||
|
242761543162242283856164156432268248984824456587466784353935735695685387843775636634589465645646362936939977435332781387977151757374753122273
|
||||||
|
126216672855878148795918619265665523468943397537364547459464835556383438864996936965997735736637298977894495494569837631957266466418434576162
|
||||||
|
641316821176368766124495853718565876293693497597773925484586963478486667738468648688353573259243843349345463927298399516447384633647442583522
|
||||||
|
116165456245886816181925722432952396945823422589577399889897483487957984796988436757768769326368624254569982354399149724146976885152881323217
|
||||||
|
246443682546256744861527919789176999736275873549955225325535353758943384387655977833899662477888573769678553614383849996926954626837165768716
|
||||||
|
254283524317268171815525591589555841257443482999237796644774545479364353496546637952347923349734793333628226582231772748433782373758211476471
|
||||||
|
614144457711628412141465256992259535247748372888629797347744828587244879663728494497833445536577432362537559879149174242837841717887757513255
|
||||||
|
512681252736375123232886341781295562266966599896636936237423298843342944598478799322832659232693296228443132626579791599335826252353756216744
|
||||||
|
432538423856833435713464184455638263596694648445842934476734472884264683372345798279535498426243597328884668877232637334282454375238114857651
|
||||||
|
564533645388582651641394175855264586211655349989784352972425672932334275957873927468328323458978645279475712362878453218691748616877611138176
|
||||||
|
472127232452436637246189173656276981827928545948946969275223734748255946974673487554966243438287275772662819267169991635155123358432484256573
|
||||||
|
635453134656165556351824893737789125262272736493764479376996545655857268694636722677872885286358468234867648846653831776178776317854588835724
|
||||||
|
577162646237527126432751993319627916282331235974266323829885785759352274843738258673438252668993244698448564761989555781453836253854561816542
|
||||||
|
267643257487532153137211261393153588426867389776693257954987253795822242649373333725293858594924981222354677413818143921558766233265487547371
|
||||||
|
124655562846648162314383115688692834741512254349938793593688992276659693756282887586599687333298918126187129692863149617884668435383733713731
|
||||||
|
152713642564734283876641848658276124174183265981699586837552378578656327786742284658529944229513816872672266272787251137261628754776523432541
|
||||||
|
221716357643533356243722364755542957761972338579929446544968248793355576623748379488886652526452614619712443517933461838717863738457366667441
|
||||||
|
777676513574274333266715541646695763844416588753597687567894276455582737966452484899846791925874491997339918934268588115525544818517554126311
|
||||||
|
441752661127628666515445711175515346267977659371656992637217726488395924864869648998568171456622116727918933755316326561516753151625537657726
|
||||||
|
665216743346655565185788135422887292127965876171828253829777626371947774946673373178896169375624456544667656532841153642241576467637147342767
|
||||||
|
136623463222325645551271315162475958627627943534821528877697634643222925545627699243116645347813719715653426387572148171424284224472566115726
|
||||||
|
152463416355425666142218327843777671253948839262697974881165256679373197318252277164551728556657474494468438334418468674745543673442766172264
|
||||||
|
415562466777756347416814875424333552762392354264187329972437271969692482183799691881447398883939271235881335626563626633657188317466212666264
|
||||||
|
235242324523765323366415466685717623118345338581634223937792862712411313189476868739465414933792362183851713423854216645887317574331251563123
|
||||||
|
471265155575125567486423846883115121581792638362991182523544987864212716429958626234784294122381411313211447151247853248257652226552427156616
|
||||||
|
462453245361427551576372347388332865234729442784166554623755869471629833763953484143335472824494417628647614321885631247884773356775444624242
|
||||||
|
256656417224666563726343187841126311752387493976327395811493983435658726464594357675152431871916661754515622665858438347665133537362621535746
|
||||||
|
436662432622415117547141644847845211371168426573919916655313899672567864281656457263229886699834712156826168452886534331356126411745146773636
|
||||||
|
113226716356756651221462858775166738652477786277861473768843899433955837797782173198572635988278316237515878231835116571241271371633711556214
|
||||||
|
263347474731567232236428741522164251512785187548111356318461374451835997933287362647339616412432763742174536525817662363511151525564442755232
|
||||||
|
154524742213146331646273188664344244322746356335362625284462369675837644126982637342512531877218636236522318774856317327165766322616411537125
|
||||||
|
155336277264467332223434142548161682616878874532348382377651948415995947771324891518147873747676673235862437178215125615643537662312637222421
|
||||||
|
666621233315344447454132717317683737584261811251612218267827262613952166393478566556448682264128725572813535162227777633645214343514452421221
|
||||||
|
114261514712764472671716677211815577671866243352474572774685164752335284132443368755718621162364228838121778735837537355632551275324364555641
|
||||||
|
564235416611744357573166154765542476827723264521612613278441218534255586825342166276766585538426138835884134236227622235752464251252336445132
|
||||||
|
213266534424275421416277643712717313685416417288473153473567222546116827386355354748853366477754286753756528368421357651413463663737313416544
|
||||||
|
524456442222241725231454254464415783288235443253712375137166361347476518581333177436683466272263663125833231761636467272525323351245263652244
|
||||||
694
data/18.in
Normal file
694
data/18.in
Normal file
@@ -0,0 +1,694 @@
|
|||||||
|
L 7 (#2ac8e2)
|
||||||
|
D 5 (#14b771)
|
||||||
|
L 14 (#302602)
|
||||||
|
U 5 (#14b773)
|
||||||
|
L 4 (#55b782)
|
||||||
|
D 6 (#535223)
|
||||||
|
L 3 (#3bf082)
|
||||||
|
D 8 (#7be433)
|
||||||
|
L 9 (#4c1060)
|
||||||
|
D 12 (#3a69b3)
|
||||||
|
L 4 (#5f1760)
|
||||||
|
D 6 (#6832c3)
|
||||||
|
L 6 (#2f0d60)
|
||||||
|
U 3 (#0f6c51)
|
||||||
|
L 5 (#2a1042)
|
||||||
|
U 7 (#464ee1)
|
||||||
|
R 5 (#2a1040)
|
||||||
|
U 5 (#4ce141)
|
||||||
|
L 2 (#1261c0)
|
||||||
|
U 11 (#1a05f3)
|
||||||
|
L 3 (#22a220)
|
||||||
|
U 6 (#6f3d13)
|
||||||
|
L 6 (#677110)
|
||||||
|
D 6 (#38ccd3)
|
||||||
|
L 6 (#1a3370)
|
||||||
|
D 3 (#4f3b43)
|
||||||
|
L 12 (#0086e0)
|
||||||
|
D 3 (#68f4b1)
|
||||||
|
L 4 (#5c97f0)
|
||||||
|
D 5 (#4bee81)
|
||||||
|
R 8 (#556760)
|
||||||
|
U 5 (#447f53)
|
||||||
|
R 3 (#2a7580)
|
||||||
|
D 5 (#7063e3)
|
||||||
|
R 7 (#2c84b0)
|
||||||
|
D 9 (#193141)
|
||||||
|
L 7 (#1ae260)
|
||||||
|
D 10 (#4e32c1)
|
||||||
|
L 3 (#4f4a70)
|
||||||
|
U 10 (#356251)
|
||||||
|
L 8 (#7ea0b2)
|
||||||
|
D 4 (#580771)
|
||||||
|
R 4 (#7ea0b0)
|
||||||
|
D 10 (#002e51)
|
||||||
|
L 12 (#0f93b0)
|
||||||
|
D 5 (#024911)
|
||||||
|
L 9 (#16ca20)
|
||||||
|
U 2 (#14e323)
|
||||||
|
L 3 (#77c5d0)
|
||||||
|
U 7 (#4db283)
|
||||||
|
L 8 (#7b4722)
|
||||||
|
U 5 (#1f8db3)
|
||||||
|
R 8 (#0a5fd2)
|
||||||
|
U 3 (#3dd443)
|
||||||
|
L 11 (#5ad430)
|
||||||
|
U 11 (#33f903)
|
||||||
|
R 5 (#5ad432)
|
||||||
|
D 7 (#1f0493)
|
||||||
|
R 14 (#4e8c52)
|
||||||
|
U 7 (#28bcc3)
|
||||||
|
R 3 (#4f1792)
|
||||||
|
U 5 (#31ad71)
|
||||||
|
L 11 (#196172)
|
||||||
|
U 6 (#6707d1)
|
||||||
|
L 11 (#556db2)
|
||||||
|
U 3 (#6707d3)
|
||||||
|
L 6 (#457dc2)
|
||||||
|
U 3 (#31ad73)
|
||||||
|
L 8 (#01d4d2)
|
||||||
|
U 4 (#525cb3)
|
||||||
|
L 6 (#225382)
|
||||||
|
U 12 (#0fc663)
|
||||||
|
L 4 (#701292)
|
||||||
|
U 5 (#0fc661)
|
||||||
|
L 7 (#0398a2)
|
||||||
|
U 8 (#525cb1)
|
||||||
|
L 2 (#46ac42)
|
||||||
|
U 5 (#6c89c3)
|
||||||
|
L 8 (#320b70)
|
||||||
|
D 3 (#319c33)
|
||||||
|
L 5 (#7b0110)
|
||||||
|
D 11 (#319c31)
|
||||||
|
R 5 (#4286b0)
|
||||||
|
D 4 (#2db113)
|
||||||
|
L 8 (#806100)
|
||||||
|
U 14 (#5c7523)
|
||||||
|
L 4 (#1a96c0)
|
||||||
|
U 8 (#40b8d3)
|
||||||
|
R 8 (#5bab20)
|
||||||
|
U 6 (#43c6f3)
|
||||||
|
L 8 (#3a4b90)
|
||||||
|
U 5 (#3e3133)
|
||||||
|
L 3 (#679780)
|
||||||
|
U 9 (#584113)
|
||||||
|
L 8 (#559c02)
|
||||||
|
U 7 (#60bf53)
|
||||||
|
L 4 (#5aca62)
|
||||||
|
U 8 (#4d0163)
|
||||||
|
R 9 (#2237e2)
|
||||||
|
D 5 (#106f13)
|
||||||
|
R 12 (#5c2362)
|
||||||
|
D 8 (#80b7d3)
|
||||||
|
R 7 (#26b6b2)
|
||||||
|
D 6 (#08d3b3)
|
||||||
|
R 14 (#59afa2)
|
||||||
|
U 4 (#241333)
|
||||||
|
R 9 (#0c0eb2)
|
||||||
|
U 3 (#28a8c3)
|
||||||
|
R 4 (#47b022)
|
||||||
|
U 12 (#279703)
|
||||||
|
R 7 (#47b020)
|
||||||
|
U 5 (#4e01a3)
|
||||||
|
L 5 (#6c4722)
|
||||||
|
U 5 (#607023)
|
||||||
|
R 5 (#609b62)
|
||||||
|
U 5 (#6ec7a3)
|
||||||
|
L 9 (#152722)
|
||||||
|
U 6 (#022cf1)
|
||||||
|
L 14 (#481a02)
|
||||||
|
U 5 (#7ce951)
|
||||||
|
L 5 (#4316f2)
|
||||||
|
U 6 (#0f1061)
|
||||||
|
L 2 (#2b14e2)
|
||||||
|
U 3 (#3e10c1)
|
||||||
|
L 12 (#435d72)
|
||||||
|
U 2 (#6d75e3)
|
||||||
|
L 8 (#4a4142)
|
||||||
|
U 8 (#5ec183)
|
||||||
|
L 12 (#5a9f02)
|
||||||
|
U 8 (#390f33)
|
||||||
|
R 8 (#655e52)
|
||||||
|
U 11 (#757e23)
|
||||||
|
R 10 (#031912)
|
||||||
|
U 7 (#10ea33)
|
||||||
|
R 14 (#4a55c0)
|
||||||
|
D 6 (#1d2fc3)
|
||||||
|
R 9 (#7aa260)
|
||||||
|
D 12 (#07c993)
|
||||||
|
R 9 (#315c00)
|
||||||
|
U 8 (#88b083)
|
||||||
|
R 5 (#52fb50)
|
||||||
|
U 5 (#2b4ed3)
|
||||||
|
L 9 (#428cf0)
|
||||||
|
U 6 (#0225f3)
|
||||||
|
R 9 (#36f490)
|
||||||
|
U 6 (#0225f1)
|
||||||
|
R 7 (#595110)
|
||||||
|
D 4 (#374603)
|
||||||
|
L 4 (#44efe0)
|
||||||
|
D 6 (#2b1b03)
|
||||||
|
R 4 (#664590)
|
||||||
|
D 7 (#2b1b01)
|
||||||
|
R 5 (#1bfe40)
|
||||||
|
U 6 (#2c7a81)
|
||||||
|
R 2 (#3bc8f0)
|
||||||
|
U 9 (#416101)
|
||||||
|
R 10 (#003f10)
|
||||||
|
D 7 (#3a4a51)
|
||||||
|
R 2 (#003f12)
|
||||||
|
D 5 (#4ba511)
|
||||||
|
R 3 (#5190e0)
|
||||||
|
D 3 (#400191)
|
||||||
|
R 12 (#1a09a0)
|
||||||
|
D 8 (#3aef23)
|
||||||
|
R 11 (#0cb780)
|
||||||
|
D 10 (#6a6393)
|
||||||
|
R 9 (#561c80)
|
||||||
|
U 10 (#124da3)
|
||||||
|
R 6 (#2b0af0)
|
||||||
|
U 8 (#563841)
|
||||||
|
R 12 (#73b520)
|
||||||
|
U 3 (#199441)
|
||||||
|
R 5 (#73b522)
|
||||||
|
U 4 (#47d3d1)
|
||||||
|
R 4 (#70a9a0)
|
||||||
|
U 8 (#18f861)
|
||||||
|
L 4 (#18de92)
|
||||||
|
U 3 (#5bc8a1)
|
||||||
|
L 12 (#59e082)
|
||||||
|
U 2 (#4aacb1)
|
||||||
|
R 12 (#0b5a82)
|
||||||
|
U 6 (#708aa1)
|
||||||
|
L 5 (#3902b2)
|
||||||
|
U 5 (#171153)
|
||||||
|
R 5 (#3745f2)
|
||||||
|
U 5 (#081ad3)
|
||||||
|
R 5 (#45f1c0)
|
||||||
|
D 8 (#527f53)
|
||||||
|
R 6 (#45f1c2)
|
||||||
|
D 6 (#47e013)
|
||||||
|
L 6 (#3745f0)
|
||||||
|
D 4 (#01abd3)
|
||||||
|
R 8 (#51f1e2)
|
||||||
|
D 8 (#6aa421)
|
||||||
|
L 5 (#6114f2)
|
||||||
|
D 7 (#786041)
|
||||||
|
R 5 (#31b050)
|
||||||
|
D 3 (#4f62d1)
|
||||||
|
R 10 (#5ba7a0)
|
||||||
|
U 8 (#14c261)
|
||||||
|
R 4 (#2d27d0)
|
||||||
|
U 7 (#2cd791)
|
||||||
|
R 4 (#2db660)
|
||||||
|
U 5 (#7a4801)
|
||||||
|
R 9 (#19e300)
|
||||||
|
U 5 (#17adf1)
|
||||||
|
L 10 (#19e302)
|
||||||
|
U 10 (#63c5a1)
|
||||||
|
L 2 (#6881e0)
|
||||||
|
U 6 (#2ba711)
|
||||||
|
R 12 (#148ef0)
|
||||||
|
U 6 (#1a9ba3)
|
||||||
|
R 9 (#0597f0)
|
||||||
|
D 8 (#4f1ee3)
|
||||||
|
R 10 (#4dd080)
|
||||||
|
D 4 (#33a753)
|
||||||
|
L 4 (#3fb6d0)
|
||||||
|
D 3 (#1ebdb3)
|
||||||
|
R 10 (#0b0872)
|
||||||
|
D 8 (#0e1853)
|
||||||
|
L 10 (#3547f2)
|
||||||
|
D 5 (#21e0e3)
|
||||||
|
R 4 (#52cee2)
|
||||||
|
D 5 (#3b66c3)
|
||||||
|
L 10 (#5b91a0)
|
||||||
|
D 6 (#26bac3)
|
||||||
|
R 11 (#222710)
|
||||||
|
D 2 (#2d5211)
|
||||||
|
R 7 (#44f020)
|
||||||
|
U 12 (#505ed1)
|
||||||
|
R 3 (#358270)
|
||||||
|
D 12 (#505ed3)
|
||||||
|
R 5 (#16c910)
|
||||||
|
U 7 (#36a931)
|
||||||
|
R 12 (#849ea0)
|
||||||
|
U 6 (#36a933)
|
||||||
|
R 10 (#1e8c20)
|
||||||
|
U 10 (#55b611)
|
||||||
|
L 11 (#2cded0)
|
||||||
|
D 5 (#5f5281)
|
||||||
|
L 12 (#00e5b2)
|
||||||
|
U 5 (#4a2981)
|
||||||
|
L 3 (#379182)
|
||||||
|
U 8 (#3e19a1)
|
||||||
|
R 6 (#644222)
|
||||||
|
U 9 (#0f4fe1)
|
||||||
|
R 6 (#570b02)
|
||||||
|
U 7 (#551e33)
|
||||||
|
R 7 (#07ea32)
|
||||||
|
D 5 (#35bb93)
|
||||||
|
R 4 (#0a12d2)
|
||||||
|
D 4 (#0cb943)
|
||||||
|
L 4 (#3b7242)
|
||||||
|
D 7 (#28d521)
|
||||||
|
R 7 (#2d9d60)
|
||||||
|
U 10 (#7332e1)
|
||||||
|
R 3 (#44d090)
|
||||||
|
D 4 (#7baf51)
|
||||||
|
R 7 (#01b8e0)
|
||||||
|
U 4 (#1b4e01)
|
||||||
|
R 6 (#0b27b2)
|
||||||
|
U 3 (#642a61)
|
||||||
|
L 4 (#0b27b0)
|
||||||
|
U 6 (#21beb1)
|
||||||
|
R 4 (#64df80)
|
||||||
|
U 7 (#08c4b3)
|
||||||
|
R 10 (#626c00)
|
||||||
|
D 6 (#34e6b3)
|
||||||
|
R 5 (#06b262)
|
||||||
|
U 4 (#6e38c3)
|
||||||
|
R 5 (#06b260)
|
||||||
|
D 4 (#710243)
|
||||||
|
R 5 (#05c140)
|
||||||
|
D 4 (#1e5571)
|
||||||
|
L 15 (#54bee0)
|
||||||
|
D 6 (#0a4df1)
|
||||||
|
R 6 (#1f4bd0)
|
||||||
|
U 3 (#0a4df3)
|
||||||
|
R 13 (#4057c0)
|
||||||
|
U 11 (#701d41)
|
||||||
|
R 6 (#16f352)
|
||||||
|
U 4 (#449eb3)
|
||||||
|
L 15 (#69f132)
|
||||||
|
U 6 (#449eb1)
|
||||||
|
R 15 (#337df2)
|
||||||
|
U 6 (#2a2871)
|
||||||
|
L 6 (#3946a0)
|
||||||
|
U 6 (#112121)
|
||||||
|
R 15 (#107a70)
|
||||||
|
D 5 (#66a2e1)
|
||||||
|
R 2 (#4b4f50)
|
||||||
|
D 12 (#277781)
|
||||||
|
R 8 (#32cc40)
|
||||||
|
D 3 (#1184e1)
|
||||||
|
R 5 (#439160)
|
||||||
|
D 8 (#43e2d1)
|
||||||
|
R 3 (#496410)
|
||||||
|
D 2 (#0fb6d1)
|
||||||
|
R 9 (#12a250)
|
||||||
|
D 12 (#2abc23)
|
||||||
|
R 4 (#123e22)
|
||||||
|
D 15 (#834853)
|
||||||
|
R 4 (#123e20)
|
||||||
|
U 4 (#453473)
|
||||||
|
R 8 (#0281c0)
|
||||||
|
U 12 (#27c921)
|
||||||
|
R 7 (#543410)
|
||||||
|
U 3 (#2cd3a3)
|
||||||
|
R 5 (#3bdd30)
|
||||||
|
U 3 (#73d693)
|
||||||
|
R 13 (#2bfb40)
|
||||||
|
U 6 (#3f93d1)
|
||||||
|
L 13 (#1f66f0)
|
||||||
|
U 8 (#3e3911)
|
||||||
|
R 6 (#1f66f2)
|
||||||
|
U 10 (#137901)
|
||||||
|
L 8 (#3ea9b0)
|
||||||
|
U 3 (#0f6451)
|
||||||
|
L 10 (#2ea050)
|
||||||
|
U 8 (#450f13)
|
||||||
|
R 14 (#1758c2)
|
||||||
|
U 4 (#21cd73)
|
||||||
|
R 2 (#1758c0)
|
||||||
|
U 9 (#39b8e3)
|
||||||
|
R 14 (#0255c0)
|
||||||
|
D 4 (#290d23)
|
||||||
|
R 4 (#0ad710)
|
||||||
|
D 9 (#0a59f3)
|
||||||
|
R 8 (#3b9950)
|
||||||
|
D 4 (#7bae53)
|
||||||
|
R 11 (#3e54a0)
|
||||||
|
D 8 (#753163)
|
||||||
|
R 9 (#4dc1b0)
|
||||||
|
D 6 (#2c5541)
|
||||||
|
L 2 (#564600)
|
||||||
|
D 13 (#292593)
|
||||||
|
L 8 (#5b16b0)
|
||||||
|
D 4 (#292591)
|
||||||
|
L 4 (#21f3f0)
|
||||||
|
U 4 (#2c5543)
|
||||||
|
L 8 (#0bafd0)
|
||||||
|
D 4 (#4cda43)
|
||||||
|
L 10 (#6241a0)
|
||||||
|
D 5 (#5e31a3)
|
||||||
|
R 10 (#1c5f90)
|
||||||
|
D 3 (#4e18a1)
|
||||||
|
R 7 (#2445d0)
|
||||||
|
D 9 (#24fc71)
|
||||||
|
R 6 (#299cc0)
|
||||||
|
D 6 (#37a491)
|
||||||
|
R 7 (#299cc2)
|
||||||
|
U 6 (#43e8d1)
|
||||||
|
R 10 (#2445d2)
|
||||||
|
U 9 (#410ad1)
|
||||||
|
R 10 (#67e350)
|
||||||
|
U 8 (#5d9801)
|
||||||
|
R 9 (#12bd80)
|
||||||
|
D 8 (#30b691)
|
||||||
|
R 15 (#2ebe00)
|
||||||
|
D 2 (#6062d1)
|
||||||
|
R 5 (#113860)
|
||||||
|
D 13 (#55fa81)
|
||||||
|
R 8 (#657e80)
|
||||||
|
U 11 (#6be1c1)
|
||||||
|
R 9 (#3d83c0)
|
||||||
|
U 2 (#83eee3)
|
||||||
|
R 11 (#0755a0)
|
||||||
|
U 10 (#389d53)
|
||||||
|
R 6 (#669170)
|
||||||
|
U 10 (#246853)
|
||||||
|
R 13 (#26ef30)
|
||||||
|
D 10 (#362743)
|
||||||
|
R 6 (#0a7380)
|
||||||
|
D 8 (#0b2353)
|
||||||
|
R 8 (#370cd0)
|
||||||
|
D 10 (#2d3c43)
|
||||||
|
R 14 (#72d862)
|
||||||
|
D 8 (#5dc733)
|
||||||
|
L 5 (#72d860)
|
||||||
|
D 8 (#034b23)
|
||||||
|
L 6 (#1d5e70)
|
||||||
|
D 7 (#163871)
|
||||||
|
L 4 (#085d00)
|
||||||
|
D 9 (#5c3901)
|
||||||
|
R 3 (#5c2d00)
|
||||||
|
D 8 (#1eead1)
|
||||||
|
R 12 (#189f80)
|
||||||
|
D 4 (#12f0c1)
|
||||||
|
R 5 (#612270)
|
||||||
|
D 3 (#24db21)
|
||||||
|
R 9 (#120470)
|
||||||
|
D 12 (#645371)
|
||||||
|
R 3 (#4c8030)
|
||||||
|
D 11 (#28ed73)
|
||||||
|
R 3 (#491000)
|
||||||
|
D 10 (#3e0563)
|
||||||
|
R 8 (#181d10)
|
||||||
|
D 6 (#139513)
|
||||||
|
R 6 (#171f80)
|
||||||
|
D 3 (#467203)
|
||||||
|
R 7 (#171f82)
|
||||||
|
D 12 (#3f62a3)
|
||||||
|
R 5 (#181d12)
|
||||||
|
D 4 (#2d1f13)
|
||||||
|
L 9 (#333730)
|
||||||
|
D 2 (#2eef11)
|
||||||
|
L 10 (#84f660)
|
||||||
|
D 4 (#386021)
|
||||||
|
L 3 (#491a90)
|
||||||
|
D 7 (#849781)
|
||||||
|
R 6 (#491a92)
|
||||||
|
D 3 (#2e2731)
|
||||||
|
L 6 (#3403a0)
|
||||||
|
D 6 (#588431)
|
||||||
|
L 10 (#6dde22)
|
||||||
|
D 11 (#4b8081)
|
||||||
|
L 4 (#0770b2)
|
||||||
|
D 4 (#525a71)
|
||||||
|
R 7 (#106a92)
|
||||||
|
D 10 (#12b753)
|
||||||
|
R 4 (#06ce12)
|
||||||
|
U 10 (#2da5b3)
|
||||||
|
R 5 (#7eb4d2)
|
||||||
|
D 6 (#2da5b1)
|
||||||
|
R 3 (#21deb2)
|
||||||
|
D 8 (#12b751)
|
||||||
|
R 12 (#333f42)
|
||||||
|
D 12 (#4df5d1)
|
||||||
|
L 7 (#1e5502)
|
||||||
|
D 3 (#3b11d1)
|
||||||
|
L 8 (#2add42)
|
||||||
|
D 5 (#2a2461)
|
||||||
|
L 6 (#2add40)
|
||||||
|
D 7 (#3332c1)
|
||||||
|
L 3 (#0e2cd2)
|
||||||
|
U 7 (#756e81)
|
||||||
|
L 7 (#4756b2)
|
||||||
|
D 5 (#4d0ca1)
|
||||||
|
L 3 (#56ef42)
|
||||||
|
D 11 (#3d05a1)
|
||||||
|
L 4 (#46a2c2)
|
||||||
|
U 6 (#5bdcb3)
|
||||||
|
L 5 (#2e3fe2)
|
||||||
|
U 11 (#781b83)
|
||||||
|
R 5 (#4f8f62)
|
||||||
|
U 3 (#21dae3)
|
||||||
|
L 3 (#3e9a92)
|
||||||
|
U 2 (#1add33)
|
||||||
|
L 9 (#3732e2)
|
||||||
|
D 12 (#07f113)
|
||||||
|
L 2 (#0c88b2)
|
||||||
|
D 10 (#853513)
|
||||||
|
L 8 (#0c88b0)
|
||||||
|
D 8 (#091c53)
|
||||||
|
L 4 (#326e32)
|
||||||
|
D 3 (#2a2593)
|
||||||
|
R 4 (#642632)
|
||||||
|
D 13 (#6a4c83)
|
||||||
|
L 4 (#6a1472)
|
||||||
|
D 6 (#082b33)
|
||||||
|
L 3 (#47d362)
|
||||||
|
D 8 (#48ba61)
|
||||||
|
L 7 (#300792)
|
||||||
|
D 5 (#6148c1)
|
||||||
|
L 8 (#0100d0)
|
||||||
|
U 11 (#20efd3)
|
||||||
|
L 6 (#377920)
|
||||||
|
D 11 (#7895f3)
|
||||||
|
L 4 (#3a8d50)
|
||||||
|
D 3 (#7895f1)
|
||||||
|
L 12 (#26a8b0)
|
||||||
|
D 7 (#20efd1)
|
||||||
|
L 7 (#0e6f20)
|
||||||
|
D 4 (#6390c1)
|
||||||
|
L 9 (#03cd40)
|
||||||
|
U 8 (#0ffa71)
|
||||||
|
L 3 (#151ed2)
|
||||||
|
U 12 (#147cd3)
|
||||||
|
L 7 (#843392)
|
||||||
|
U 6 (#147cd1)
|
||||||
|
R 10 (#1299f2)
|
||||||
|
U 11 (#0736e1)
|
||||||
|
R 11 (#654672)
|
||||||
|
U 8 (#2465b3)
|
||||||
|
L 4 (#38ffb0)
|
||||||
|
D 4 (#0b0b53)
|
||||||
|
L 13 (#2a0df2)
|
||||||
|
U 4 (#72d2c3)
|
||||||
|
L 4 (#2a0df0)
|
||||||
|
U 3 (#0f7b73)
|
||||||
|
L 12 (#38ffb2)
|
||||||
|
U 2 (#2a4ba3)
|
||||||
|
L 11 (#66dd22)
|
||||||
|
D 3 (#2577b1)
|
||||||
|
L 5 (#6a82b2)
|
||||||
|
D 3 (#516653)
|
||||||
|
L 7 (#093060)
|
||||||
|
D 12 (#79ad63)
|
||||||
|
L 6 (#093062)
|
||||||
|
D 5 (#348f83)
|
||||||
|
L 4 (#83e322)
|
||||||
|
U 8 (#0da4d3)
|
||||||
|
L 4 (#251e42)
|
||||||
|
D 6 (#356721)
|
||||||
|
L 15 (#060892)
|
||||||
|
U 6 (#304a61)
|
||||||
|
L 3 (#226e72)
|
||||||
|
U 5 (#021bb3)
|
||||||
|
R 9 (#7123c2)
|
||||||
|
U 4 (#021bb1)
|
||||||
|
R 13 (#1a4822)
|
||||||
|
U 6 (#304a63)
|
||||||
|
L 3 (#157e22)
|
||||||
|
U 14 (#56fb41)
|
||||||
|
R 7 (#4a75b0)
|
||||||
|
U 7 (#4578a1)
|
||||||
|
R 6 (#7eeb50)
|
||||||
|
U 6 (#3b6d01)
|
||||||
|
L 11 (#0ba9e2)
|
||||||
|
U 5 (#8a0ba1)
|
||||||
|
R 11 (#3ac130)
|
||||||
|
U 6 (#3faf21)
|
||||||
|
R 6 (#6a9062)
|
||||||
|
D 7 (#3460e1)
|
||||||
|
R 15 (#6a9060)
|
||||||
|
D 3 (#421101)
|
||||||
|
L 15 (#3838a0)
|
||||||
|
D 7 (#58cf13)
|
||||||
|
R 6 (#715670)
|
||||||
|
D 7 (#6b3d83)
|
||||||
|
R 4 (#715672)
|
||||||
|
D 10 (#366933)
|
||||||
|
R 8 (#591620)
|
||||||
|
U 10 (#2f6453)
|
||||||
|
R 4 (#8295e0)
|
||||||
|
U 10 (#3cb3f1)
|
||||||
|
R 9 (#117f00)
|
||||||
|
U 10 (#497781)
|
||||||
|
R 5 (#1ce3c2)
|
||||||
|
U 6 (#14c9a1)
|
||||||
|
L 13 (#1ce3c0)
|
||||||
|
U 4 (#3060a1)
|
||||||
|
L 8 (#2f4880)
|
||||||
|
U 5 (#3b2431)
|
||||||
|
L 4 (#2f4882)
|
||||||
|
U 12 (#236031)
|
||||||
|
L 7 (#251ac0)
|
||||||
|
D 5 (#0052b1)
|
||||||
|
L 4 (#3d5a30)
|
||||||
|
D 4 (#372e11)
|
||||||
|
L 12 (#58bf50)
|
||||||
|
D 10 (#5db081)
|
||||||
|
L 2 (#1582a2)
|
||||||
|
D 4 (#60b921)
|
||||||
|
L 7 (#39fe02)
|
||||||
|
D 8 (#657e23)
|
||||||
|
L 3 (#291c72)
|
||||||
|
D 7 (#657e21)
|
||||||
|
L 2 (#393a72)
|
||||||
|
D 7 (#3196a1)
|
||||||
|
L 9 (#10c4f2)
|
||||||
|
D 8 (#650ba1)
|
||||||
|
L 10 (#052452)
|
||||||
|
D 4 (#0980a1)
|
||||||
|
L 13 (#301942)
|
||||||
|
D 10 (#18a341)
|
||||||
|
L 4 (#60a8f2)
|
||||||
|
D 10 (#73c9b1)
|
||||||
|
R 6 (#006630)
|
||||||
|
D 6 (#0c04c1)
|
||||||
|
R 5 (#35f0f0)
|
||||||
|
U 6 (#7db103)
|
||||||
|
R 7 (#34c280)
|
||||||
|
D 9 (#7db101)
|
||||||
|
L 6 (#25a890)
|
||||||
|
D 3 (#1bf0a1)
|
||||||
|
R 12 (#17e9c2)
|
||||||
|
D 8 (#018d01)
|
||||||
|
L 12 (#7c9bc2)
|
||||||
|
D 6 (#5e24b3)
|
||||||
|
L 4 (#0c6ce2)
|
||||||
|
U 5 (#4fa793)
|
||||||
|
L 4 (#5a26b2)
|
||||||
|
U 7 (#14b5d3)
|
||||||
|
R 4 (#330d12)
|
||||||
|
U 5 (#1b3311)
|
||||||
|
L 8 (#20c112)
|
||||||
|
D 9 (#1c8ed1)
|
||||||
|
L 10 (#0f11d2)
|
||||||
|
U 11 (#5f2d41)
|
||||||
|
R 4 (#76d4f2)
|
||||||
|
U 11 (#2b92f1)
|
||||||
|
L 4 (#184052)
|
||||||
|
U 8 (#63a4f3)
|
||||||
|
L 6 (#24fea2)
|
||||||
|
U 3 (#4fc613)
|
||||||
|
R 6 (#453b70)
|
||||||
|
U 7 (#52e7c3)
|
||||||
|
L 3 (#307370)
|
||||||
|
U 10 (#1edca3)
|
||||||
|
L 7 (#75aee2)
|
||||||
|
D 3 (#1d4c43)
|
||||||
|
L 3 (#6e3de2)
|
||||||
|
U 13 (#10edc3)
|
||||||
|
L 8 (#293ec2)
|
||||||
|
D 13 (#68f773)
|
||||||
|
L 8 (#373872)
|
||||||
|
D 6 (#6a7d73)
|
||||||
|
L 3 (#5f5212)
|
||||||
|
D 5 (#649e01)
|
||||||
|
R 6 (#53fed2)
|
||||||
|
D 6 (#6bc451)
|
||||||
|
R 4 (#04d680)
|
||||||
|
U 6 (#25e6f1)
|
||||||
|
R 8 (#1e60d0)
|
||||||
|
D 3 (#456061)
|
||||||
|
R 4 (#1e03f0)
|
||||||
|
D 6 (#398451)
|
||||||
|
L 11 (#648390)
|
||||||
|
D 2 (#15d5f1)
|
||||||
|
L 7 (#369602)
|
||||||
|
D 10 (#5054a1)
|
||||||
|
L 7 (#53bcc2)
|
||||||
|
U 15 (#5054a3)
|
||||||
|
L 5 (#0fd012)
|
||||||
|
D 15 (#2915a1)
|
||||||
|
L 4 (#0b9c02)
|
||||||
|
D 4 (#0f1fd1)
|
||||||
|
R 11 (#79edf2)
|
||||||
|
D 5 (#63a4f1)
|
||||||
|
R 7 (#011ec2)
|
||||||
|
D 5 (#3452d1)
|
||||||
|
R 8 (#2ccf12)
|
||||||
|
U 5 (#790d01)
|
||||||
|
R 8 (#3f7272)
|
||||||
|
D 8 (#06e261)
|
||||||
|
L 7 (#28e202)
|
||||||
|
D 15 (#4c0ee1)
|
||||||
|
L 3 (#1161b2)
|
||||||
|
U 15 (#433e91)
|
||||||
|
L 6 (#74d6b0)
|
||||||
|
D 5 (#45c0f1)
|
||||||
|
L 14 (#74d6b2)
|
||||||
|
D 7 (#339011)
|
||||||
|
L 3 (#038fa2)
|
||||||
|
U 2 (#2a3983)
|
||||||
|
L 10 (#06bc22)
|
||||||
|
U 3 (#10e1f3)
|
||||||
|
L 10 (#27a8d2)
|
||||||
|
U 9 (#19d373)
|
||||||
|
L 4 (#748b22)
|
||||||
|
D 6 (#65bbe3)
|
||||||
|
L 9 (#04b122)
|
||||||
|
D 4 (#3d31f1)
|
||||||
|
L 13 (#010b22)
|
||||||
|
U 10 (#05d651)
|
||||||
|
L 4 (#74a772)
|
||||||
|
D 14 (#05d653)
|
||||||
|
L 8 (#14e752)
|
||||||
|
U 3 (#4534a1)
|
||||||
|
L 9 (#8a99e0)
|
||||||
|
U 11 (#0e0ab1)
|
||||||
|
R 5 (#421542)
|
||||||
|
U 7 (#2a3981)
|
||||||
|
R 8 (#6c1e52)
|
||||||
|
U 6 (#1d91e1)
|
||||||
|
L 13 (#4a4082)
|
||||||
|
U 3 (#3e5c83)
|
||||||
|
R 6 (#0ebd62)
|
||||||
|
U 10 (#21a223)
|
||||||
|
L 5 (#153ec2)
|
||||||
|
U 6 (#502eb3)
|
||||||
|
R 5 (#1299a2)
|
||||||
|
U 13 (#461143)
|
||||||
|
L 6 (#691cb2)
|
||||||
|
U 3 (#1d6533)
|
||||||
|
L 4 (#495722)
|
||||||
|
U 2 (#3c61e3)
|
||||||
|
L 11 (#0cc8b0)
|
||||||
|
D 4 (#1fd653)
|
||||||
|
L 7 (#0cc8b2)
|
||||||
|
D 5 (#340273)
|
||||||
|
R 7 (#2c7ec2)
|
||||||
|
D 8 (#699123)
|
||||||
|
L 4 (#2c7ec0)
|
||||||
|
D 2 (#69da23)
|
||||||
|
L 6 (#39c2c2)
|
||||||
|
U 15 (#18e693)
|
||||||
|
L 5 (#3d0762)
|
||||||
|
U 4 (#043ac3)
|
||||||
|
L 8 (#49ca22)
|
||||||
|
U 7 (#057783)
|
||||||
|
L 6 (#57e6a2)
|
||||||
|
U 12 (#2d7e63)
|
||||||
777
data/19.in
Normal file
777
data/19.in
Normal file
@@ -0,0 +1,777 @@
|
|||||||
|
ft{m<1347:R,m<1967:A,A}
|
||||||
|
gbv{x<51:R,R}
|
||||||
|
lks{m<2978:kgl,a<680:ntb,x<577:hzp,mg}
|
||||||
|
db{a>2314:R,A}
|
||||||
|
rml{a<479:R,m>2803:A,R}
|
||||||
|
ncv{x<3567:R,a>3316:A,s>1415:R,R}
|
||||||
|
jsm{m>1434:brj,a>3142:vtk,x<2888:bpt,dl}
|
||||||
|
frt{s>210:R,a<1114:R,R}
|
||||||
|
zjq{m<195:A,R}
|
||||||
|
lv{m<1450:A,m<2105:xll,R}
|
||||||
|
kp{x>1194:A,x>1146:A,R}
|
||||||
|
nl{a>2317:A,A}
|
||||||
|
lrf{s<493:mpt,R}
|
||||||
|
cxf{x>2054:ktk,x<1860:qmg,lzk}
|
||||||
|
xb{s<1524:A,s>1602:A,R}
|
||||||
|
zz{x>3135:svb,x>2399:R,A}
|
||||||
|
ds{a>2495:R,x>924:R,pm}
|
||||||
|
zxf{m<2815:stp,a<2750:jpf,R}
|
||||||
|
fg{s>2319:A,A}
|
||||||
|
jb{a>3248:rm,s<3444:gdc,A}
|
||||||
|
trb{s<3836:A,x<1957:A,R}
|
||||||
|
nrk{x<995:bmc,R}
|
||||||
|
hk{m<968:btp,s<1545:nl,m>1092:npt,tlg}
|
||||||
|
ff{x<1733:R,s>2152:A,A}
|
||||||
|
msh{a>3446:R,A}
|
||||||
|
qt{m<1335:A,s<2757:tx,R}
|
||||||
|
ksm{a<3350:gr,R}
|
||||||
|
fsm{x>2098:R,a<360:R,R}
|
||||||
|
rff{m>312:R,A}
|
||||||
|
ddm{s<2671:R,trz}
|
||||||
|
bd{s<3121:A,R}
|
||||||
|
nr{s>2748:vmb,s<2491:xd,fbm}
|
||||||
|
fdn{a>659:cv,x>2325:xc,rt}
|
||||||
|
rcj{a<453:R,a<847:A,a>993:A,R}
|
||||||
|
brf{x<1485:A,R}
|
||||||
|
mzt{x>3019:A,m>306:R,A}
|
||||||
|
pc{x<2446:R,hc}
|
||||||
|
xf{a<3423:ln,x>1473:zjc,x>1440:R,cgx}
|
||||||
|
xn{s<3870:A,R}
|
||||||
|
qzn{m>1697:A,m>1501:A,R}
|
||||||
|
cdl{s<3605:A,s>3831:R,s<3743:dph,A}
|
||||||
|
mbq{x<3235:A,s<2567:A,s>2647:R,R}
|
||||||
|
sqt{x>2051:R,a>2036:A,s<1695:R,R}
|
||||||
|
tc{s<952:A,x>3099:R,m<3427:A,R}
|
||||||
|
kt{m<1388:jg,m>2013:mxm,xdr}
|
||||||
|
jxb{s>3521:R,x<851:A,x>1017:A,A}
|
||||||
|
qx{m>404:A,x<2423:R,a<2849:A,R}
|
||||||
|
ptj{m<3906:njh,R}
|
||||||
|
hd{s<566:R,m>1077:A,A}
|
||||||
|
bvh{s<1046:vd,x<2962:bz,m<1264:R,cqj}
|
||||||
|
zgs{m<388:A,x<1595:gqn,s<3635:R,khx}
|
||||||
|
pj{a<2319:R,a<2479:R,x<1521:llm,R}
|
||||||
|
kx{m>3616:kqd,x<1472:R,m>3298:kg,A}
|
||||||
|
mk{a<3610:R,m<2065:R,R}
|
||||||
|
jd{x<756:A,x>802:vcg,zgr}
|
||||||
|
qbq{x<1667:A,m>1173:R,x>1697:R,R}
|
||||||
|
cn{m>3371:nqj,m>3154:A,a>1170:R,sbx}
|
||||||
|
zrk{a<3201:A,m<1459:R,A}
|
||||||
|
qtz{m>517:nt,m>212:vpq,x<3049:pl,hb}
|
||||||
|
nhk{x>455:A,m<3081:A,s<3489:A,A}
|
||||||
|
rfd{m>1850:A,A}
|
||||||
|
nns{s<1799:A,A}
|
||||||
|
dm{s>95:A,R}
|
||||||
|
vz{m>3248:vb,nkr}
|
||||||
|
dcz{a>2149:km,R}
|
||||||
|
rrl{a<3198:ptk,s>3017:zgs,x>1554:hht,cht}
|
||||||
|
hs{m<673:A,R}
|
||||||
|
vf{s>1621:A,R}
|
||||||
|
qf{x>538:A,a<427:jc,lhf}
|
||||||
|
xbh{m>2071:jjb,s<582:xpc,a>3248:hpr,npd}
|
||||||
|
fz{m<1150:A,s<200:R,s<371:A,A}
|
||||||
|
gd{m>592:vt,a>1033:R,a>636:nlj,R}
|
||||||
|
znb{a<3808:A,x<3379:A,m<2068:A,A}
|
||||||
|
st{s<2677:R,a>1494:R,s>3382:A,R}
|
||||||
|
zf{m<3760:A,s<3288:A,R}
|
||||||
|
hh{s<2789:mz,jb}
|
||||||
|
tp{s<2498:R,A}
|
||||||
|
kz{a>2094:vqx,m>414:hzc,kzp}
|
||||||
|
xc{m>2388:nqp,a>432:A,x<3265:xch,A}
|
||||||
|
zgt{m<3336:A,s>2892:A,a>3062:R,A}
|
||||||
|
gtz{s>2688:tg,dp}
|
||||||
|
tf{m>3151:A,s<1440:A,R}
|
||||||
|
mxm{a<3193:A,x>816:R,a<3543:gqk,R}
|
||||||
|
fsp{a<3234:A,A}
|
||||||
|
tzf{s>2391:A,x>877:R,s>1154:A,R}
|
||||||
|
xgh{s>1188:mkk,a>2481:jm,kdc}
|
||||||
|
mjr{a>2688:zf,s>3239:gq,x<1313:R,fkc}
|
||||||
|
tvs{m<3240:gz,m<3630:clp,mjr}
|
||||||
|
zxp{a<2636:R,m<2968:R,a<2656:R,R}
|
||||||
|
kzp{a<2031:A,R}
|
||||||
|
rjl{s<592:frt,A}
|
||||||
|
vbz{a>2594:R,R}
|
||||||
|
klg{x>3362:A,s<1485:R,a>3704:R,A}
|
||||||
|
gr{m>1117:A,R}
|
||||||
|
nm{m>2633:R,A}
|
||||||
|
qkc{x>2875:R,R}
|
||||||
|
tsb{a<3865:A,x>2852:R,R}
|
||||||
|
lhm{s>3225:xs,a<2729:pj,m>3065:kx,xf}
|
||||||
|
blb{m<1562:A,R}
|
||||||
|
nsz{s<2211:jn,x<2387:nb,R}
|
||||||
|
tsj{x<3454:A,a<3740:R,x>3695:R,R}
|
||||||
|
bxk{x<487:A,m<3001:jzs,m>3535:R,zgt}
|
||||||
|
qq{a>2875:A,s<1314:A,m<982:A,R}
|
||||||
|
ksq{s<1649:R,x>2393:R,R}
|
||||||
|
hdz{x>3225:R,s>2321:A,R}
|
||||||
|
hp{m<1838:R,s<2302:A,x<588:R,A}
|
||||||
|
kf{a>748:A,A}
|
||||||
|
vb{m>3549:gvm,m>3403:R,A}
|
||||||
|
nx{s>486:R,A}
|
||||||
|
vtk{x<3172:tr,a>3353:nz,jr}
|
||||||
|
mlt{a>2987:A,s>286:A,A}
|
||||||
|
mv{s>2214:A,s<1986:A,s<2104:R,A}
|
||||||
|
fs{m<551:nll,hrj}
|
||||||
|
nh{s<3247:R,m>693:A,a>2956:A,R}
|
||||||
|
vpn{m<1447:R,gf}
|
||||||
|
bpd{a<3269:A,A}
|
||||||
|
mq{m<404:A,x>243:A,A}
|
||||||
|
jjx{x>3138:A,a>670:R,s>3088:R,A}
|
||||||
|
pn{s<1297:ds,m>1065:bj,bmf}
|
||||||
|
xp{x<1214:A,a<3436:R,m>866:R,A}
|
||||||
|
mpt{s>266:R,a>2276:A,A}
|
||||||
|
vk{m<1307:hd,tsj}
|
||||||
|
ql{a<1594:A,A}
|
||||||
|
bsb{m>2463:lks,x>626:tz,kk}
|
||||||
|
fn{a>1154:A,m<2652:R,s<1641:vtg,pzz}
|
||||||
|
knc{x<883:rfg,s<731:lv,s<1274:jkh,vdh}
|
||||||
|
kc{x<1160:jt,a>2721:qzg,m>1522:lrf,dg}
|
||||||
|
px{s<239:R,s>302:A,R}
|
||||||
|
bzf{m>3078:tln,s>575:gp,ml}
|
||||||
|
qfg{x>1167:R,x<1086:R,a>705:R,A}
|
||||||
|
ffn{a<1088:mbb,m<520:sb,vf}
|
||||||
|
jhg{m<3331:R,R}
|
||||||
|
llm{s>2346:R,a>2587:A,R}
|
||||||
|
xdr{s>3119:jxb,x>714:R,m<1724:zxl,hp}
|
||||||
|
cf{x<369:A,x<488:R,a<1340:A,A}
|
||||||
|
pvt{s>301:A,x<1488:A,a>3250:A,R}
|
||||||
|
dpm{x<3365:A,m>3696:A,R}
|
||||||
|
dhk{a>611:R,m>497:A,a<349:A,R}
|
||||||
|
dg{s>517:R,m<1250:fz,R}
|
||||||
|
ph{x<3427:R,a<2511:R,A}
|
||||||
|
hsx{x<1317:R,a<970:bzc,a<1412:cp,A}
|
||||||
|
mzb{m<2475:A,a<3151:R,s<101:A,A}
|
||||||
|
jtj{m<657:R,m<1047:R,s<1082:R,R}
|
||||||
|
xv{x>1004:A,s<1572:R,R}
|
||||||
|
cx{a<2527:A,A}
|
||||||
|
zn{m<2693:A,s>2559:R,m>3231:A,A}
|
||||||
|
nll{m<187:R,a>3715:A,R}
|
||||||
|
dh{x<1366:A,fq}
|
||||||
|
dr{a<3764:hf,a<3914:A,m<3290:A,R}
|
||||||
|
qz{s<257:R,fsp}
|
||||||
|
xfl{x>3188:A,x<2536:R,s<2342:A,A}
|
||||||
|
cz{m>3153:R,x<1136:R,x<1184:A,A}
|
||||||
|
qcf{s>2754:kmb,R}
|
||||||
|
fm{m<1085:R,a>2556:A,a>2420:R,R}
|
||||||
|
ld{s>737:A,s>489:R,a<88:A,R}
|
||||||
|
rfg{s<1129:ft,m>1514:mk,m>934:jpb,ggs}
|
||||||
|
lzh{m<1134:R,m<1308:R,A}
|
||||||
|
ckk{s>1464:lzh,s>1179:qq,R}
|
||||||
|
bvc{x>510:kt,m>1338:hh,pmm}
|
||||||
|
xtr{x>1686:A,R}
|
||||||
|
gxb{s<352:R,s<392:A,x>2751:A,R}
|
||||||
|
npd{a<3087:A,m>1379:vg,R}
|
||||||
|
hch{a>2219:R,A}
|
||||||
|
nj{m<2605:R,s<2930:R,R}
|
||||||
|
cvj{x<1520:R,qtm}
|
||||||
|
cgx{a<3678:R,s<2581:R,R}
|
||||||
|
tm{x>2596:A,A}
|
||||||
|
qtm{s>1379:A,a<2574:R,R}
|
||||||
|
ftt{s<2273:R,s>3405:A,m<609:R,A}
|
||||||
|
gqk{m<2274:R,a>3345:A,a<3279:A,R}
|
||||||
|
xqn{m<2098:R,a<1184:R,A}
|
||||||
|
qpm{x<2347:rff,x<2776:A,x>2977:A,ntz}
|
||||||
|
hvj{x<3486:R,A}
|
||||||
|
tpb{m<2448:lh,rjg}
|
||||||
|
shq{m>671:R,s>206:A,R}
|
||||||
|
htg{a>904:A,x>231:R,A}
|
||||||
|
jq{s<2890:dn,R}
|
||||||
|
gf{a<1251:A,A}
|
||||||
|
vl{m>913:ccb,a<1148:tb,s>2525:kbs,qtz}
|
||||||
|
xhl{s>399:R,a>2578:zxp,A}
|
||||||
|
ntz{m<273:A,R}
|
||||||
|
ntb{m<3543:qf,m<3783:lss,jj}
|
||||||
|
thm{a>1424:R,A}
|
||||||
|
km{m>3338:R,m>2932:A,x<3299:R,A}
|
||||||
|
fh{s>1157:xq,vk}
|
||||||
|
ljt{a>2529:R,m<1762:R,A}
|
||||||
|
hgv{s<1087:R,m<1627:A,x<1370:A,A}
|
||||||
|
brj{a>3113:gdz,a<2926:gkc,a<3040:zz,khd}
|
||||||
|
nz{x>3516:R,x<3380:A,A}
|
||||||
|
nvx{a>3182:R,x<3714:R,x>3816:A,R}
|
||||||
|
fx{a>3193:A,nhk}
|
||||||
|
spv{a>2824:vbl,m>2404:vtb,kqz}
|
||||||
|
zpn{s>2774:nj,m<2788:jmx,hvj}
|
||||||
|
cnx{s<1825:R,A}
|
||||||
|
jkl{a<2564:R,A}
|
||||||
|
lhf{s>1439:A,s<718:A,m<3252:A,A}
|
||||||
|
rm{x<225:A,A}
|
||||||
|
jxz{a<2321:A,a>2367:A,m>185:A,R}
|
||||||
|
hzq{a>651:R,x>2192:A,a>607:R,A}
|
||||||
|
jhv{a>3199:knc,s>776:pn,m>1007:kc,bx}
|
||||||
|
svj{a>3616:R,m>3421:R,m>2865:A,R}
|
||||||
|
vcg{s>2903:R,R}
|
||||||
|
vhm{m>1914:R,m<1754:R,x>1550:A,R}
|
||||||
|
ccb{s>1843:qt,bvh}
|
||||||
|
qr{x>2395:sv,A}
|
||||||
|
tlg{m<1031:A,x>2590:xfh,zp}
|
||||||
|
pt{s>435:A,a<2696:gg,s>170:mlt,xkz}
|
||||||
|
rj{x>1493:A,m<523:R,s>2867:A,R}
|
||||||
|
pr{a>2732:A,m<2650:A,A}
|
||||||
|
hzp{a>1120:kvf,m>3388:mf,hv}
|
||||||
|
btf{s<3748:xxc,A}
|
||||||
|
tr{m>717:R,A}
|
||||||
|
rv{a>672:R,R}
|
||||||
|
qg{s<2427:R,m<319:R,R}
|
||||||
|
lk{s<3170:A,A}
|
||||||
|
ksr{m>3137:gs,a<3314:hbg,s<1465:R,zk}
|
||||||
|
dbs{m>720:hk,a>2451:mvg,a<2212:kz,frl}
|
||||||
|
zdx{x<3645:R,s>849:A,A}
|
||||||
|
gvv{s>3441:R,A}
|
||||||
|
jlj{x>3003:cl,mcj}
|
||||||
|
vtb{s<2272:xgh,s>3350:ffz,vpj}
|
||||||
|
bdt{x<2027:px,x<2238:qh,R}
|
||||||
|
hbg{a<2847:R,A}
|
||||||
|
xd{x>2897:rd,a<3376:qr,nsz}
|
||||||
|
hb{m<77:R,a<1618:A,s>1205:nns,A}
|
||||||
|
lzj{m>2039:R,A}
|
||||||
|
ml{a>3118:R,s>304:R,zkv}
|
||||||
|
mt{s>2057:A,x>3358:npn,xzh}
|
||||||
|
htv{x>3422:A,a<1058:jjx,s>3318:R,mb}
|
||||||
|
lrm{x<2442:jxt,s>1388:hcm,R}
|
||||||
|
zjc{x>1530:A,a>3635:R,R}
|
||||||
|
kgl{x<688:fn,a<795:prh,dk}
|
||||||
|
pcz{m>3387:A,x<2362:A,A}
|
||||||
|
sf{a>690:A,mhf}
|
||||||
|
gqn{a<3554:A,A}
|
||||||
|
xfh{a>2277:A,s<2581:A,x<3067:R,A}
|
||||||
|
nlj{m<379:R,s<2220:A,R}
|
||||||
|
mcj{a>3825:ncb,x>2185:xjm,m>3112:R,R}
|
||||||
|
tln{s<565:pvt,a<3200:jlq,m>3598:lsx,A}
|
||||||
|
xns{m>2818:A,x>1648:R,m<2614:A,ht}
|
||||||
|
mx{s<940:R,s>1425:A,m>3518:tpn,A}
|
||||||
|
qgs{s>3234:rml,x>1876:pht,s<2763:R,tfv}
|
||||||
|
gt{s<3681:A,a<3251:R,R}
|
||||||
|
rcq{s>317:R,m<747:A,x>1403:R,R}
|
||||||
|
hzc{x<3241:A,s<1489:A,jbc}
|
||||||
|
fq{x>1398:A,s>2516:A,m>2301:R,R}
|
||||||
|
kvf{a<1562:cf,x>248:R,s>1776:qlm,A}
|
||||||
|
jfj{x<3469:A,a<2580:jz,s<2074:dbj,A}
|
||||||
|
vdh{s>1624:R,m>1500:rfd,zjn}
|
||||||
|
mg{s>1357:cn,rjl}
|
||||||
|
qnt{s<483:R,x>3442:R,A}
|
||||||
|
mp{s>3114:xqz,bq}
|
||||||
|
crp{a<3714:R,vj}
|
||||||
|
kq{m>3155:A,x>1456:R,R}
|
||||||
|
fhm{x>702:A,a<1104:rcj,zgp}
|
||||||
|
sl{x<1100:R,a<1423:A,A}
|
||||||
|
stp{s>2555:A,s>2383:A,s>2339:A,A}
|
||||||
|
pb{x<247:A,a>2834:fhp,a>2286:fm,R}
|
||||||
|
kbs{a>1536:zkr,xqb}
|
||||||
|
chf{s>2200:A,R}
|
||||||
|
bmc{x<968:A,x<982:A,A}
|
||||||
|
tjq{x<2908:btn,a<2595:dpm,mzg}
|
||||||
|
vfr{s>2143:pg,bsv}
|
||||||
|
bm{m<1791:R,m<1877:R,A}
|
||||||
|
kv{m>1866:jlj,m<870:fs,x<3127:vm,fh}
|
||||||
|
jpr{x<3038:R,a>3300:A,R}
|
||||||
|
gs{s>1177:R,R}
|
||||||
|
nhz{s>1928:R,s>1173:R,A}
|
||||||
|
hht{a<3615:msh,A}
|
||||||
|
mz{s>2285:R,s<2080:lzj,a>2672:gfp,gc}
|
||||||
|
kg{s>2590:R,R}
|
||||||
|
jr{a>3221:R,s<1664:nvx,ddv}
|
||||||
|
jpf{s<2652:A,a>2699:R,A}
|
||||||
|
cp{s>3057:A,x<1389:R,A}
|
||||||
|
tpn{m>3810:A,s<1214:A,x<2439:A,R}
|
||||||
|
vm{m>1226:tj,pc}
|
||||||
|
fr{m>557:A,a>3034:zjq,R}
|
||||||
|
gjj{m<3399:qzj,m<3784:cdl,a>2319:btf,ptj}
|
||||||
|
tjl{m<2439:A,m<3400:R,a<3075:A,R}
|
||||||
|
jkh{m<1257:jtj,qzn}
|
||||||
|
npt{s<2730:A,s>3447:R,a<2249:R,A}
|
||||||
|
xh{a<750:R,x<368:R,x>484:R,A}
|
||||||
|
sbx{s<2867:R,R}
|
||||||
|
zpj{s<1876:vpn,sf}
|
||||||
|
ln{a>3164:R,m<2847:R,m<2960:R,R}
|
||||||
|
cg{a<2409:R,s>3521:R,m>3415:R,A}
|
||||||
|
pg{x<2668:bjj,m>3516:htv,dvl}
|
||||||
|
lzk{m<3217:A,s>3712:trb,m>3591:qrz,A}
|
||||||
|
qkg{m<422:gx,x<3500:A,x<3738:zdx,R}
|
||||||
|
vkc{a>791:lnt,tzf}
|
||||||
|
ktk{s>3706:A,x>2390:R,cg}
|
||||||
|
dph{x>3090:R,a>2301:A,x<2908:R,R}
|
||||||
|
rq{x>327:R,x>164:A,R}
|
||||||
|
gl{s>487:A,a>1655:A,a<1331:R,A}
|
||||||
|
jmx{a<1052:A,s<2652:A,x>3318:R,A}
|
||||||
|
tk{s<3036:zpn,skp}
|
||||||
|
xkz{s<107:A,A}
|
||||||
|
ncb{s<760:R,s>1392:A,a>3927:R,A}
|
||||||
|
zv{s<859:R,A}
|
||||||
|
jzs{a<2665:A,s>2889:R,s>2655:A,A}
|
||||||
|
zbv{s<2370:npx,szq}
|
||||||
|
sxd{x<3268:R,a<3101:A,A}
|
||||||
|
kqd{s>2509:R,A}
|
||||||
|
fhp{m>943:R,s<3533:R,A}
|
||||||
|
jcg{a<2636:rgg,s>2865:xtr,a>3473:qbq,qtd}
|
||||||
|
fv{x>1586:sfh,s>1744:lhm,s<1005:bzf,ppd}
|
||||||
|
ppd{a>3253:prl,x<1484:zq,m>3222:cvj,mn}
|
||||||
|
zp{a<2416:A,m<1055:A,a<2598:A,A}
|
||||||
|
dl{s>1430:fr,ddt}
|
||||||
|
rvs{x<2743:jng,s<71:A,m>1651:mzb,dm}
|
||||||
|
lss{a>446:A,x>912:A,s>2317:tpj,dt}
|
||||||
|
cj{m<2996:A,m>3036:A,A}
|
||||||
|
vt{s>2338:R,a<1268:A,R}
|
||||||
|
zxl{x<637:A,R}
|
||||||
|
jng{m>2074:R,s<55:A,s<103:A,R}
|
||||||
|
gdc{s>3086:R,x>291:A,A}
|
||||||
|
jm{a<2685:xhl,rlq}
|
||||||
|
bst{m>1876:R,s>175:R,a>3154:A,A}
|
||||||
|
vtg{m>2801:A,s<673:A,m<2719:R,A}
|
||||||
|
gxs{a<2679:ljt,x>2149:A,s>2360:R,R}
|
||||||
|
tg{s>3232:gt,a>2631:xp,hfz}
|
||||||
|
xch{s<1053:R,s>1849:R,s<1395:R,R}
|
||||||
|
mvg{x<3100:qpm,s>2375:jkt,qkg}
|
||||||
|
cl{m>2802:cd,s<810:A,rfn}
|
||||||
|
ptk{s>2833:A,a>2436:sdx,s>2408:xfc,mv}
|
||||||
|
jj{x<576:A,R}
|
||||||
|
dvl{x>3429:A,a>954:R,a<621:lk,A}
|
||||||
|
jpb{m<1263:R,s>1379:A,x>568:A,A}
|
||||||
|
lsx{x>1481:R,m>3782:R,A}
|
||||||
|
nk{m>797:R,A}
|
||||||
|
qs{x<1815:A,a<208:ld,R}
|
||||||
|
jrr{x<2672:gxs,m<1958:hdz,jfj}
|
||||||
|
xs{s>3692:brf,x<1496:kq,mnl}
|
||||||
|
bh{a<1203:A,R}
|
||||||
|
gpm{m<414:A,x<3045:R,A}
|
||||||
|
xl{x>2732:kh,s<3328:jq,hzg}
|
||||||
|
lbr{s>2768:R,m>2649:mbq,jkl}
|
||||||
|
rpj{a<2149:A,x<2393:R,a<2171:A,A}
|
||||||
|
jbx{a>2843:bpd,s<571:cz,m<3351:cx,R}
|
||||||
|
gc{x>209:A,s<2192:A,R}
|
||||||
|
gp{m>2717:R,m>2542:xhq,A}
|
||||||
|
btp{m>880:A,x<2832:A,nk}
|
||||||
|
zx{a>374:R,m>2870:A,x<1136:R,A}
|
||||||
|
cqj{m<1430:A,x<3333:R,s<1454:A,R}
|
||||||
|
mzg{m<3447:A,m<3636:A,A}
|
||||||
|
pcg{a>746:mp,a<342:nsj,a<566:qgs,kck}
|
||||||
|
cjv{x>97:R,a>1081:ql,m<1933:gbv,nn}
|
||||||
|
lr{x>984:rcq,x<597:A,m<744:bpm,A}
|
||||||
|
mn{m<2758:R,R}
|
||||||
|
mbb{m>592:qfg,qg}
|
||||||
|
vqx{x<2718:rpj,m<417:fk,ftt}
|
||||||
|
zgr{m<1436:A,A}
|
||||||
|
gx{m>266:A,m<109:A,R}
|
||||||
|
zh{a>1474:A,x<1765:A,m>809:R,R}
|
||||||
|
rd{a<3284:sxd,a>3557:znb,s<2290:R,scc}
|
||||||
|
vpq{m<385:thm,s<850:gl,A}
|
||||||
|
sr{x>3148:R,s>2593:zrk,m>1611:zn,R}
|
||||||
|
btn{x>2233:A,s>2963:A,m<3546:R,R}
|
||||||
|
ddv{m<929:R,a<3189:R,R}
|
||||||
|
lj{s>720:hgv,s<311:A,m>1726:R,R}
|
||||||
|
dt{s>1007:A,m<3666:R,R}
|
||||||
|
jn{s>2145:A,A}
|
||||||
|
qtd{m<1205:A,a>3048:A,m<1281:R,A}
|
||||||
|
prl{m>3410:R,s<1367:hns,A}
|
||||||
|
mrg{x<2908:A,s<1375:R,x>3291:R,R}
|
||||||
|
pmm{s<3127:qlh,m>628:pb,xk}
|
||||||
|
sb{m>186:jbn,x>1199:R,s>1631:st,sl}
|
||||||
|
vj{x>3191:R,s<2638:A,A}
|
||||||
|
xq{x>3521:psx,klg}
|
||||||
|
trz{x>1532:R,R}
|
||||||
|
kck{m<2847:hzq,m>3005:R,m>2951:txt,dd}
|
||||||
|
jqg{x<1371:R,a<2887:R,A}
|
||||||
|
npn{x<3611:A,a>2239:R,a>2073:R,R}
|
||||||
|
xjm{s<752:R,a<3700:A,A}
|
||||||
|
bhj{s<2435:ndb,a>3069:nbp,x<1135:sjg,tvs}
|
||||||
|
mm{x<427:R,R}
|
||||||
|
vbb{s<129:rvs,x>2919:xg,x>2355:qz,bdt}
|
||||||
|
jlq{s<782:R,R}
|
||||||
|
gvm{s<2807:R,x>3086:A,a>2154:R,A}
|
||||||
|
vpj{a>2388:fbs,vz}
|
||||||
|
scc{s>2384:A,A}
|
||||||
|
bsv{a>993:tm,a>339:mx,x<2540:qs,nf}
|
||||||
|
fd{x>1200:rcv,x>1108:R,cnx}
|
||||||
|
tfv{s<2966:A,A}
|
||||||
|
qzj{s<3758:A,xn}
|
||||||
|
tz{x<939:ctb,m<1285:ffn,ch}
|
||||||
|
hv{a>827:A,s>1420:xh,R}
|
||||||
|
xpv{x<1644:R,R}
|
||||||
|
khd{x<2613:tjl,a<3080:A,A}
|
||||||
|
lz{a<2446:pz,jrr}
|
||||||
|
hfz{x<1227:R,x<1306:R,x>1351:A,A}
|
||||||
|
tj{x>2413:blb,A}
|
||||||
|
cd{a<3723:A,s>824:R,x>3620:A,A}
|
||||||
|
jkz{s<574:R,x<2957:R,s<839:A,A}
|
||||||
|
bpm{s<309:R,a<2751:R,R}
|
||||||
|
sjg{s>3133:dlk,qcf}
|
||||||
|
lnj{s>408:A,m<3185:A,s<382:R,A}
|
||||||
|
qlm{m>3399:A,m>3160:R,s<2770:A,R}
|
||||||
|
nqj{m>3601:A,s<2462:A,R}
|
||||||
|
qmk{a<218:A,m<2581:A,x<1964:R,A}
|
||||||
|
zkv{a<2439:A,a>2836:R,s>108:A,R}
|
||||||
|
dbj{a<2726:A,m>2173:A,A}
|
||||||
|
skp{a>1102:R,x<3363:ks,R}
|
||||||
|
pl{a>1567:lld,ss}
|
||||||
|
sdx{x>1582:A,a<2789:A,a>2991:R,R}
|
||||||
|
kpp{a<3749:R,a>3896:R,a>3815:R,A}
|
||||||
|
tjp{a>2329:R,R}
|
||||||
|
jsd{x<1697:R,a<2402:ff,m<3616:R,nhz}
|
||||||
|
rjg{x<955:zbv,x<1405:bhj,fv}
|
||||||
|
bpt{a>2950:lrm,m>712:ckk,kft}
|
||||||
|
rbf{s>3056:R,m>2843:A,A}
|
||||||
|
jqn{a>2437:A,x>2389:A,x<2155:R,R}
|
||||||
|
lld{a<1799:R,m>116:A,s>1201:A,R}
|
||||||
|
hm{x>1051:A,s>3482:A,x>1005:R,A}
|
||||||
|
bq{s<2735:R,a<1253:R,s>2952:A,A}
|
||||||
|
mc{m<103:A,s>2774:A,jxz}
|
||||||
|
mb{m>3733:A,a>1638:A,x<3043:R,A}
|
||||||
|
jkt{a<2628:ph,A}
|
||||||
|
xll{m>1829:A,x<1433:A,m<1592:A,R}
|
||||||
|
nnx{m<1438:gd,cjv}
|
||||||
|
nbp{x>1168:vx,x<1027:nrk,m<3404:xlh,jh}
|
||||||
|
jxt{a>3018:R,a>2989:R,x<2081:A,A}
|
||||||
|
qlh{s>2464:A,a>3258:fvc,R}
|
||||||
|
pkr{m>99:A,s<992:tjp,a>2330:R,R}
|
||||||
|
msc{m<1704:vl,m<3193:rbv,vfr}
|
||||||
|
ncx{x>3527:R,rv}
|
||||||
|
mnl{a<2870:R,s<3477:A,x>1527:A,A}
|
||||||
|
bzc{a>534:R,s>2369:R,R}
|
||||||
|
cv{m<2520:R,a>1382:A,R}
|
||||||
|
bjj{s<3237:sc,x>2020:R,A}
|
||||||
|
dxt{x>1973:R,x>1653:A,m<2147:R,A}
|
||||||
|
rbv{s<2474:fdn,m<2300:xl,x>2579:tk,pcg}
|
||||||
|
tb{x>3001:ncx,dhk}
|
||||||
|
hpr{s>740:R,A}
|
||||||
|
vg{m>1757:A,A}
|
||||||
|
zk{x>699:A,a>3640:A,A}
|
||||||
|
hns{x>1525:A,a<3550:R,a<3709:R,A}
|
||||||
|
in{a<1943:sg,x<1758:tpb,spv}
|
||||||
|
hpn{s<1880:jqn,A}
|
||||||
|
zjn{s<1412:R,A}
|
||||||
|
nhf{x<1660:A,x<1701:A,a>3374:A,R}
|
||||||
|
sc{x>1869:A,x<1591:R,R}
|
||||||
|
mkk{s<1676:tqm,x>2973:mt,hpn}
|
||||||
|
hz{a>2110:A,x>3216:R,a>2048:R,A}
|
||||||
|
ggs{s<1546:R,x>545:R,a>3613:A,R}
|
||||||
|
rgg{m>1130:A,R}
|
||||||
|
gdz{a<3255:A,a>3354:R,x<2961:ksq,ncv}
|
||||||
|
bmf{s>1655:R,a>2724:cgc,s>1420:xb,R}
|
||||||
|
khx{a>3552:R,x<1651:R,A}
|
||||||
|
qh{s>220:R,a<3157:R,R}
|
||||||
|
br{m<2805:pr,a>2750:cj,R}
|
||||||
|
jbc{a<2031:R,a<2059:A,m>600:R,R}
|
||||||
|
ddt{s>1226:A,A}
|
||||||
|
nqp{a<237:A,x<3128:A,s<1505:A,A}
|
||||||
|
nv{a<2139:rdn,s>247:gxb,m<2991:R,R}
|
||||||
|
pm{s<1106:A,A}
|
||||||
|
xhq{m>2657:R,s<856:R,A}
|
||||||
|
gkc{a<2864:A,s>1480:qkc,a>2894:R,R}
|
||||||
|
jh{x<1078:jls,A}
|
||||||
|
nf{a>157:R,R}
|
||||||
|
kft{a<2892:qx,m<461:R,R}
|
||||||
|
nkr{s<2913:A,x<2665:A,a<2197:R,R}
|
||||||
|
npx{x>520:ksr,ktf}
|
||||||
|
dn{x>2107:R,m<1969:A,a<693:A,A}
|
||||||
|
ss{a<1365:A,A}
|
||||||
|
kh{m>1995:xqn,A}
|
||||||
|
svb{m>2476:A,A}
|
||||||
|
gq{x>1247:A,x>1201:R,s<3631:A,R}
|
||||||
|
txt{s<3120:A,m>2972:R,R}
|
||||||
|
lh{s<1864:jhv,x<1112:bvc,lp}
|
||||||
|
prh{m>2745:zx,R}
|
||||||
|
sfh{a>3014:xkl,m>3147:jsd,xns}
|
||||||
|
xpc{x<2539:nx,m<990:qnt,a<3196:A,R}
|
||||||
|
ktf{a>3147:R,rq}
|
||||||
|
jls{a>3554:A,R}
|
||||||
|
bz{s>1380:R,A}
|
||||||
|
xlh{m>2973:A,a>3598:A,s<3449:R,vpb}
|
||||||
|
mf{s<2422:htg,A}
|
||||||
|
xxc{x<3193:A,s>3483:R,a>2650:A,A}
|
||||||
|
ks{x>3068:A,a>438:A,A}
|
||||||
|
kmb{a>2559:A,x>1045:A,R}
|
||||||
|
dlk{a<2513:hm,x>1045:jhg,A}
|
||||||
|
dj{s>354:xbh,vbb}
|
||||||
|
jc{m>3180:A,a>209:R,R}
|
||||||
|
pzz{m>2855:R,R}
|
||||||
|
fkc{s<2799:R,R}
|
||||||
|
rfn{x>3437:A,s<1636:A,R}
|
||||||
|
gz{x<1228:A,rbf}
|
||||||
|
rt{a<330:qmv,m>2632:A,x<2000:R,R}
|
||||||
|
clp{s<3277:R,s>3578:A,x<1236:R,A}
|
||||||
|
hrj{a>3673:tsb,s>1280:jbm,a>3584:A,R}
|
||||||
|
rcv{a<2713:A,m<3092:R,a>3295:A,R}
|
||||||
|
jg{x<847:A,nh}
|
||||||
|
rhz{m>1561:vhm,x<1609:ddm,m>1357:vnp,jcg}
|
||||||
|
gg{a<2326:R,m>232:R,R}
|
||||||
|
vbl{s>2050:nr,a>3485:kv,s>998:jsm,dj}
|
||||||
|
dk{m<2735:A,m<2834:A,R}
|
||||||
|
xzh{a<2518:A,a>2621:A,A}
|
||||||
|
jbn{a>1459:R,m>326:R,R}
|
||||||
|
szq{s<3344:bxk,s<3665:fx,a<3313:vbz,dr}
|
||||||
|
fbm{a>3537:crp,sr}
|
||||||
|
rlq{s>644:tc,R}
|
||||||
|
nrv{x>3604:A,s>180:R,m>3198:R,R}
|
||||||
|
lm{x<1301:A,x<1356:A,A}
|
||||||
|
ck{a>2781:R,s>2456:A,s>2295:R,A}
|
||||||
|
zq{x<1440:R,s<1354:A,m>3127:R,R}
|
||||||
|
pxq{x<1540:R,x<1654:R,A}
|
||||||
|
tpj{x<398:R,R}
|
||||||
|
qmg{x<1806:A,R}
|
||||||
|
qmv{s>915:A,A}
|
||||||
|
hc{s>1234:A,a<3777:A,s<543:A,R}
|
||||||
|
kdc{s<448:nv,x>2934:dcz,hch}
|
||||||
|
vmb{m>2094:gvv,s>3496:ksm,bd}
|
||||||
|
xqb{m<485:mzt,s>3300:A,hs}
|
||||||
|
hzg{a<746:fsm,m>1952:dxt,s>3756:bm,bh}
|
||||||
|
vnp{x<1675:xpv,A}
|
||||||
|
nb{x>1991:A,R}
|
||||||
|
xk{a<3000:mq,s<3447:vr,x<333:R,R}
|
||||||
|
ctb{x>831:vkc,s<1355:fhm,a<914:jd,tp}
|
||||||
|
xg{m<1340:shq,m<2708:R,s>261:A,nrv}
|
||||||
|
bj{a<2444:R,xv}
|
||||||
|
zkr{s<3365:R,A}
|
||||||
|
ndb{s>904:fd,x<1242:jbx,lm}
|
||||||
|
dd{a>665:R,R}
|
||||||
|
lnt{a<1177:A,x<901:A,x<919:R,R}
|
||||||
|
nn{m<2151:R,m>2257:A,R}
|
||||||
|
psx{x>3837:A,R}
|
||||||
|
zgp{m>1002:A,A}
|
||||||
|
rjt{s<1606:kf,R}
|
||||||
|
tqm{x<3109:pcz,tf}
|
||||||
|
xkl{m>3259:nhf,m<2733:nm,ltt}
|
||||||
|
fvc{s<2245:R,a>3610:R,a<3395:A,A}
|
||||||
|
vx{s>3405:A,s<2864:R,x<1291:svj,A}
|
||||||
|
fbs{m>3094:tjq,a<2671:lbr,s>2980:br,zxf}
|
||||||
|
sv{x<2686:A,A}
|
||||||
|
jt{s>307:mm,s>190:A,A}
|
||||||
|
ltt{m<2932:A,m>3097:R,R}
|
||||||
|
klj{a<190:R,R}
|
||||||
|
zj{a<3839:R,a<3898:R,a<3932:R,A}
|
||||||
|
qrz{a>2385:R,a<2103:A,a<2217:A,A}
|
||||||
|
dp{x>1276:fg,s>2212:ck,a>3255:kp,A}
|
||||||
|
qzg{a<2978:jqg,s>401:A,a<3083:pxq,bst}
|
||||||
|
fk{x<3153:R,R}
|
||||||
|
rdn{s<275:A,x>2619:A,s>365:A,R}
|
||||||
|
xdd{a>2338:xfl,db}
|
||||||
|
ht{s>1867:R,a<2561:R,a>2852:R,R}
|
||||||
|
ffz{x>2633:gjj,cxf}
|
||||||
|
xfc{a>2266:R,m>607:A,R}
|
||||||
|
gfp{m>1781:A,A}
|
||||||
|
ch{x<1246:rjt,m>2038:dh,s<1350:lj,hsx}
|
||||||
|
kqz{m>1171:lz,dbs}
|
||||||
|
njh{a>2157:A,m<3857:R,R}
|
||||||
|
nt{m<710:R,x>2315:mrg,s>1511:A,zh}
|
||||||
|
gv{a>2350:chf,m>516:A,gpm}
|
||||||
|
kk{x<285:nnx,zpj}
|
||||||
|
vpb{a<3293:R,a>3455:A,R}
|
||||||
|
pz{a>2276:xdd,fkl}
|
||||||
|
jbm{x<2951:A,s<1599:R,m<734:R,R}
|
||||||
|
tx{x>2805:R,R}
|
||||||
|
lp{x<1388:gtz,m>1008:rhz,rrl}
|
||||||
|
xqz{m>2687:A,s>3438:A,A}
|
||||||
|
hcm{s<1693:R,x<2623:A,R}
|
||||||
|
frl{m>274:gv,s<1923:pkr,mc}
|
||||||
|
fkl{x>2563:hz,a<2108:sqt,A}
|
||||||
|
nsj{m<2752:qmk,klj}
|
||||||
|
mhf{a>337:R,R}
|
||||||
|
cgc{s>1479:R,a>2929:R,R}
|
||||||
|
hf{a<3567:A,A}
|
||||||
|
jz{x<3661:R,R}
|
||||||
|
vr{x>269:A,x<163:A,s<3259:R,A}
|
||||||
|
jjb{a<3106:jkz,s>650:zv,s>457:jpr,lnj}
|
||||||
|
bx{m>437:lr,pt}
|
||||||
|
cht{a<3523:A,s>2630:rj,m>418:zj,kpp}
|
||||||
|
pht{x>2122:A,A}
|
||||||
|
vd{s>601:A,m>1408:A,A}
|
||||||
|
sg{x>1447:msc,bsb}
|
||||||
|
|
||||||
|
{x=238,m=232,a=127,s=30}
|
||||||
|
{x=489,m=234,a=187,s=941}
|
||||||
|
{x=2468,m=1586,a=611,s=1302}
|
||||||
|
{x=3030,m=825,a=221,s=748}
|
||||||
|
{x=1624,m=855,a=450,s=1328}
|
||||||
|
{x=2230,m=1545,a=397,s=179}
|
||||||
|
{x=115,m=98,a=233,s=353}
|
||||||
|
{x=1243,m=261,a=1160,s=301}
|
||||||
|
{x=1435,m=740,a=1442,s=16}
|
||||||
|
{x=2214,m=944,a=803,s=235}
|
||||||
|
{x=205,m=28,a=1261,s=591}
|
||||||
|
{x=1727,m=2967,a=1451,s=503}
|
||||||
|
{x=523,m=199,a=1088,s=1280}
|
||||||
|
{x=287,m=1673,a=558,s=2635}
|
||||||
|
{x=825,m=425,a=1999,s=1170}
|
||||||
|
{x=2442,m=1080,a=695,s=2139}
|
||||||
|
{x=450,m=2398,a=774,s=1790}
|
||||||
|
{x=460,m=1105,a=1617,s=2377}
|
||||||
|
{x=715,m=150,a=323,s=446}
|
||||||
|
{x=95,m=57,a=418,s=59}
|
||||||
|
{x=593,m=773,a=1205,s=1522}
|
||||||
|
{x=1305,m=365,a=2267,s=748}
|
||||||
|
{x=1882,m=698,a=649,s=1619}
|
||||||
|
{x=1438,m=58,a=366,s=317}
|
||||||
|
{x=105,m=457,a=351,s=409}
|
||||||
|
{x=2637,m=48,a=1364,s=120}
|
||||||
|
{x=546,m=1212,a=553,s=2020}
|
||||||
|
{x=289,m=1487,a=433,s=72}
|
||||||
|
{x=819,m=1468,a=1981,s=63}
|
||||||
|
{x=3224,m=304,a=2422,s=1500}
|
||||||
|
{x=1805,m=225,a=1755,s=138}
|
||||||
|
{x=1165,m=2002,a=337,s=1705}
|
||||||
|
{x=1140,m=2753,a=1535,s=491}
|
||||||
|
{x=1302,m=1637,a=228,s=1471}
|
||||||
|
{x=2472,m=293,a=1432,s=96}
|
||||||
|
{x=1950,m=298,a=573,s=492}
|
||||||
|
{x=92,m=869,a=1050,s=13}
|
||||||
|
{x=300,m=1946,a=539,s=8}
|
||||||
|
{x=2314,m=296,a=344,s=838}
|
||||||
|
{x=2344,m=261,a=809,s=3}
|
||||||
|
{x=355,m=1190,a=2970,s=74}
|
||||||
|
{x=1006,m=1092,a=825,s=2021}
|
||||||
|
{x=216,m=920,a=494,s=2965}
|
||||||
|
{x=392,m=816,a=863,s=175}
|
||||||
|
{x=2724,m=1041,a=1005,s=229}
|
||||||
|
{x=1371,m=269,a=627,s=1167}
|
||||||
|
{x=411,m=442,a=455,s=731}
|
||||||
|
{x=116,m=1840,a=2947,s=380}
|
||||||
|
{x=1958,m=383,a=960,s=897}
|
||||||
|
{x=379,m=1018,a=540,s=1312}
|
||||||
|
{x=180,m=1900,a=1999,s=437}
|
||||||
|
{x=1698,m=113,a=62,s=1213}
|
||||||
|
{x=6,m=295,a=24,s=2020}
|
||||||
|
{x=808,m=3042,a=920,s=1168}
|
||||||
|
{x=2905,m=93,a=2757,s=341}
|
||||||
|
{x=651,m=1805,a=435,s=3238}
|
||||||
|
{x=1763,m=384,a=1075,s=616}
|
||||||
|
{x=214,m=3035,a=536,s=844}
|
||||||
|
{x=775,m=43,a=353,s=413}
|
||||||
|
{x=1285,m=1315,a=429,s=1249}
|
||||||
|
{x=564,m=38,a=1534,s=268}
|
||||||
|
{x=665,m=1685,a=292,s=243}
|
||||||
|
{x=1047,m=875,a=2636,s=616}
|
||||||
|
{x=6,m=495,a=1926,s=2163}
|
||||||
|
{x=768,m=1896,a=458,s=22}
|
||||||
|
{x=163,m=741,a=451,s=796}
|
||||||
|
{x=106,m=794,a=1675,s=2563}
|
||||||
|
{x=824,m=2607,a=42,s=843}
|
||||||
|
{x=78,m=83,a=1718,s=2672}
|
||||||
|
{x=22,m=1108,a=197,s=307}
|
||||||
|
{x=160,m=190,a=3555,s=508}
|
||||||
|
{x=229,m=564,a=830,s=3129}
|
||||||
|
{x=594,m=1196,a=364,s=1703}
|
||||||
|
{x=2721,m=1009,a=872,s=3632}
|
||||||
|
{x=2893,m=564,a=282,s=536}
|
||||||
|
{x=1317,m=2746,a=427,s=602}
|
||||||
|
{x=1741,m=104,a=986,s=2976}
|
||||||
|
{x=637,m=1381,a=1037,s=255}
|
||||||
|
{x=1398,m=1991,a=682,s=1001}
|
||||||
|
{x=537,m=1433,a=148,s=773}
|
||||||
|
{x=143,m=2070,a=3859,s=358}
|
||||||
|
{x=2483,m=1234,a=779,s=361}
|
||||||
|
{x=277,m=462,a=585,s=1220}
|
||||||
|
{x=90,m=2449,a=2007,s=1234}
|
||||||
|
{x=192,m=1049,a=1542,s=1112}
|
||||||
|
{x=1907,m=13,a=105,s=3675}
|
||||||
|
{x=716,m=425,a=349,s=2780}
|
||||||
|
{x=841,m=2048,a=196,s=661}
|
||||||
|
{x=235,m=737,a=761,s=1338}
|
||||||
|
{x=337,m=29,a=2368,s=1528}
|
||||||
|
{x=346,m=2113,a=1210,s=31}
|
||||||
|
{x=325,m=1303,a=963,s=370}
|
||||||
|
{x=404,m=120,a=7,s=39}
|
||||||
|
{x=365,m=1286,a=846,s=8}
|
||||||
|
{x=985,m=338,a=724,s=731}
|
||||||
|
{x=132,m=127,a=257,s=349}
|
||||||
|
{x=752,m=5,a=1352,s=2079}
|
||||||
|
{x=923,m=513,a=861,s=1540}
|
||||||
|
{x=344,m=1492,a=432,s=2336}
|
||||||
|
{x=1598,m=13,a=848,s=1218}
|
||||||
|
{x=63,m=2897,a=825,s=781}
|
||||||
|
{x=928,m=786,a=315,s=1069}
|
||||||
|
{x=92,m=512,a=2113,s=1421}
|
||||||
|
{x=1624,m=763,a=1679,s=2171}
|
||||||
|
{x=207,m=668,a=85,s=1765}
|
||||||
|
{x=60,m=2722,a=69,s=3242}
|
||||||
|
{x=520,m=145,a=827,s=21}
|
||||||
|
{x=290,m=13,a=2511,s=1}
|
||||||
|
{x=736,m=831,a=1352,s=505}
|
||||||
|
{x=2405,m=272,a=1729,s=356}
|
||||||
|
{x=480,m=1087,a=298,s=178}
|
||||||
|
{x=764,m=56,a=637,s=484}
|
||||||
|
{x=2977,m=426,a=2928,s=261}
|
||||||
|
{x=2578,m=175,a=857,s=49}
|
||||||
|
{x=323,m=1228,a=1597,s=789}
|
||||||
|
{x=80,m=85,a=1637,s=1499}
|
||||||
|
{x=2443,m=1388,a=1084,s=105}
|
||||||
|
{x=152,m=1105,a=594,s=17}
|
||||||
|
{x=1,m=2959,a=1212,s=2164}
|
||||||
|
{x=93,m=570,a=2985,s=506}
|
||||||
|
{x=58,m=166,a=19,s=479}
|
||||||
|
{x=48,m=3218,a=534,s=927}
|
||||||
|
{x=2853,m=1521,a=628,s=38}
|
||||||
|
{x=963,m=285,a=460,s=2077}
|
||||||
|
{x=370,m=474,a=555,s=305}
|
||||||
|
{x=1440,m=8,a=751,s=856}
|
||||||
|
{x=1522,m=1839,a=3393,s=679}
|
||||||
|
{x=1501,m=850,a=117,s=1264}
|
||||||
|
{x=513,m=704,a=303,s=824}
|
||||||
|
{x=2778,m=769,a=786,s=2078}
|
||||||
|
{x=643,m=1653,a=1183,s=1101}
|
||||||
|
{x=599,m=34,a=81,s=1551}
|
||||||
|
{x=1927,m=1347,a=890,s=167}
|
||||||
|
{x=270,m=491,a=1367,s=2548}
|
||||||
|
{x=656,m=1953,a=1256,s=374}
|
||||||
|
{x=369,m=841,a=694,s=41}
|
||||||
|
{x=307,m=2036,a=5,s=210}
|
||||||
|
{x=588,m=148,a=422,s=622}
|
||||||
|
{x=1045,m=644,a=667,s=46}
|
||||||
|
{x=955,m=253,a=2044,s=1816}
|
||||||
|
{x=340,m=1166,a=70,s=1416}
|
||||||
|
{x=446,m=2736,a=185,s=1831}
|
||||||
|
{x=410,m=495,a=1996,s=1263}
|
||||||
|
{x=396,m=292,a=1697,s=178}
|
||||||
|
{x=104,m=976,a=2453,s=437}
|
||||||
|
{x=1018,m=1114,a=1377,s=89}
|
||||||
|
{x=1112,m=2070,a=611,s=389}
|
||||||
|
{x=965,m=239,a=2490,s=3543}
|
||||||
|
{x=629,m=494,a=1964,s=246}
|
||||||
|
{x=1509,m=292,a=2019,s=222}
|
||||||
|
{x=806,m=902,a=2764,s=757}
|
||||||
|
{x=452,m=2631,a=3531,s=61}
|
||||||
|
{x=976,m=959,a=247,s=771}
|
||||||
|
{x=1437,m=183,a=410,s=631}
|
||||||
|
{x=1984,m=792,a=1049,s=102}
|
||||||
|
{x=2670,m=583,a=146,s=2063}
|
||||||
|
{x=21,m=965,a=272,s=666}
|
||||||
|
{x=939,m=668,a=605,s=887}
|
||||||
|
{x=1956,m=1374,a=1251,s=1838}
|
||||||
|
{x=2159,m=1647,a=2537,s=1086}
|
||||||
|
{x=1366,m=1926,a=1117,s=385}
|
||||||
|
{x=426,m=387,a=1672,s=60}
|
||||||
|
{x=454,m=973,a=1007,s=1745}
|
||||||
|
{x=1230,m=1294,a=111,s=2851}
|
||||||
|
{x=947,m=1357,a=589,s=3}
|
||||||
|
{x=387,m=460,a=880,s=1002}
|
||||||
|
{x=409,m=886,a=1385,s=312}
|
||||||
|
{x=2082,m=219,a=3224,s=967}
|
||||||
|
{x=40,m=1073,a=2745,s=213}
|
||||||
|
{x=192,m=168,a=462,s=313}
|
||||||
|
{x=3387,m=782,a=937,s=272}
|
||||||
|
{x=2172,m=1671,a=890,s=1794}
|
||||||
|
{x=717,m=684,a=118,s=388}
|
||||||
|
{x=2392,m=26,a=108,s=1298}
|
||||||
|
{x=537,m=1924,a=241,s=2892}
|
||||||
|
{x=2531,m=1322,a=600,s=149}
|
||||||
|
{x=485,m=500,a=101,s=1}
|
||||||
|
{x=597,m=3017,a=397,s=1541}
|
||||||
|
{x=1234,m=172,a=225,s=383}
|
||||||
|
{x=337,m=3497,a=868,s=1029}
|
||||||
|
{x=1175,m=1917,a=226,s=3485}
|
||||||
|
{x=1627,m=2067,a=1210,s=2355}
|
||||||
|
{x=370,m=1609,a=3437,s=876}
|
||||||
|
{x=640,m=125,a=1038,s=216}
|
||||||
|
{x=327,m=6,a=189,s=29}
|
||||||
|
{x=3,m=1821,a=819,s=66}
|
||||||
|
{x=115,m=1831,a=662,s=970}
|
||||||
|
{x=2709,m=458,a=1189,s=1403}
|
||||||
|
{x=2202,m=731,a=858,s=913}
|
||||||
|
{x=209,m=94,a=2212,s=457}
|
||||||
|
{x=756,m=3382,a=1674,s=1311}
|
||||||
|
{x=624,m=738,a=233,s=137}
|
||||||
|
{x=1310,m=1252,a=314,s=2120}
|
||||||
|
{x=15,m=2772,a=182,s=84}
|
||||||
|
{x=549,m=785,a=69,s=923}
|
||||||
|
{x=1623,m=1888,a=457,s=24}
|
||||||
|
{x=619,m=828,a=336,s=762}
|
||||||
|
{x=573,m=101,a=217,s=2115}
|
||||||
|
{x=50,m=1103,a=230,s=1461}
|
||||||
|
{x=780,m=2290,a=339,s=3021}
|
||||||
58
data/20.in
Normal file
58
data/20.in
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
%fg -> nt, gt
|
||||||
|
&zp -> rx
|
||||||
|
%fh -> nt, xz
|
||||||
|
%pj -> zj, zq
|
||||||
|
%jc -> nt, nk
|
||||||
|
%mr -> vv, pz
|
||||||
|
%cl -> fp, zq
|
||||||
|
%xb -> bl, vv
|
||||||
|
%nc -> zq
|
||||||
|
%mg -> vn
|
||||||
|
%zj -> cf
|
||||||
|
&sb -> zp
|
||||||
|
%ht -> pp
|
||||||
|
%gt -> jc
|
||||||
|
%rq -> ft
|
||||||
|
&nt -> rq, fg, ft, nd, gt, xz
|
||||||
|
%ps -> xm
|
||||||
|
%fs -> ff
|
||||||
|
%nb -> dv
|
||||||
|
%qd -> xb
|
||||||
|
%kg -> mr, vv
|
||||||
|
%dv -> vv, hr
|
||||||
|
%rm -> zq, fs
|
||||||
|
%nk -> rq, nt
|
||||||
|
%hr -> dm, vv
|
||||||
|
%xm -> vn, ht
|
||||||
|
%pp -> mq
|
||||||
|
%br -> vn, jz
|
||||||
|
%gr -> ln
|
||||||
|
%bh -> qd, vv
|
||||||
|
%cf -> gr, zq
|
||||||
|
&vv -> dm, bl, sb, nb, qd, bh
|
||||||
|
%zc -> zv
|
||||||
|
%zv -> dc, vn
|
||||||
|
%jz -> qs
|
||||||
|
&nd -> zp
|
||||||
|
%rd -> nc, zq
|
||||||
|
&ds -> zp
|
||||||
|
%mq -> vn, zc
|
||||||
|
%bl -> bb
|
||||||
|
%qn -> nt
|
||||||
|
%pz -> vv
|
||||||
|
%qs -> vn, ps
|
||||||
|
%lm -> nt, qn
|
||||||
|
%xz -> dr
|
||||||
|
%bb -> nb, vv
|
||||||
|
%dm -> kg
|
||||||
|
%ft -> fh
|
||||||
|
&vn -> br, jz, ht, ps, zc, pp, ds
|
||||||
|
%xd -> nt, lm
|
||||||
|
&hf -> zp
|
||||||
|
broadcaster -> pj, fg, bh, br
|
||||||
|
%fp -> rd, zq
|
||||||
|
&zq -> fs, gr, ff, hf, ln, zj, pj
|
||||||
|
%ff -> cl
|
||||||
|
%dr -> xd, nt
|
||||||
|
%ln -> rm
|
||||||
|
%dc -> mg, vn
|
||||||
131
data/21.in
Normal file
131
data/21.in
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
...................................................................................................................................
|
||||||
|
...........##......#..........#.#....#....................#....................#...#....#...........#................##...#......#.
|
||||||
|
....................#..........#.#.....###.............................#.......#.....#...........##.##.....#..............#..#.....
|
||||||
|
.#........#......................#...#.#..#..........#..........................###......#.#.#.#................#.............##...
|
||||||
|
.....#...........#..........#.#.#....................#.......................#.#..##.......##........#....##....#.......#..#.......
|
||||||
|
....#.#......#.....#............#............#..#...#..#...................#......#......#.............#.......#..#.....#....#.....
|
||||||
|
..#...#............#....#......#......#......#..#....#.#..........#..............#..................#..#......#...........##.#..#..
|
||||||
|
.............##...............#............#..................#....#..........#........#...............................#...#.#.....
|
||||||
|
......#......#....#....##......#.....#.........#...................................#....#................#....#......#.......##....
|
||||||
|
.....#.....#...................#....................#.......#..#....#..................#..........................#.#.......#......
|
||||||
|
...#.#..#..#................#..............#.........................##.................#..........#............#.##...........#.#.
|
||||||
|
....#........###.#..##.......#.......#..##..#...................................#.....#...##.........#..................#.......#..
|
||||||
|
..............#.............#...........#...........................#....#..........#..#...#.............#....#...........#........
|
||||||
|
.#.#.......#..#.....#..#............#...........#.........#.....#....#.........................#.............#.#...#..........#....
|
||||||
|
.......#.....#..#..#...............#...#...................##.#..........................................##.#......................
|
||||||
|
.............#........##.....#.............................#.........#..#.......................#.....#.........................#..
|
||||||
|
........#..............#......#......................#..........#..............................#...........#...........#...........
|
||||||
|
.....#.....#........#..................#....#.............#....#.........#..........................##.............................
|
||||||
|
....................#.#.....#...#........#..............#.......#.......#..#.........................#.............#.........#.....
|
||||||
|
...##.#....#.......#..........#.#........##..........#............#...#....#...#.............#...............#.............#.......
|
||||||
|
...#........#.#...................##.............#.#.......#...........#..#..................................#................#....
|
||||||
|
.........#............................................##..........#...#..#.......#..............#.....#..##...##....#..#...........
|
||||||
|
.#.....#.............#........#.......#...........#........#.#....##............................................#..............#...
|
||||||
|
.......#....##...#.....###.#....#..#............#...#.........................#.................#..#.#...........#.................
|
||||||
|
.................##....#.........#............##..#..........#.........#.....##.##............#...#.......#.......#......#.#.......
|
||||||
|
..##..............#..#..#...#.......#.......#...#..........#..........#.......##....#..........##............#.#....#....#..#......
|
||||||
|
........#...................#.#..###..............#...#.#.#.#.....#.....##..#...###..............#.......#..........#.....#........
|
||||||
|
..........##.............#......#.#....................#.#...................#..........#.............#.#....................#..##.
|
||||||
|
.#............................#..........#.#...#.........##..#...........#.#.....#...............#.........#.....#..#..............
|
||||||
|
....................#....#...##..........................#...#....#.#.......#.#...........................#...................#..#.
|
||||||
|
..........##......###....###.#............#.................................#..#...........#.......#..#.........................#..
|
||||||
|
..#.........#......###..................................#..........................##.#.#..................#.........#.##..#.#.....
|
||||||
|
.....#...................#...#...........#..#......#...................#...#...........#...#.........#...............#.............
|
||||||
|
........#.#.#.....................................#.#.........##......#.##.....#.#...#...................#.....................#...
|
||||||
|
..###..#......#.#.#.#................#.......#.#.....................#.#..#.#...............#....................#........#.##..#..
|
||||||
|
.#........#......#.##.....#...........#.............#....#...........#................................................#............
|
||||||
|
....#.........#..#................................#...............................#............................#...................
|
||||||
|
....#...#....#..#......#.........#..........#.......#.......#..........#.........#.......#.....#.............#......#...#..........
|
||||||
|
.....#..#......................................................#...#.........#................##...........#...........#..###......
|
||||||
|
...##....#...........#..........#.........#..........#..........#....##.............#....................................#......#..
|
||||||
|
....#........#.................#...........#..........#...##...................#....##...#.....#..#..............#..#..#....#......
|
||||||
|
...#.#............#.#.......................................#..#..#..................................#...............#.#.#.........
|
||||||
|
....#............#...........#...#..........#..#......................#.#...#.....#....................#.......##..........#.......
|
||||||
|
................#...................#....#....................##.........................#........................#......#.........
|
||||||
|
..............#...............#..#.......#..#......#....#...#.................#..#....#........#..#.....#.....................#....
|
||||||
|
.......#........................#.#....#....#..#................#....#.........#..............#........#...........#...............
|
||||||
|
...#.......#................#.....#........#....##.................#...#...............##.......#...#....................#.........
|
||||||
|
........#.........................#..#...##..........................##......##....#.....#.#....#..##............................#.
|
||||||
|
..#...##................##........#.........#..#.........##................................#.............#.#.................#.....
|
||||||
|
....#.............................#.............#...............#...........#...............#....#.....#....#.#....................
|
||||||
|
..........##.............#......#..................#.........#......#....#.......#....#......#....#................................
|
||||||
|
.....#.#.#........................#..#.........#.....................#..##...#.......#......#..#.....#...#..#...#..........#.......
|
||||||
|
...................#.#..........#...............#...#.#......#....#.................#.................###.....................#....
|
||||||
|
.....................................#.......#....#................#..........................#..........#.................##...#..
|
||||||
|
....#................#..#......#....#..................#..........................................#....#....#......#.......#.......
|
||||||
|
......#..........#........#...#...#..#................#.........#.........#...#.........#.#....................#..#................
|
||||||
|
.....#................#...#.#.#....#.#............##....#...........#......##..##............#......##.......#...#...............#.
|
||||||
|
...#..........#..........................#.................................#................#..........###...##.......#............
|
||||||
|
...........................#..........#......#.....#...#.#....#.....##.........##.....#.......................##..#..#..........#..
|
||||||
|
....................#......##...#.............#.....#.#....#...........#...##..#..#............#...#...............#...............
|
||||||
|
...............#.##.....#..........#..............#......#........#...........#..#.#......................#...#..#..##.............
|
||||||
|
...................#....##...#..#..............#....................###.....#............#.........##..#.....#.##..#...............
|
||||||
|
............................#......#.##.....#....#..#...#..###............#.............#.....................##...........#.......
|
||||||
|
............#.....#.#.#.........#...#........................#......#...................#...##..#.................#........#.......
|
||||||
|
................................#.........................................#...#.......#....#.........#.........#.....#...#.........
|
||||||
|
.................................................................S.................................................................
|
||||||
|
................#.......#.............................#.#......#................#..#..#......#..........#.............#............
|
||||||
|
.............##........#.......#.#............#.......#.#.......#...#.....#...........#....#..#................#...........#.......
|
||||||
|
............................#.#....##............#.##..###..............................#....#............#..#........#............
|
||||||
|
..................#........#.........##.....#....#...##.#......................###.....#..#........#.#.......##.......#............
|
||||||
|
...................#...##..........#.#..#................##....................###...................#.....#........#.#..........#.
|
||||||
|
.................##........................#....#.#..#.....##................#...........................#......#................#.
|
||||||
|
............................#........#........#..##.....#..#.......#......#.#...#...................................#...........##.
|
||||||
|
..............#..........#............#...#...............#.........#.#...#...##..##.....#...........#...#..........#.#............
|
||||||
|
.#.............#...#.........#.....###.#...............................#.....#.....#............#..#.........#.#.#.................
|
||||||
|
....#...............#..#.....#.....#.......##....#.#........#.##.............##..#.............#.#.#...........................#...
|
||||||
|
........................#.....#..#....#......#......#..#....#...#..#..........#....#...............#.........##..#.................
|
||||||
|
....#................#.....#.#............#..................#..#................#.........#.....#.............#...................
|
||||||
|
.................#.......#.....##.##.....#..................#..#......#....#...............#............#.#.#....#.........#....#..
|
||||||
|
.......#................#..#.........#......###.....#.#........#....##......#.......#..#.#.......#.#....#.#...............#........
|
||||||
|
...#.....#.#...............#....#..............#.........#...........#............#............#..#.#..##..........................
|
||||||
|
......#...............##.............#.#...............#....................#..#..##.#.#.................#......................#..
|
||||||
|
..#.....##..#.............#...#.......#.......................#........#.#.#............#...................#...................#..
|
||||||
|
........................#..#..................#..#.#.#..............................#...#...#......#....#.#........................
|
||||||
|
...#....................#................................#...#.....#...........#........#..#........#...................##.#.....#.
|
||||||
|
......#...##...#.................#..#..#....#.....#.....#.....#...#..................#.............................#..#......#.....
|
||||||
|
....................................#..................#....#...#.........#....#......................#.............#....###..#....
|
||||||
|
.##..#..#...##..........................#..#..#...........#..............#....#.........#....#....................#......##........
|
||||||
|
.##............#.#...............##....#.....#.......#..........#......#...............#..#...#........#.................#..#......
|
||||||
|
.#..#.##.........##.#..........#...........#...#...#.....#.#..#............##.........##...#.....................#...#........#....
|
||||||
|
.......#....#.#.....#........#..................#.............##........#..........##.........#..............#.#..#...#.....#.#..#.
|
||||||
|
...#..#....#........#.......................#.......#........#....#.........#..............#...#..#.#.......##...........#.#.#..#..
|
||||||
|
................#......#......................#...#...............#.#.....#......#..........#.##.#.........#....#...#......#..#....
|
||||||
|
..............##.#..#...............#.#...........#..#......#......#..#.#..#.................#.....................#.........#.#...
|
||||||
|
..#................#..#..#..........#........#.#.........#....#...........#...#.......#.#.......#......................#..#......#.
|
||||||
|
......#............#...##..........#...#..................#.....#............##............................#...#..#........#....#..
|
||||||
|
..................#..................................###.#..........#....##......#....#.................#..........#..#............
|
||||||
|
...#..#.......#......#........................#...#......#..................#.#.#.#.#.....#...................#..#...#......##...#.
|
||||||
|
....................#.#......#.......#......#....#.......#.#.......#.............#...#..#.........................#................
|
||||||
|
.........#................#.#...........##......#..#..#..................#....#......#......#.......#.#......#.........#.....#.....
|
||||||
|
..#..........#...........#.........................#.......#..........#....#...........#.#..............................#.....##...
|
||||||
|
.....#.#..#......#....#....#.............................##.....#...#......#..#..#...#..............#..........#.................#.
|
||||||
|
.............##....##.......................#.#............#................#....#.......#...................#.....................
|
||||||
|
..#.......#.........#......................................................#..#..#..............#..#.##............................
|
||||||
|
......#.......#....#............................................#.#...................##...............##......#.......#.........#.
|
||||||
|
..............#..#..............#...........#...............................#...................................#....#......#.#....
|
||||||
|
.........#....#......#.....#.................#..............#.................................................#........##..........
|
||||||
|
......#...##..............#....#.#............#..#....#...........#.........#..........................#......#.#..........##.#....
|
||||||
|
...#....#.....#........##...#...................#.#....#...........................#...........................#..........#........
|
||||||
|
.#..........#.#.....#............#.#................#...#.#..#...............#....#..........#.........#............#.......#.#....
|
||||||
|
.........#......#.#.#.......#....#...#.#......................#........#..#...#...................#.......#.........#............#.
|
||||||
|
..........................#.....#.................................#.#.....#.................................#.#...#.###....#.......
|
||||||
|
...#.................#..#.................#..............#........#.......#.#.............#................#...#..#...........#....
|
||||||
|
....#..#....................#...............................#.#....#...........................#..#.....##..#................##..#.
|
||||||
|
....#...#...#..##........##......#...#......#................#..#.......................#....#........#...#.......#..........#.....
|
||||||
|
............#.....#................#.........#.............#...#...#.#................#...........#......#..#.......#........#.#...
|
||||||
|
......#...#...........#....#..#.#..............................#......................................................#............
|
||||||
|
................#.....#.....#....#.......#..#...#..........#.#......................#..#...#.....#...........#.............#..#....
|
||||||
|
..............#.....#.......#.#.............#.................#.........##.............#......#..............#.....................
|
||||||
|
...#......#.##...............#..........#...#....#............##................#........#.#......#.#.#............................
|
||||||
|
.#....#......................#...............###.....................#..................#..#..........#...........#.....#..........
|
||||||
|
............#..#.......#....#...........#...##..#...........##....#.............#..#.#....#............#..#.......#.#.#.....#......
|
||||||
|
......#.....##.##.#.....#.#...........#.#.#...................#..................#..#..#..#........#........................#.#....
|
||||||
|
....#.........#........................#..#....##.................#............#.......#..........................##.#.....#.......
|
||||||
|
..#..#....................#..........#..........#...........................#..............#....................#..................
|
||||||
|
..............#...#...............#...........##................#..........#........#.#....#......##.......#....#.......#...##.....
|
||||||
|
......#...............#........#...#...........#.....#......................#............#.............#..........#...........##...
|
||||||
|
..#..........#.#.#........#.#..#.#..##...........#.........................#........#.#....#.#........#.........#........#......##.
|
||||||
|
..........#.#.#...#...#.#...............................#..............#....#......##..........#.#..........#...#....#.............
|
||||||
|
.....................#............#......#.#..#....#..#..#..............#....#.#........................##......#............#.....
|
||||||
|
...................................................................................................................................
|
||||||
@@ -20,6 +20,8 @@
|
|||||||
devShells = forAllSystems (pkgs: with pkgs; {
|
devShells = forAllSystems (pkgs: with pkgs; {
|
||||||
default = mkShell {
|
default = mkShell {
|
||||||
nativeBuildInputs = [ rustc cargo ];
|
nativeBuildInputs = [ rustc cargo ];
|
||||||
|
buildInputs = [ hyperfine ];
|
||||||
|
RUST_SRC_PATH = "${rustPlatform.rustLibSrc}";
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ impl Entry {
|
|||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
let filename = env::args()
|
let filename = env::args()
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.context("./day03 <path to puzzle input>")?;
|
.context("./day05 <path to puzzle input>")?;
|
||||||
let input = fs::read_to_string(filename)?;
|
let input = fs::read_to_string(filename)?;
|
||||||
|
|
||||||
let mut sections = input.split("\n\n");
|
let mut sections = input.split("\n\n");
|
||||||
|
|||||||
39
src/bin/day06.rs
Normal file
39
src/bin/day06.rs
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
use anyhow::{Context, Result};
|
||||||
|
use itertools::Itertools;
|
||||||
|
|
||||||
|
fn win_bounds(time: u64, record: u64) -> (u64, u64) {
|
||||||
|
let det_sq = time * time - 4 * record;
|
||||||
|
let det = (det_sq as f64).sqrt();
|
||||||
|
let mut low = ((time as f64 - det) / 2.0).ceil() as u64;
|
||||||
|
low += ((time - low) * low <= record) as u64;
|
||||||
|
let mut high = ((time as f64 + det) / 2.0).floor() as u64;
|
||||||
|
high -= ((time - low) * low <= record) as u64;
|
||||||
|
(low, high)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day06 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
|
||||||
|
let mut nums = input.lines().map(|line| {
|
||||||
|
line.split_ascii_whitespace()
|
||||||
|
.skip(1)
|
||||||
|
.map(|d| d.parse().unwrap())
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
});
|
||||||
|
|
||||||
|
let (times, records) = nums.next_tuple().unwrap();
|
||||||
|
let races = times.iter().zip(records.iter());
|
||||||
|
let range = |(low, high)| high - low + 1;
|
||||||
|
let part1: u64 = races.map(|(&t, &r)| range(win_bounds(t, r))).product();
|
||||||
|
|
||||||
|
let concat = |v: Vec<_>| v.iter().join("").parse().unwrap();
|
||||||
|
let part2 = range(win_bounds(concat(times), concat(records)));
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
142
src/bin/day07.rs
Normal file
142
src/bin/day07.rs
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
use std::env;
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
|
#[derive(PartialEq, Eq, PartialOrd, Ord, Debug)]
|
||||||
|
enum Kind {
|
||||||
|
HC,
|
||||||
|
OP,
|
||||||
|
TP,
|
||||||
|
THREE,
|
||||||
|
FH,
|
||||||
|
FOUR,
|
||||||
|
FIVE,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Kind {
|
||||||
|
fn from_sorted_frequencies(slice: &[u8]) -> Kind {
|
||||||
|
match slice {
|
||||||
|
&[5] => Kind::FIVE,
|
||||||
|
&[4, _] => Kind::FOUR,
|
||||||
|
&[3, _] => Kind::FH,
|
||||||
|
&[3, _, _] => Kind::THREE,
|
||||||
|
&[2, _, _] => Kind::TP,
|
||||||
|
&[2, _, _, _] => Kind::OP,
|
||||||
|
&[1, _, _, _, _] => Kind::HC,
|
||||||
|
_ => unreachable!(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn find_frequencies(hand: [u8; 5]) -> (u8, [u8; 5], [u8; 5]) {
|
||||||
|
let mut distinct = 0u8;
|
||||||
|
let mut cards = [0u8; 5];
|
||||||
|
let mut counts = [0u8; 5];
|
||||||
|
|
||||||
|
for c in hand {
|
||||||
|
let mut was_seen: bool = false;
|
||||||
|
for i in 0..5 {
|
||||||
|
if c == cards[i] {
|
||||||
|
counts[i] += 1;
|
||||||
|
was_seen = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !was_seen {
|
||||||
|
cards[distinct as usize] = c;
|
||||||
|
counts[distinct as usize] = 1;
|
||||||
|
distinct += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(distinct, cards, counts)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn kind(hand: [u8; 5]) -> Kind {
|
||||||
|
let (distinct, _, mut counts) = find_frequencies(hand);
|
||||||
|
counts.sort();
|
||||||
|
counts.reverse();
|
||||||
|
Kind::from_sorted_frequencies(&counts[..distinct as usize])
|
||||||
|
}
|
||||||
|
|
||||||
|
fn joker_kind(hand: [u8; 5], joker: u8) -> Kind {
|
||||||
|
let (mut distinct, cards, mut counts) = find_frequencies(hand);
|
||||||
|
let mut joker_count = 0;
|
||||||
|
for c in 0..distinct as usize {
|
||||||
|
if cards[c] == joker {
|
||||||
|
joker_count += counts[c];
|
||||||
|
distinct -= 1;
|
||||||
|
counts[c] = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
distinct = distinct.max(1);
|
||||||
|
counts.sort();
|
||||||
|
counts.reverse();
|
||||||
|
counts[0] += joker_count;
|
||||||
|
Kind::from_sorted_frequencies(&counts[..distinct as usize])
|
||||||
|
}
|
||||||
|
|
||||||
|
fn solve(encoding: impl Fn(u8) -> u8, kind_eval: impl Fn([u8; 5]) -> Kind, input: &str) -> u64 {
|
||||||
|
let mut hand_bid_pairs: Vec<_> = input
|
||||||
|
.lines()
|
||||||
|
.map(|line| {
|
||||||
|
let mut hand: [u8; 5] = (&line.as_bytes()[..5]).try_into().unwrap();
|
||||||
|
for b in hand.iter_mut() {
|
||||||
|
*b = encoding(*b);
|
||||||
|
}
|
||||||
|
let kind = kind_eval(hand);
|
||||||
|
|
||||||
|
let bid = line
|
||||||
|
.bytes()
|
||||||
|
.skip(6)
|
||||||
|
.map(|c| (c - b'0') as u64)
|
||||||
|
.reduce(|a, b| a * 10 + b)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
(kind, hand, bid)
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
hand_bid_pairs.sort();
|
||||||
|
|
||||||
|
hand_bid_pairs
|
||||||
|
.into_iter()
|
||||||
|
.zip(1..)
|
||||||
|
.map(|((_, _, bid), i)| bid * i)
|
||||||
|
.sum()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let filename = env::args().nth(1).unwrap();
|
||||||
|
let input = fs::read_to_string(filename).unwrap();
|
||||||
|
|
||||||
|
let encode_p1 = |byte| match byte {
|
||||||
|
b'T' => b'V',
|
||||||
|
b'J' => b'W',
|
||||||
|
b'Q' => b'X',
|
||||||
|
b'K' => b'Y',
|
||||||
|
b'A' => b'Z',
|
||||||
|
_ => byte,
|
||||||
|
};
|
||||||
|
|
||||||
|
let part1 = solve(encode_p1, kind, &input);
|
||||||
|
|
||||||
|
let encode_p2 = |byte| match byte {
|
||||||
|
b'T' => b'V',
|
||||||
|
b'J' => b'1',
|
||||||
|
b'Q' => b'X',
|
||||||
|
b'K' => b'Y',
|
||||||
|
b'A' => b'Z',
|
||||||
|
_ => byte,
|
||||||
|
};
|
||||||
|
|
||||||
|
let kind_eval = |hand| joker_kind(hand, encode_p2(b'J'));
|
||||||
|
|
||||||
|
let part2 = solve(encode_p2, kind_eval, &input);
|
||||||
|
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
}
|
||||||
49
src/bin/day08.rs
Normal file
49
src/bin/day08.rs
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
use gcd;
|
||||||
|
use hashbrown::{HashMap, HashSet};
|
||||||
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
|
fn lcm(a: u64, b: u64) -> u64 {
|
||||||
|
(a * b) / gcd::binary_u64(a, b)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day08 <path to puzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
let mut lines = input.lines().map(|line| line.as_bytes());
|
||||||
|
let instructions = lines.next().unwrap();
|
||||||
|
let connections: Vec<_> = lines.skip(1).collect();
|
||||||
|
let sources = connections.iter().map(|c| &c[..3]);
|
||||||
|
|
||||||
|
let name_ids: HashMap<_, _> = sources.clone().zip(0..).collect();
|
||||||
|
let id = |name: &[u8]| name_ids[name];
|
||||||
|
let mut neighbours = vec![(0u32, 0u32); connections.len()];
|
||||||
|
for (from_id, conn) in connections.iter().enumerate() {
|
||||||
|
neighbours[from_id] = (id(&conn[7..10]), id(&conn[12..15]));
|
||||||
|
}
|
||||||
|
|
||||||
|
let cycle_len = |start: &[u8], ends: &HashSet<_>| -> u64 {
|
||||||
|
let mut step_count = 0;
|
||||||
|
let mut pos = id(start);
|
||||||
|
let mut plan = instructions.iter().cycle();
|
||||||
|
|
||||||
|
while !ends.contains(&pos) {
|
||||||
|
let (to_l, to_r) = neighbours[pos as usize];
|
||||||
|
pos = if plan.next().unwrap() == &b'L' { to_l } else { to_r };
|
||||||
|
step_count += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
step_count
|
||||||
|
};
|
||||||
|
|
||||||
|
let ends = sources.clone().filter(|s| s[2] == b'Z').map(id).collect();
|
||||||
|
let part1 = cycle_len("AAA".as_bytes(), &ends);
|
||||||
|
let starts = sources.filter(|s| s[2] == b'A');
|
||||||
|
let part2 = starts.map(|pos| cycle_len(pos, &ends)).reduce(lcm).unwrap();
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
48
src/bin/day09.rs
Normal file
48
src/bin/day09.rs
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
|
fn extrapolate(sequence: &mut Vec<i64>) -> Option<(i64, i64)> {
|
||||||
|
let diff = |seq: &mut Vec<i64>| {
|
||||||
|
(0..seq.len() - 1).for_each(|i| seq[i] = seq[i + 1] - seq[i]);
|
||||||
|
seq.pop();
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut fwd = 0;
|
||||||
|
let mut bwd = 0;
|
||||||
|
let mut f = 1;
|
||||||
|
|
||||||
|
while sequence.len() > 1 {
|
||||||
|
fwd += sequence[sequence.len() - 1];
|
||||||
|
bwd += f * sequence[0];
|
||||||
|
diff(sequence);
|
||||||
|
f *= -1;
|
||||||
|
|
||||||
|
if sequence.iter().all(|&num| num == 0) {
|
||||||
|
return Some((bwd, fwd));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day09 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
|
||||||
|
let mut part1 = 0;
|
||||||
|
let mut part2 = 0;
|
||||||
|
|
||||||
|
for line in input.lines() {
|
||||||
|
let parse_i64 = |str: &str| str.parse::<i64>().unwrap();
|
||||||
|
let mut initial: Vec<i64> = line.split_ascii_whitespace().map(parse_i64).collect();
|
||||||
|
let (p2, p1) = extrapolate(&mut initial).context("malformed input")?;
|
||||||
|
part1 += p1;
|
||||||
|
part2 += p2;
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
184
src/bin/day10.rs
Normal file
184
src/bin/day10.rs
Normal file
@@ -0,0 +1,184 @@
|
|||||||
|
use std::env;
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
|
use anyhow::{anyhow, Context, Result};
|
||||||
|
|
||||||
|
#[derive(PartialEq, Eq, Copy, Clone, PartialOrd, Ord, Debug)]
|
||||||
|
struct Point {
|
||||||
|
x: usize,
|
||||||
|
y: usize,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T> From<(T, T)> for Point
|
||||||
|
where
|
||||||
|
T: Into<usize>,
|
||||||
|
{
|
||||||
|
fn from(p: (T, T)) -> Self {
|
||||||
|
return Point {
|
||||||
|
x: p.0.into(),
|
||||||
|
y: p.1.into(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Point {
|
||||||
|
#[rustfmt::skip]
|
||||||
|
fn walk(&self, d: Dir) -> Self {
|
||||||
|
match d {
|
||||||
|
Dir::U => Self { x: self.x - 1, y: self.y },
|
||||||
|
Dir::D => Self { x: self.x + 1, y: self.y },
|
||||||
|
Dir::L => Self { x: self.x, y: self.y - 1 },
|
||||||
|
Dir::R => Self { x: self.x, y: self.y + 1 },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(PartialEq, Eq, Copy, Clone, Debug)]
|
||||||
|
enum Dir {
|
||||||
|
U,
|
||||||
|
D,
|
||||||
|
L,
|
||||||
|
R,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Dir {
|
||||||
|
fn invert(&self) -> Dir {
|
||||||
|
match self {
|
||||||
|
Dir::U => Dir::D,
|
||||||
|
Dir::D => Dir::U,
|
||||||
|
Dir::L => Dir::R,
|
||||||
|
Dir::R => Dir::L,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Pipe {
|
||||||
|
end1: Dir,
|
||||||
|
end2: Dir,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TryFrom<u8> for Pipe {
|
||||||
|
type Error = anyhow::Error;
|
||||||
|
|
||||||
|
#[rustfmt::skip]
|
||||||
|
fn try_from(byte: u8) -> Result<Self, Self::Error> {
|
||||||
|
match byte {
|
||||||
|
b'|' => Ok(Pipe { end1: Dir::D, end2: Dir::U }),
|
||||||
|
b'-' => Ok(Pipe { end1: Dir::L, end2: Dir::R }),
|
||||||
|
b'F' => Ok(Pipe { end1: Dir::D, end2: Dir::R }),
|
||||||
|
b'7' => Ok(Pipe { end1: Dir::D, end2: Dir::L }),
|
||||||
|
b'J' => Ok(Pipe { end1: Dir::U, end2: Dir::L }),
|
||||||
|
b'L' => Ok(Pipe { end1: Dir::U, end2: Dir::R }),
|
||||||
|
_ => Err(anyhow!("{} ({}) is not a pipe,", byte as char, byte)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Pipe {
|
||||||
|
fn other_end(&self, from: &Dir) -> Option<Dir> {
|
||||||
|
if *from == self.end1 {
|
||||||
|
Some(self.end2)
|
||||||
|
} else if *from == self.end2 {
|
||||||
|
Some(self.end1)
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Grid<T> {
|
||||||
|
grid: Vec<T>,
|
||||||
|
width: usize,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T> std::ops::Index<Point> for Grid<T> {
|
||||||
|
type Output = T;
|
||||||
|
|
||||||
|
fn index(&self, p: Point) -> &T {
|
||||||
|
&self.grid[p.x * self.width + p.y]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T> std::ops::IndexMut<Point> for Grid<T> {
|
||||||
|
fn index_mut(&mut self, p: Point) -> &mut T {
|
||||||
|
&mut self.grid[p.x * self.width + p.y]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day10 <path to puzzle input>")?;
|
||||||
|
let input = fs::read_to_string(filename)?;
|
||||||
|
|
||||||
|
let width = input.lines().next().context("bad input")?.trim().len();
|
||||||
|
let grid: Vec<_> = input.lines().flat_map(|line| line.trim().bytes()).collect();
|
||||||
|
let height = grid.len() / width;
|
||||||
|
let grid = Grid { grid, width };
|
||||||
|
|
||||||
|
let mut all_points = (0..height).flat_map(|x| (0..width).map(move |y| (x, y).into()));
|
||||||
|
let start: Point = all_points
|
||||||
|
.find(|point: &Point| grid[point.clone()] == b'S')
|
||||||
|
.context("start not found")?;
|
||||||
|
|
||||||
|
let mut start_directions = Vec::new();
|
||||||
|
for dir in [Dir::U, Dir::D, Dir::L, Dir::R] {
|
||||||
|
let neighbour = start.walk(dir);
|
||||||
|
let byte = grid[neighbour];
|
||||||
|
|
||||||
|
if byte != b'.' {
|
||||||
|
let pipe = Pipe::try_from(byte)?;
|
||||||
|
|
||||||
|
if pipe.end1 == dir.invert() || pipe.end2 == dir.invert() {
|
||||||
|
start_directions.push(dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_eq!(start_directions.len(), 2);
|
||||||
|
|
||||||
|
let mut on_loop = Grid {
|
||||||
|
grid: vec![false; height * width],
|
||||||
|
width,
|
||||||
|
};
|
||||||
|
|
||||||
|
let end = start.walk(start_directions[0]);
|
||||||
|
|
||||||
|
on_loop[end] = true;
|
||||||
|
on_loop[start] = true;
|
||||||
|
|
||||||
|
let mut loop_length = 2;
|
||||||
|
let mut entry: Dir = start_directions[1].invert();
|
||||||
|
let mut position: Point = start.walk(start_directions[1]);
|
||||||
|
|
||||||
|
while position != end {
|
||||||
|
loop_length += 1;
|
||||||
|
on_loop[position] = true;
|
||||||
|
let pipe = Pipe::try_from(grid[position])?;
|
||||||
|
let exit = pipe.other_end(&entry).context("broken pipe")?;
|
||||||
|
position = position.walk(exit);
|
||||||
|
entry = exit.invert();
|
||||||
|
}
|
||||||
|
|
||||||
|
let is_vertical = |b| b == b'|' || b == b'L' || b == b'J';
|
||||||
|
|
||||||
|
let mut enclosed_count = 0;
|
||||||
|
for x in 0..height {
|
||||||
|
let mut parity: bool = false;
|
||||||
|
for y in 0..width {
|
||||||
|
let byte = grid.grid[x * width + y];
|
||||||
|
if !on_loop.grid[x * width + y] {
|
||||||
|
enclosed_count += parity as usize;
|
||||||
|
} else {
|
||||||
|
if is_vertical(byte) || byte == b'S' {
|
||||||
|
parity = !parity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("1) {}", loop_length / 2);
|
||||||
|
println!("2) {}", enclosed_count);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
43
src/bin/day11.rs
Normal file
43
src/bin/day11.rs
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
use anyhow::{Context, Result};
|
||||||
|
use itertools::Itertools;
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day11 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
let lines: Vec<_> = input.lines().map(|line| line.as_bytes()).collect();
|
||||||
|
|
||||||
|
let height = lines.len();
|
||||||
|
let width = lines[0].len();
|
||||||
|
|
||||||
|
let galaxies: Vec<_> = (0..height)
|
||||||
|
.cartesian_product(0..width)
|
||||||
|
.filter(|&(x, y)| lines[x][y] == b'#')
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
let mut is_empty_row = vec![true; height];
|
||||||
|
let mut is_empty_col = vec![true; width];
|
||||||
|
|
||||||
|
galaxies.iter().for_each(|&(x, y)| {
|
||||||
|
is_empty_row[x] = false;
|
||||||
|
is_empty_col[y] = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
let empty_rows_count = |a: usize, b| (a.min(b)..a.max(b)).filter(|&x| is_empty_row[x]).count();
|
||||||
|
let empty_cols_count = |a: usize, b| (a.min(b)..a.max(b)).filter(|&y| is_empty_col[y]).count();
|
||||||
|
|
||||||
|
let distance = |(&(x1, y1), &(x2, y2)): (&(usize, usize), &(usize, usize)), scale: usize| {
|
||||||
|
let emptiness = empty_rows_count(x1, x2) + empty_cols_count(y1, y2);
|
||||||
|
x1.abs_diff(x2) + y1.abs_diff(y2) + (scale - 1) * emptiness
|
||||||
|
};
|
||||||
|
|
||||||
|
let galaxy_pairs = galaxies.iter().tuple_combinations();
|
||||||
|
let part1: usize = galaxy_pairs.clone().map(|p| distance(p, 2)).sum();
|
||||||
|
let part2: usize = galaxy_pairs.clone().map(|p| distance(p, 1000000)).sum();
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
99
src/bin/day12.rs
Normal file
99
src/bin/day12.rs
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
use hashbrown::HashMap;
|
||||||
|
use ndarray::Array3;
|
||||||
|
|
||||||
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
|
fn solve(str: &[u8], groups: &[usize]) -> usize {
|
||||||
|
if groups.iter().sum::<usize>() + groups.len() > str.len() + 1 {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
let groups_max = groups.iter().max().unwrap();
|
||||||
|
let mut dp = Array3::<usize>::zeros((str.len() + 1, groups.len() + 1, *groups_max + 1));
|
||||||
|
dp[[0, 0, 0]] = 1;
|
||||||
|
|
||||||
|
for s in 0..str.len() {
|
||||||
|
if str[s] == b'.' || str[s] == b'?' {
|
||||||
|
for g in 0..groups.len() {
|
||||||
|
dp[[s + 1, g, 0]] += dp[[s, g, 0]];
|
||||||
|
dp[[s + 1, g + 1, 0]] += dp[[s, g, groups[g]]];
|
||||||
|
}
|
||||||
|
dp[[s + 1, groups.len(), 0]] += dp[[s, groups.len(), 0]];
|
||||||
|
}
|
||||||
|
|
||||||
|
if str[s] == b'#' || str[s] == b'?' {
|
||||||
|
for g in 0..groups.len() {
|
||||||
|
for p in 0..groups[g] {
|
||||||
|
dp[[s + 1, g, p + 1]] += dp[[s, g, p]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dp[[str.len(), groups.len(), 0]] + dp[[str.len(), groups.len() - 1, groups[groups.len() - 1]]]
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cache<'a> = HashMap<(&'a [u8], &'a [usize], usize), usize>;
|
||||||
|
|
||||||
|
fn solve_rec<'a>(str: &'a [u8], groups: &'a [usize], pos: usize, cache: &mut Cache<'a>) -> usize {
|
||||||
|
let mut ans = 0;
|
||||||
|
|
||||||
|
if let Some(result) = cache.get(&(str, groups, pos)) {
|
||||||
|
return *result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if str.len() == 0 {
|
||||||
|
return (groups.len() == 0 || (groups.len() == 1 && pos == groups[0])) as usize;
|
||||||
|
}
|
||||||
|
|
||||||
|
if str[0] == b'.' || str[0] == b'?' {
|
||||||
|
if groups.len() == 0 || pos == 0 {
|
||||||
|
ans += solve_rec(&str[1..], groups, pos, cache);
|
||||||
|
} else if pos == groups[0] {
|
||||||
|
ans += solve_rec(&str[1..], &groups[1..], 0, cache);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if str[0] == b'#' || str[0] == b'?' {
|
||||||
|
if groups.len() > 0 && pos < groups[0] {
|
||||||
|
ans += solve_rec(&str[1..], groups, pos + 1, cache);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cache.insert((str, groups, pos), ans);
|
||||||
|
|
||||||
|
return ans;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day12 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
|
||||||
|
let mut part1 = 0;
|
||||||
|
let mut part2 = 0;
|
||||||
|
for line in input.lines() {
|
||||||
|
let (record, groups) = line.split_once(' ').context("malformed input")?;
|
||||||
|
let groups: Vec<usize> = groups.split(',').map(|v| v.parse().unwrap()).collect();
|
||||||
|
|
||||||
|
part1 += solve_rec(record.as_bytes(), &groups, 0, &mut HashMap::new());
|
||||||
|
|
||||||
|
let mut record5 = record.to_string();
|
||||||
|
let mut groups5 = groups.clone();
|
||||||
|
record5.reserve_exact(4 * (record.len() + 1));
|
||||||
|
groups5.reserve_exact(4 * groups.len());
|
||||||
|
for _ in 0..4 {
|
||||||
|
record5.push('?');
|
||||||
|
record5.push_str(record);
|
||||||
|
groups5.extend(&groups);
|
||||||
|
}
|
||||||
|
|
||||||
|
part2 += solve(record5.as_bytes(), &groups5);
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
47
src/bin/day13.rs
Normal file
47
src/bin/day13.rs
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
|
fn grid_count(x_max: usize, y_max: usize, predicate: impl Fn(usize, usize) -> bool) -> usize {
|
||||||
|
let mut count = 0;
|
||||||
|
for x in 0..x_max {
|
||||||
|
for y in 0..y_max {
|
||||||
|
count += predicate(x, y) as usize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
count
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day13 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
|
||||||
|
let mut part1 = 0;
|
||||||
|
let mut part2 = 0;
|
||||||
|
|
||||||
|
for section in input.split("\n\n") {
|
||||||
|
let height = section.lines().count();
|
||||||
|
let grid: Vec<_> = section.lines().flat_map(|line| line.bytes()).collect();
|
||||||
|
let width = grid.len() / height;
|
||||||
|
|
||||||
|
let is_smudge_h = |i, x, y| grid[(i + x) * width + y] != grid[(i - x - 1) * width + y];
|
||||||
|
let is_smudge_v = |i, x, y| grid[x * width + i + y] != grid[x * width + (i - y - 1)];
|
||||||
|
|
||||||
|
for i in 1..height {
|
||||||
|
let smudge_count = grid_count(i.min(height - i), width, |x, y| is_smudge_h(i, x, y));
|
||||||
|
part1 += 100 * i * usize::from(smudge_count == 0);
|
||||||
|
part2 += 100 * i * usize::from(smudge_count == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in 1..width {
|
||||||
|
let smudge_count = grid_count(height, i.min(width - i), |x, y| is_smudge_v(i, x, y));
|
||||||
|
part1 += i * usize::from(smudge_count == 0);
|
||||||
|
part2 += i * usize::from(smudge_count == 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
104
src/bin/day14.rs
Normal file
104
src/bin/day14.rs
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
use hashbrown::HashMap;
|
||||||
|
use itertools::iproduct;
|
||||||
|
|
||||||
|
fn tilt_hori<I>(mut grid: Vec<u8>, h: usize, w: usize, range: I, y_delta: i64) -> Vec<u8>
|
||||||
|
where
|
||||||
|
I: Iterator<Item = (usize, usize)>,
|
||||||
|
{
|
||||||
|
let d = if y_delta == 1 { 0 } else { w - 1 };
|
||||||
|
let mut next_free = vec![d; h];
|
||||||
|
for (x, y) in range {
|
||||||
|
if grid[x * w + y] == b'#' {
|
||||||
|
next_free[x] = (y as i64 + y_delta) as usize;
|
||||||
|
}
|
||||||
|
if grid[x * w + y] == b'O' {
|
||||||
|
grid[x * w + y] = b'.';
|
||||||
|
grid[x * w + next_free[x]] = b'O';
|
||||||
|
next_free[x] = (next_free[x] as i64 + y_delta) as usize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
grid
|
||||||
|
}
|
||||||
|
|
||||||
|
fn tilt_vert<I>(mut grid: Vec<u8>, h: usize, w: usize, range: I, x_delta: i64) -> Vec<u8>
|
||||||
|
where
|
||||||
|
I: Iterator<Item = (usize, usize)>,
|
||||||
|
{
|
||||||
|
let d = if x_delta == 1 { 0 } else { h - 1 };
|
||||||
|
let mut next_free = vec![d; w];
|
||||||
|
for (x, y) in range {
|
||||||
|
if grid[x * w + y] == b'#' {
|
||||||
|
next_free[y] = (x as i64 + x_delta) as usize;
|
||||||
|
}
|
||||||
|
if grid[x * w + y] == b'O' {
|
||||||
|
grid[x * w + y] = b'.';
|
||||||
|
grid[next_free[y] * w + y] = b'O';
|
||||||
|
next_free[y] = (next_free[y] as i64 + x_delta) as usize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
grid
|
||||||
|
}
|
||||||
|
|
||||||
|
fn spin(mut grid: Vec<u8>, h: usize, w: usize) -> Vec<u8> {
|
||||||
|
grid = tilt_vert(grid, h, w, iproduct!(0..h, 0..w), 1); // north
|
||||||
|
grid = tilt_hori(grid, h, w, iproduct!(0..h, 0..w), 1); // west
|
||||||
|
grid = tilt_vert(grid, h, w, iproduct!((0..h).rev(), (0..w).rev()), -1); // south
|
||||||
|
grid = tilt_hori(grid, h, w, iproduct!((0..h).rev(), (0..w).rev()), -1); // east
|
||||||
|
return grid;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn spin_n(mut grid: Vec<u8>, h: usize, w: usize, spin_count: usize) -> Vec<u8> {
|
||||||
|
let mut past: HashMap<(usize, usize), usize> = HashMap::new();
|
||||||
|
for spins in 0..spin_count {
|
||||||
|
let mut load = (0, 0);
|
||||||
|
for (x, y) in iproduct!(0..h, 0..w) {
|
||||||
|
if grid[x * w + y] == b'O' {
|
||||||
|
load.0 += h - x;
|
||||||
|
load.1 += w - y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(first_seen) = past.get(&load) {
|
||||||
|
let offset = (spin_count - first_seen) % (spins - first_seen);
|
||||||
|
for _ in 0..offset {
|
||||||
|
grid = spin(grid, h, w);
|
||||||
|
}
|
||||||
|
return grid;
|
||||||
|
}
|
||||||
|
|
||||||
|
past.insert(load, spins);
|
||||||
|
grid = spin(grid, h, w);
|
||||||
|
}
|
||||||
|
|
||||||
|
grid
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let filename = std::env::args().nth(1).unwrap();
|
||||||
|
let input = std::fs::read_to_string(filename).unwrap();
|
||||||
|
let w = input.lines().next().unwrap().len();
|
||||||
|
let grid: Vec<_> = input.lines().flat_map(|line| line.bytes()).collect();
|
||||||
|
let h = grid.len() / w;
|
||||||
|
|
||||||
|
let tilt_north = |grid: Vec<u8>| tilt_vert(grid, h, w, iproduct!(0..h, 0..w), 1);
|
||||||
|
|
||||||
|
let boulder_load = |(x, y), grid: &Vec<u8>| {
|
||||||
|
if grid[x * w + y] == b'O' {
|
||||||
|
h - x
|
||||||
|
} else {
|
||||||
|
0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let north_load = |grid| -> usize { iproduct!(0..h, 0..w).map(|p| boulder_load(p, grid)).sum() };
|
||||||
|
|
||||||
|
let grid1 = tilt_north(grid.clone());
|
||||||
|
let part1 = north_load(&grid1);
|
||||||
|
println!("{}", part1);
|
||||||
|
|
||||||
|
let grid2 = spin_n(grid, h, w, 1_000_000_000);
|
||||||
|
let part2 = north_load(&grid2);
|
||||||
|
println!("{}", part2);
|
||||||
|
}
|
||||||
46
src/bin/day15.rs
Normal file
46
src/bin/day15.rs
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day15 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
let sequence: Vec<_> = input.trim().split(',').map(|s| s.as_bytes()).collect();
|
||||||
|
|
||||||
|
let update = |state, c| (state + c as usize) * 17 % 256;
|
||||||
|
let hash = |w: &[u8]| w.iter().copied().fold(0, update);
|
||||||
|
let part1: usize = sequence.iter().map(|w| hash(w)).sum();
|
||||||
|
|
||||||
|
let mut buckets = vec![HashMap::new(); 256];
|
||||||
|
for (counter, step) in sequence.into_iter().enumerate() {
|
||||||
|
if step[step.len() - 1] == b'-' {
|
||||||
|
let key = &step[..step.len() - 1];
|
||||||
|
buckets[hash(key)].remove(key);
|
||||||
|
} else {
|
||||||
|
let (key, focal) = step.split_at(step.len() - 2);
|
||||||
|
let focal = focal[1] - b'0';
|
||||||
|
|
||||||
|
buckets[hash(key)]
|
||||||
|
.entry(key)
|
||||||
|
.and_modify(|(_, old_focal)| *old_focal = focal)
|
||||||
|
.or_insert((counter, focal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut part2 = 0;
|
||||||
|
for (bucket, b_id) in buckets.into_iter().zip(1..) {
|
||||||
|
let mut v: Vec<_> = bucket.into_values().collect();
|
||||||
|
v.sort();
|
||||||
|
|
||||||
|
for ((_, focal), position) in v.into_iter().zip(1..) {
|
||||||
|
part2 += b_id * position * (focal as usize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
78
src/bin/day17.rs
Normal file
78
src/bin/day17.rs
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
|
fn min_heat_loss(grid: &Vec<u8>, h: i32, w: i32, min_steps: i32, max_steps: i32) -> Option<usize> {
|
||||||
|
let is_valid = |x, y| 0 <= x && x < h && 0 <= y && y < w;
|
||||||
|
let read = |x, y| (grid[(x * w + y) as usize] - b'0') as usize;
|
||||||
|
|
||||||
|
let bucket_count = ((max_steps * 9) as usize).next_power_of_two();
|
||||||
|
let mut queue = vec![Vec::new(); bucket_count];
|
||||||
|
queue[0].push(((0, 0), (0, 1)));
|
||||||
|
queue[0].push(((0, 0), (1, 0)));
|
||||||
|
let mut dist = vec![[usize::MAX, usize::MAX]; grid.len()];
|
||||||
|
let mut heat_loss = 0;
|
||||||
|
let mut queue_size = 2;
|
||||||
|
|
||||||
|
while queue_size > 0 {
|
||||||
|
while let Some(((x, y), (dx, dy))) = queue[heat_loss % bucket_count].pop() {
|
||||||
|
queue_size -= 1;
|
||||||
|
|
||||||
|
if x == h - 1 && y == w - 1 {
|
||||||
|
return Some(heat_loss);
|
||||||
|
}
|
||||||
|
|
||||||
|
if heat_loss > dist[(x * w + y) as usize][(dx == 0) as usize] {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (dx, dy) in [(dy, -dx), (-dy, dx)] {
|
||||||
|
let (mut nx, mut ny) = (x, y);
|
||||||
|
let mut path_loss = 0;
|
||||||
|
|
||||||
|
for i in 1..=max_steps {
|
||||||
|
nx += dx;
|
||||||
|
ny += dy;
|
||||||
|
|
||||||
|
if !is_valid(nx, ny) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
path_loss += read(nx, ny);
|
||||||
|
|
||||||
|
if i >= min_steps {
|
||||||
|
let is_horizontal = dx == 0;
|
||||||
|
let dist_pos = nx * w + ny;
|
||||||
|
let old_dist = dist[dist_pos as usize][is_horizontal as usize];
|
||||||
|
let new_dist = heat_loss + path_loss;
|
||||||
|
if new_dist < old_dist {
|
||||||
|
dist[dist_pos as usize][is_horizontal as usize] = new_dist;
|
||||||
|
queue[new_dist % bucket_count].push(((nx, ny), (dx, dy)));
|
||||||
|
queue_size += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
heat_loss += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day17 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
let width = input.lines().next().unwrap().len();
|
||||||
|
let grid: Vec<_> = input.lines().flat_map(|l| l.bytes()).collect();
|
||||||
|
let height = grid.len() / width;
|
||||||
|
|
||||||
|
let part1 = min_heat_loss(&grid, height as i32, width as i32, 1, 3);
|
||||||
|
let part2 = min_heat_loss(&grid, height as i32, width as i32, 4, 10);
|
||||||
|
|
||||||
|
println!("1) {:?}", part1);
|
||||||
|
println!("2) {:?}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
56
src/bin/day18.rs
Normal file
56
src/bin/day18.rs
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
use std::str;
|
||||||
|
|
||||||
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
|
fn area(moves: impl Iterator<Item = ((i64, i64), i64)>) -> i64 {
|
||||||
|
let (mut x, mut y) = (0i64, 0i64);
|
||||||
|
let mut area = 0;
|
||||||
|
for ((dx, dy), dist) in moves {
|
||||||
|
let (nx, ny) = (dist * dx + x, dist * dy + y);
|
||||||
|
area += x * ny - y * nx;
|
||||||
|
area -= i64::abs(nx - x) + i64::abs(ny - y);
|
||||||
|
(x, y) = (nx, ny);
|
||||||
|
}
|
||||||
|
i64::abs(area / 2) + 1
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day18 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
let lines = input.lines().map(|line| line.as_bytes());
|
||||||
|
|
||||||
|
let dirs = [(0, 1), (1, 0), (0, -1), (-1, 0)];
|
||||||
|
let to_dir = |c| match c {
|
||||||
|
b'R' => dirs[0],
|
||||||
|
b'L' => dirs[2],
|
||||||
|
b'U' => dirs[3],
|
||||||
|
b'D' => dirs[1],
|
||||||
|
_ => unreachable!(),
|
||||||
|
};
|
||||||
|
|
||||||
|
let read_p1 = |line: &[u8]| {
|
||||||
|
let dir = line[0];
|
||||||
|
let dist = &line[2..line.len() - 10];
|
||||||
|
let dist = str::from_utf8(dist).unwrap().parse::<i64>().unwrap();
|
||||||
|
(to_dir(dir), dist)
|
||||||
|
};
|
||||||
|
|
||||||
|
let read_p2 = |line: &[u8]| {
|
||||||
|
let dir = line[line.len() - 2] - b'0';
|
||||||
|
let dist = &line[line.len() - 7..line.len() - 2];
|
||||||
|
let dist = str::from_utf8(dist).unwrap();
|
||||||
|
let dist = i64::from_str_radix(dist, 16).unwrap();
|
||||||
|
|
||||||
|
(dirs[dir as usize], dist)
|
||||||
|
};
|
||||||
|
|
||||||
|
let part1 = area(lines.clone().map(read_p1));
|
||||||
|
let part2 = area(lines.clone().map(read_p2));
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
160
src/bin/day19.rs
Normal file
160
src/bin/day19.rs
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
use std::cmp::Ordering;
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use itertools::Itertools;
|
||||||
|
|
||||||
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
|
const MALFORMED: &str = "malformed input";
|
||||||
|
|
||||||
|
struct Rule {
|
||||||
|
property: u8,
|
||||||
|
comp: Ordering,
|
||||||
|
value: u32,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Workflow<'a> {
|
||||||
|
rules: Vec<(Rule, &'a str)>,
|
||||||
|
default: &'a str,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> TryFrom<&'a str> for Workflow<'a> {
|
||||||
|
type Error = anyhow::Error;
|
||||||
|
|
||||||
|
fn try_from(str: &'a str) -> Result<Self> {
|
||||||
|
match str.rsplit_once(',') {
|
||||||
|
Some((rules_str, default)) => {
|
||||||
|
let mut rules = Vec::new();
|
||||||
|
for rule in rules_str.split(',') {
|
||||||
|
let (condition, dest) = rule.split_once(':').context("MALFORMED")?;
|
||||||
|
let property = index(condition.as_bytes()[0]);
|
||||||
|
let comp = condition.as_bytes()[1].cmp(&b'=');
|
||||||
|
let value = (&condition[2..]).parse()?;
|
||||||
|
rules.push((
|
||||||
|
Rule {
|
||||||
|
property,
|
||||||
|
comp,
|
||||||
|
value,
|
||||||
|
},
|
||||||
|
dest,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
Ok(Workflow { rules, default })
|
||||||
|
}
|
||||||
|
None => Ok(Workflow {
|
||||||
|
rules: Vec::new(),
|
||||||
|
default: str,
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> Workflow<'a> {
|
||||||
|
fn process(&self, state: &[u32; 4]) -> &'a str {
|
||||||
|
for (rule, dst) in self.rules.iter() {
|
||||||
|
if state[rule.property as usize].cmp(&rule.value) == rule.comp {
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return self.default;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn index(b: u8) -> u8 {
|
||||||
|
match b {
|
||||||
|
b'x' => 0,
|
||||||
|
b'm' => 1,
|
||||||
|
b'a' => 2,
|
||||||
|
b's' => 3,
|
||||||
|
_ => unreachable!(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day19 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
let (workflows_str, parts_str) = input.split("\n\n").next_tuple().context(MALFORMED)?;
|
||||||
|
|
||||||
|
let mut workflows = HashMap::new();
|
||||||
|
for workflow in workflows_str.lines() {
|
||||||
|
let (name, body) = workflow.split_once('{').context(MALFORMED)?;
|
||||||
|
workflows.insert(name, Workflow::try_from(&body[..body.len() - 1])?);
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut parts = Vec::new();
|
||||||
|
for part_str in parts_str.lines() {
|
||||||
|
let mut part = [0, 0, 0, 0];
|
||||||
|
for (idx, property) in part_str[1..part.len() - 1].split(',').enumerate() {
|
||||||
|
part[idx] = property[2..].parse()?;
|
||||||
|
}
|
||||||
|
|
||||||
|
parts.push(part);
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut part1: u64 = 0;
|
||||||
|
for part in parts.iter() {
|
||||||
|
let mut current = "in";
|
||||||
|
while (current != "A") & (current != "R") {
|
||||||
|
let workflow = workflows.get(¤t).context(MALFORMED)?;
|
||||||
|
current = workflow.process(part);
|
||||||
|
}
|
||||||
|
|
||||||
|
if current == "A" {
|
||||||
|
part1 += part.iter().map(|&v| v as u64).sum::<u64>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let split_bound = |rule: &Rule, bound: (u32, u32)| match rule.comp {
|
||||||
|
Ordering::Less => (
|
||||||
|
(bound.0, bound.1.min(rule.value)),
|
||||||
|
(bound.0.max(rule.value), bound.1),
|
||||||
|
),
|
||||||
|
Ordering::Greater => (
|
||||||
|
(bound.0.max(rule.value + 1), bound.1),
|
||||||
|
(bound.0, bound.1.min(rule.value + 1)),
|
||||||
|
),
|
||||||
|
_ => unreachable!(),
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut part2 = 0;
|
||||||
|
let mut stack = Vec::new();
|
||||||
|
stack.push(("in", [(1, 4001), (1, 4001), (1, 4001), (1, 4001)]));
|
||||||
|
'outer: while let Some((current, mut bounds)) = stack.pop() {
|
||||||
|
if current == "A" {
|
||||||
|
part2 += bounds.iter().map(|(a, b)| (b - a) as u64).product::<u64>();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if current == "R" {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
let workflow = workflows.get(¤t).context(MALFORMED)?;
|
||||||
|
|
||||||
|
for (rule, dest) in workflow.rules.iter() {
|
||||||
|
let bound = bounds[rule.property as usize];
|
||||||
|
let (send, carry) = split_bound(rule, bound);
|
||||||
|
if send.0 < send.1 {
|
||||||
|
let mut new_bounds = bounds;
|
||||||
|
new_bounds[rule.property as usize] = send;
|
||||||
|
stack.push((dest, new_bounds));
|
||||||
|
}
|
||||||
|
|
||||||
|
if carry.0 < carry.1 {
|
||||||
|
bounds[rule.property as usize] = carry;
|
||||||
|
} else {
|
||||||
|
continue 'outer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.push((workflow.default, bounds));
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
175
src/bin/day20.rs
Normal file
175
src/bin/day20.rs
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
use std::collections::VecDeque;
|
||||||
|
|
||||||
|
use anyhow::{Context, Result};
|
||||||
|
use hashbrown::{HashMap, HashSet};
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
enum Gate<'a> {
|
||||||
|
FlipFlop {
|
||||||
|
high: bool,
|
||||||
|
},
|
||||||
|
Conjugation {
|
||||||
|
memory: HashSet<&'a str>,
|
||||||
|
in_count: usize,
|
||||||
|
},
|
||||||
|
Negate,
|
||||||
|
Broadcast,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day20 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
|
||||||
|
let mut gates: HashMap<&str, Gate> = HashMap::new();
|
||||||
|
let mut outs = HashMap::new();
|
||||||
|
let mut ins = HashMap::new();
|
||||||
|
for line in input.lines() {
|
||||||
|
let (source, dsts) = line.split_once(" -> ").context("malformed input.")?;
|
||||||
|
let dsts: Vec<_> = dsts.split(", ").collect();
|
||||||
|
let name = source.trim_start_matches(['&', '%']);
|
||||||
|
|
||||||
|
for dst in dsts.iter().copied() {
|
||||||
|
ins.entry(dst).or_insert(Vec::new()).push(name);
|
||||||
|
}
|
||||||
|
outs.insert(name, dsts);
|
||||||
|
|
||||||
|
let gate = match source.chars().next().unwrap() {
|
||||||
|
'%' => Gate::FlipFlop { high: false },
|
||||||
|
'&' => Gate::Conjugation {
|
||||||
|
memory: HashSet::new(),
|
||||||
|
in_count: 0,
|
||||||
|
},
|
||||||
|
'b' => Gate::Broadcast,
|
||||||
|
_ => unreachable!(),
|
||||||
|
};
|
||||||
|
|
||||||
|
gates.insert(name, gate);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (name, gate) in gates.iter_mut() {
|
||||||
|
if let Gate::Conjugation {
|
||||||
|
memory: _,
|
||||||
|
in_count,
|
||||||
|
} = gate
|
||||||
|
{
|
||||||
|
*in_count = ins[name].len();
|
||||||
|
|
||||||
|
if *in_count == 1 {
|
||||||
|
*gate = Gate::Negate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut counts = [0, 0];
|
||||||
|
let mut queue = VecDeque::new();
|
||||||
|
for _ in 0..1000 {
|
||||||
|
queue.push_back(("broadcaster", "button", false));
|
||||||
|
|
||||||
|
while let Some((dest, source, is_high)) = queue.pop_back() {
|
||||||
|
counts[is_high as usize] += 1;
|
||||||
|
|
||||||
|
let outs = match outs.get(dest) {
|
||||||
|
Some(v) => v,
|
||||||
|
None => {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if let Some(gate) = gates.get_mut(dest) {
|
||||||
|
match gate {
|
||||||
|
Gate::Broadcast => {
|
||||||
|
for out in outs {
|
||||||
|
queue.push_back((out, dest, false));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Gate::Negate => {
|
||||||
|
for out in outs {
|
||||||
|
queue.push_back((out, dest, !is_high));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Gate::FlipFlop { high } => {
|
||||||
|
if !is_high {
|
||||||
|
*high = !(*high);
|
||||||
|
for out in outs {
|
||||||
|
queue.push_back((out, dest, *high));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Gate::Conjugation { memory, in_count } => {
|
||||||
|
if is_high {
|
||||||
|
memory.insert(source);
|
||||||
|
} else {
|
||||||
|
memory.remove(source);
|
||||||
|
}
|
||||||
|
|
||||||
|
let signal = memory.len() < *in_count;
|
||||||
|
for out in outs {
|
||||||
|
queue.push_back((out, dest, signal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let part1 = counts[0] * counts[1];
|
||||||
|
|
||||||
|
// Assumed structure:
|
||||||
|
// broadcast ----> COUNTER1 ----> NEGATE -----> CONJ ----> rx
|
||||||
|
// |----------> COUNTER2 ----> NEGATE --------|
|
||||||
|
// |----------> COUNTER3 ----> NEGATE --------|
|
||||||
|
// `----------> COUNTER4 ----> NEGATE --------´
|
||||||
|
//
|
||||||
|
// Where Counter:
|
||||||
|
// IN
|
||||||
|
// |
|
||||||
|
// v
|
||||||
|
// FF <-> Core --> OUT
|
||||||
|
// | ? ^
|
||||||
|
// V | |
|
||||||
|
// FF ?----´ |
|
||||||
|
// | |
|
||||||
|
// v |
|
||||||
|
// FF--------´
|
||||||
|
//
|
||||||
|
// Counters are assumed to trigger on prime values
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
let mut part2 = 1;
|
||||||
|
for mut root in outs["broadcaster"].iter().copied() {
|
||||||
|
let core = match &gates[&outs[root][0]] {
|
||||||
|
Gate::Conjugation {
|
||||||
|
memory: _,
|
||||||
|
in_count: _,
|
||||||
|
} => outs[root][0],
|
||||||
|
_ => outs[root][1],
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut period = 0u64;
|
||||||
|
let mut exp = 0u64;
|
||||||
|
|
||||||
|
loop {
|
||||||
|
if outs[root].contains(&core) {
|
||||||
|
period += 1 << exp;
|
||||||
|
}
|
||||||
|
exp += 1;
|
||||||
|
|
||||||
|
root = match outs[root].iter().find(|&&v| v != core) {
|
||||||
|
Some(v) => v,
|
||||||
|
None => {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
part2 *= period;
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
160
src/bin/day21.rs
Normal file
160
src/bin/day21.rs
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
|
fn bfs(grid: &Vec<u8>, height: usize, width: usize, start: (i64, i64)) -> Vec<u64> {
|
||||||
|
let mut distances = vec![u64::MAX; grid.len()];
|
||||||
|
distances[start.0 as usize * width + start.1 as usize] = 0;
|
||||||
|
|
||||||
|
let height = height as i64;
|
||||||
|
let width = width as i64;
|
||||||
|
|
||||||
|
let mut todo = Vec::from([start]);
|
||||||
|
let mut next = Vec::new();
|
||||||
|
let mut distance = 0;
|
||||||
|
while !todo.is_empty() {
|
||||||
|
for (x, y) in todo.iter() {
|
||||||
|
for (dx, dy) in [(1, 0), (-1, 0), (0, 1), (0, -1)] {
|
||||||
|
let (nx, ny) = (x + dx, y + dy);
|
||||||
|
if 0 <= nx && nx < height && 0 <= ny && ny < width {
|
||||||
|
let index = (nx * width + ny) as usize;
|
||||||
|
if grid[index] != b'#' && distance + 1 < distances[index] {
|
||||||
|
distances[index] = distance + 1;
|
||||||
|
next.push((nx, ny));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
todo.clear();
|
||||||
|
todo.append(&mut next);
|
||||||
|
distance += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return distances;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn repeat_grid(factor: usize, grid: &Vec<u8>, height: usize, width: usize) -> Vec<u8> {
|
||||||
|
let mut result = vec![0; height * width * factor * factor];
|
||||||
|
|
||||||
|
for xf in 0..factor {
|
||||||
|
for yf in 0..factor {
|
||||||
|
let base = xf * height * width * factor + yf * width;
|
||||||
|
for x in 0..height {
|
||||||
|
for y in 0..width {
|
||||||
|
result[base + x * width * factor + y] = grid[x * width + y];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let filename = std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.context("./day21 <path to puzzle input>")?;
|
||||||
|
let input = std::fs::read_to_string(filename)?;
|
||||||
|
let width = input.lines().next().unwrap().len();
|
||||||
|
let grid: Vec<_> = input.lines().flat_map(|line| line.bytes()).collect();
|
||||||
|
let height = grid.len() / width;
|
||||||
|
|
||||||
|
let mut start1 = (0, 0);
|
||||||
|
for x in 0..height {
|
||||||
|
for y in 0..width {
|
||||||
|
if grid[x * width + y] == b'S' {
|
||||||
|
start1 = (x as i64, y as i64);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let distances = bfs(&grid, height, width, start1);
|
||||||
|
|
||||||
|
let steps_p1 = 64;
|
||||||
|
let mut part1 = 0;
|
||||||
|
for x in 0..height {
|
||||||
|
for y in 0..width {
|
||||||
|
let distance = distances[x * width + y];
|
||||||
|
if distance <= steps_p1 && distance % 2 == steps_p1 % 2 {
|
||||||
|
part1 += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let center = (height as i64 / 2, width as i64 / 2);
|
||||||
|
let scale = 2usize;
|
||||||
|
let repeats = scale * 2 + 1;
|
||||||
|
let scale_center = (
|
||||||
|
center.0 + (scale * height) as i64,
|
||||||
|
center.1 + (scale * width) as i64,
|
||||||
|
);
|
||||||
|
let scale_grid = repeat_grid(repeats, &grid, height, width);
|
||||||
|
|
||||||
|
let distances = bfs(&scale_grid, height * repeats, width * repeats, scale_center);
|
||||||
|
|
||||||
|
let mut counts = vec![vec![0; repeats]; repeats];
|
||||||
|
let limit = (scale * height + height / 2) as u64;
|
||||||
|
for qx in 0..repeats {
|
||||||
|
for qy in 0..repeats {
|
||||||
|
let base = qx * height * width * repeats + qy * width;
|
||||||
|
for x in 0..height {
|
||||||
|
for y in 0..width {
|
||||||
|
let distance = distances[base + x * width * repeats + y];
|
||||||
|
if distance <= limit as u64 && limit as u64 % 2 == distance % 2 {
|
||||||
|
counts[qx][qy] += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let part_2_steps = 26501365;
|
||||||
|
let part_2_scale: u64 = ((part_2_steps - height / 2) / height) as u64;
|
||||||
|
|
||||||
|
let mut part2 = 0;
|
||||||
|
|
||||||
|
for x in 0..repeats {
|
||||||
|
for y in 0..repeats {
|
||||||
|
print!("{: >6} ", counts[x][y]);
|
||||||
|
}
|
||||||
|
|
||||||
|
println!();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ..*#*..
|
||||||
|
// .*'o'*.
|
||||||
|
// *'o+o'*
|
||||||
|
// #o+o+o#
|
||||||
|
// *'o+o'*
|
||||||
|
// .*'o'*.
|
||||||
|
// ..*#*..
|
||||||
|
|
||||||
|
// o Even centers
|
||||||
|
let inner_even_count = ((part_2_scale - 1) | 0x1) * ((part_2_scale - 1) | 0x1);
|
||||||
|
part2 += inner_even_count * counts[scale][scale];
|
||||||
|
|
||||||
|
let inner_odd_count = (part_2_scale & (!0x1)) * (part_2_scale & (!0x1));
|
||||||
|
// + Odd centers
|
||||||
|
part2 += inner_odd_count * counts[scale][scale + 1];
|
||||||
|
|
||||||
|
// # Pointy ends
|
||||||
|
part2 += counts[0][scale];
|
||||||
|
part2 += counts[repeats - 1][scale];
|
||||||
|
part2 += counts[scale][0];
|
||||||
|
part2 += counts[scale][repeats - 1];
|
||||||
|
|
||||||
|
// * Outer edges
|
||||||
|
part2 += part_2_scale * counts[0][scale - 1];
|
||||||
|
part2 += part_2_scale * counts[0][scale + 1];
|
||||||
|
part2 += part_2_scale * counts[repeats - 1][scale - 1];
|
||||||
|
part2 += part_2_scale * counts[repeats - 1][scale + 1];
|
||||||
|
|
||||||
|
// ' Inner edges
|
||||||
|
part2 += (part_2_scale - 1) * counts[1][scale - 1];
|
||||||
|
part2 += (part_2_scale - 1) * counts[1][scale + 1];
|
||||||
|
part2 += (part_2_scale - 1) * counts[repeats - 2][scale - 1];
|
||||||
|
part2 += (part_2_scale - 1) * counts[repeats - 2][scale + 1];
|
||||||
|
|
||||||
|
println!("1) {}", part1);
|
||||||
|
println!("2) {}", part2);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user