init
This commit is contained in:
commit
ca9736d8ec
122 files changed
+28514
No files matched your search
@@ -0,0 +1,1000 @@
|
||||
ninefourone1
|
||||
53sevenvvqm
|
||||
kscpjfdxp895foureightckjjl1
|
||||
72fivebt9ndgq
|
||||
28gtbkszmrtmnineoneightmx
|
||||
four66jqrbtqcsxjtqjvfjhl1
|
||||
four8pzznjbhxlhtz6bhtzdxjlg1
|
||||
rgxjrsldrfmzq25szhbldzqhrhbjpkbjlsevenseven
|
||||
slkjvk4threesevenznjqmmfive
|
||||
61ppgrkmkfhteightone
|
||||
1threesix67px
|
||||
sxbjdbtlnjrmlzgxneightthreepmqxdxhfk8jfrheightwovp
|
||||
twofour2sevenk
|
||||
sevenonezknqnkfqbzffjvfivetwo94two
|
||||
45xj
|
||||
mp7one6eightvhfnmfive6
|
||||
fhtctftxm3threefour2b
|
||||
2dq7bdmhhs92
|
||||
pdnbqlbvtcxgpnfhmsfhzstgm173
|
||||
8fourvxkddsrlcvseveneight
|
||||
15zqpmsix77hlljgfive
|
||||
jzjv6seven
|
||||
eight1vbfive
|
||||
721sixsdzbqtskbpkqbcmgmlpk5psrhr
|
||||
pqxdxcx5
|
||||
twozsf2five
|
||||
7twosixthree775
|
||||
7xtxrch7six
|
||||
729twofourlqrxtwo
|
||||
qtvbgtclhnk4ninefourseven5one
|
||||
jvhngkcdjhnmqghdbqdzqssf5onegzjbbcchboneightn
|
||||
five8two14five2nine1
|
||||
one3twomddthree
|
||||
8nine9two
|
||||
7fiveeight9ninesix6fivethree
|
||||
254kcd61dc4two
|
||||
7sixonetxvthntlngtwobzkbz23
|
||||
8sixnine6
|
||||
threedqtgmv2skmvcd
|
||||
7ptdhpvr1
|
||||
lsvmzvzvd9mqxszjmbddkmxzdxsninedmglzlzphtwo
|
||||
kgdt12seven4xxtttr5
|
||||
nrdtgdftjmfour6fxjninenineblqlthvpcx
|
||||
ninezmstcdfchc11onebmmfdfhvdncrhc
|
||||
1fiveseven
|
||||
oneone26twoeight
|
||||
threefivenine98one9twotbbcq
|
||||
9cm7ninestc
|
||||
jcrbmcjtrlzvz7
|
||||
nine8nine22
|
||||
3nineoneseveneight
|
||||
58four2three
|
||||
stwonefourthree9twonine4six5bvxgkxf
|
||||
ninechzcz4seven
|
||||
2tgzgmtzzpjdqqz
|
||||
brsptjppb28qxcxxjbzpeighteight
|
||||
eightthree3ninejrft4
|
||||
sixqsgkzdjmgpfive4threemxltqdxsfive
|
||||
vxfd2q8
|
||||
khqhgqlxslkmbrvljcnineeight1gjgcqmnbdczqb8four
|
||||
mvbltrgpfourcclxftbb7gcbqcptvgfsevenrdm
|
||||
61eight
|
||||
six8fourthree6fourseven6three
|
||||
jqdfxvhjg3sflkn2sixptxxsqrfml
|
||||
6jtxs
|
||||
seven99threeone
|
||||
five6sevensmbbrjqvdbmkbsqtwonelg
|
||||
fdvfsndt32fourgllgfrninebhnzzczfive
|
||||
9hxp9srhjhjjvqljhzprcjpqreightzs1
|
||||
djldhkkcn55threethreefourflnxnbzhkzmx
|
||||
fourfive43chfvjnvjrkpxlgjrfnqbl
|
||||
fxjgtj4
|
||||
1sevenfour2fiveeight
|
||||
seven43rxxeightb1
|
||||
9sevensnxkp3lpzxfxnntkxzkrhk7jzhmtvn6
|
||||
25one
|
||||
threeone7
|
||||
1pkfvsxxthreeoneseven
|
||||
ztbvfqnpz2xdhgdjmgvfourtworqbxqsh47
|
||||
8four7sixninesix
|
||||
threedgl88cczqhqxjnc
|
||||
nineeightthree4sixfive3sixdqlmscqjk
|
||||
16crjsdl
|
||||
tgq2sixhc7three
|
||||
tzgsqspndt5xnqlthghzfvkkhone
|
||||
4fxdqrs64ninex34gd
|
||||
seven22
|
||||
kghfkrpvnppfncbhhqpt55bjf
|
||||
hjhb71bqdrrgsrkqdtsgrxgsscqjmtfzjkzsbp
|
||||
lgdnt9threeeighteight97
|
||||
pvjhnk83sixncvgmsjltwotdmmpxknhvntfndxr
|
||||
7449
|
||||
qdfzv9hkprplzkfh
|
||||
66three5five4zdsfrcnljqmsxf2
|
||||
veightwo27bdbsvseveneightrcqcjxsixeight
|
||||
1thvkkk
|
||||
8bnxqfsdhzppblzlzbkfsksfscmb
|
||||
zseventbdzlmhnnrfive1one
|
||||
sixxnmntrmp6srcsqbrqnjfiveeightfive
|
||||
4trnzlshnjtwo5twocxrvfssbj
|
||||
6two3twonetqt
|
||||
55qsnx43
|
||||
3three23tpctbkrnqv
|
||||
sixqk4cnfdmtltmlhqxtwo41glkhdhgnt
|
||||
35fivesevenpfournxzsbbgzthjvlvzrnine
|
||||
tworkzgkcvcone53nrvgdvgtc
|
||||
two9llkjbkz8pklrsgqqzr2four
|
||||
ninecgpbgcnine4tldjqsone4six
|
||||
2tfjhtfourfour
|
||||
onebhlhdvvqx1sevenmsixsix9
|
||||
pjgjt6jkrgshxltfnine8four45
|
||||
4vsqfljrfiveqeightnvbdb
|
||||
11nfslqvhm
|
||||
7crrhqxsfive8ctkzbhqnine
|
||||
vrvtglvthreettrkq5bdlrtpx718
|
||||
1btbxlthreedtrzgeightnineqczhqm3
|
||||
193
|
||||
fcbzxqxxjtmn47ffschdrbeight
|
||||
twoh1gqkrnm1
|
||||
7ninesixpzpsn7
|
||||
5kkvzpgqd
|
||||
three6nine
|
||||
32fdn
|
||||
22twoxgvktxpxmbjqtgtbckx
|
||||
1hdtftwosix
|
||||
2jfc
|
||||
six5nvzcgmrscjn5eight4
|
||||
nineqhtczsninetwosix4five
|
||||
9three6sj
|
||||
hntktlbqmldrphqzxkhfour193
|
||||
twotwo5259
|
||||
v7six1vtlxnpm
|
||||
rhsm2
|
||||
gprmtxbhlsv8onefournine
|
||||
2fsrbtdvft15six1kxpqbnqsxh9
|
||||
one5onemxthree8
|
||||
nineqbxdbznzktxsmstsntzffour3one
|
||||
9blhkhjsgsfgsblzdtqqfour8
|
||||
stz4889563cb
|
||||
vjrbs6threeptbbmncz7hqhqgfgldtseven5
|
||||
vbfs1
|
||||
zjqgczjsjpvzvjseven4
|
||||
sixfjzbrrhcfqvglxhnsxninedrvtvjbfqjdbrzblkq6three
|
||||
one3threegcdldjsrsssixonefiveonechngsl
|
||||
7srxv4hsgjqsqfvv1tdngkpjrczkl4
|
||||
5scgdglnjbnsix8fivesixtjccvmkfxfnzvhctgpncjc
|
||||
4eightfivefive1lgscbj7kpcr1
|
||||
eightknfssevenfive6jnpklczrpfeightwol
|
||||
37qccxllhzshninebvpc8
|
||||
1eightmmcthkhf
|
||||
seven8fourqn7tbgqnmzcc1
|
||||
sixsevenone4
|
||||
clhdvjnqnine9threesix
|
||||
onetwoeight9
|
||||
81z3threenjsdhnqxvtwonezv
|
||||
9hqtsb
|
||||
onekgnlbthreeg3
|
||||
eightspnrpjb65fivevzfpvjntbg7drbgjccneight
|
||||
ninerdlsix7285
|
||||
fournineninefive3vbnhmhdvjgdqcm
|
||||
njzspqxpxrone7four55
|
||||
nfdhlqcpvzrrtsmzhgq3
|
||||
fourmfdtnpsfbxkjtgtgx5sixrppsqplqdjvnsixdtqvtdm
|
||||
21onesix6sixnine2
|
||||
fffsmvtt8fivenineglrqrmktzzseven
|
||||
fivefoursevencjxmskrqclz2
|
||||
lgk27threefourfsqrbkntbkfourvflgrzhh9
|
||||
617hj9
|
||||
ninegcxninetwohpfdxrb3tjjjtxtnvtwo
|
||||
one1gnftc8onehtsxsmg
|
||||
foneight3fsbhdqzr5twojbsdnntwohd9seven
|
||||
zkzpfvcxqnbvrg1
|
||||
nine36cddqfvrf
|
||||
rdjlpfk2pschfsdrpz
|
||||
nine994three8six
|
||||
three3nvflpftf2eight4
|
||||
3nine2
|
||||
rxxjdk5354
|
||||
hf4eight8qjtcfldnkvtwofivetwothree
|
||||
7six3twodhnvmxj1nine
|
||||
57seven3six6
|
||||
qklbvzfhclfnllhhgeight8xtvld
|
||||
5fgzqhkssmkcfour1
|
||||
hhvjkdnlffnineeighttwo18twonecs
|
||||
sevenbfzrgfm1six1
|
||||
nine71cskklxvcbnxtskdbqnpgklrxklcgccxjnssksrlkx
|
||||
hmklhhjdthree77
|
||||
3vpxclbgkpone3ninesrclfive
|
||||
djfqkgjvqpfvdsix5sixtwoeightsix
|
||||
eightlt7csvgxpnslk
|
||||
sevenfoureightnld2mxtgpbzpthree1
|
||||
11sevenglfmsb6
|
||||
onetjjnxvssg1four4drxbxpnpv24
|
||||
2zdxs9mfnbgfmjln1threefive
|
||||
one186ltsbck
|
||||
6fsbpb9sixhc
|
||||
nine818
|
||||
xzqcpcdprsqjbgknkvztwo419q
|
||||
39qfdlcnkhg31
|
||||
9djnlcrxqxhrcb8mczrxrm
|
||||
nmb887525seven
|
||||
jhmv3
|
||||
zhvdbn1fivem8seven4sixoneighttsn
|
||||
6zmmjqmnftclqbcthree
|
||||
6cpzeight92
|
||||
onepqfhtsevencvlfvnczhb91mmtdprqxmcnine1
|
||||
tvqdfxn8eight
|
||||
five6fivercgrpbtjgv87jmcndclbk2six
|
||||
jgtmrbvl68lpqkpxddqqxvsixfivesix
|
||||
nine2nlffgkvmp
|
||||
1frdnhssftg4eightgclxsgqtn
|
||||
2sixblr94six
|
||||
94mlfv
|
||||
6vlqtcsmdd47hpfmlc7fiveeight2
|
||||
tklxghxv5bzc4hhcdcpmnine8
|
||||
four6one1zzgqghvs412
|
||||
xghjpblsfpg19ntpfmcfd
|
||||
471rbdblzs
|
||||
69fourhjxkvd7fourfour
|
||||
jmrscfqdfppfdjskpk61
|
||||
five5eightnqpd9ninezknztwo
|
||||
onelknchr7nrfprgmqzp
|
||||
svxlxrx9892five2
|
||||
3ntkbzzpxhdmrsix8ttgp
|
||||
ndh7zlnrzpvmnine
|
||||
one7xlnbmjjmfv62qvqjpfprbvjkpcnine
|
||||
99three5
|
||||
threetwotwo7dhtgtbchc7sixtwo
|
||||
tmfxxph3eightgdccscdsrkmnhbb75
|
||||
joneight4one5
|
||||
nine3six
|
||||
81tqzsqpkv99
|
||||
sixvjlq7
|
||||
five7bkc
|
||||
five3811threelfpzztxzk
|
||||
1fourkkpclqc3
|
||||
xgrpbmktcthree46g
|
||||
bgcp4two8
|
||||
jtgeightwo7nine
|
||||
bkmcrcq3eightrdtvrbglmxmmztqm
|
||||
7tscmg5one2jhhbfb1
|
||||
zt5khcrgqjg5nxxzxzd
|
||||
five85
|
||||
twothree1
|
||||
eightsixthreetwo6b3tnjmcqdjfive
|
||||
onefrlg7
|
||||
fivescbjxbdnvslqqsone5bdbvskpmksqmmfsncsmd
|
||||
two83fourthreefourseventhree
|
||||
dglrmbtkfltwofive8ninelzmrxvxoneeight
|
||||
8nine6sixsixtwo7
|
||||
sevennine4lbsevenkdnrhpltn
|
||||
h3fiveeight4cplrnd
|
||||
vhsgjbqm3ninedfhfsb
|
||||
93nine7jvjmlzgcztrqlxtwo
|
||||
zhhhdddbbgcssvfzdhmpone5fivefournine
|
||||
l9fourvjfbqpdslkmvxsdrnsgcvzpjxm
|
||||
kxlseven5two
|
||||
rbtwonegsdgvsjtpnnkone7mdz
|
||||
phffknvthree2threeqgvfqxgnine7
|
||||
2lgglnmthreeseven27three81
|
||||
lrgkrxx2
|
||||
seventwokxvzkvq6eightthree
|
||||
5fiveseven
|
||||
fstwonersngdlngx28nine
|
||||
49oneninesix8four2q
|
||||
hfvhzvmjgbfcbsevenrmhjhzkc3
|
||||
six84
|
||||
8eight2gzblldzvkjfive
|
||||
6fz3eightzmsqb4qsbbsnthm
|
||||
fcglpc2one51
|
||||
sevendqghclrpxt7pzone48two
|
||||
three5one
|
||||
5sevenfivebbzkjlcnxseven8fourmzqlxxgjvc
|
||||
xgg8one6782
|
||||
gggtljnnsix3lkhdqzzpdtdkmjtgjddkpgx4five
|
||||
qrmsfc13onevnhlbgs
|
||||
nrtwonethreerbbqffzh62
|
||||
5eight81gcdbrx3rlk
|
||||
mtdtxcmm2bgmqhgqrtxsn8
|
||||
onercx2
|
||||
9sixoneqgr4
|
||||
xmoneightfour2
|
||||
six85foursixninetwo
|
||||
ninetwo8four8six
|
||||
qchclfzq47
|
||||
khrll3two21
|
||||
seveneightnine8868four
|
||||
3rmbmtbxjp12seven
|
||||
3tsxgvqxmzvxbdvxtgrvdbzqbh
|
||||
eight7fourjtxx
|
||||
fmb4one7threekbxeightwoj
|
||||
vcsevensixseven577
|
||||
2dkhlrrtrnbgzrmxm5fiveclhgn1eight
|
||||
1sevenlmrbnfour17seven
|
||||
three5jtbvkseightoneseven4df
|
||||
fourrgqxplbpbxtsgkm7
|
||||
fourqdfxchlc371sc2
|
||||
fqxlmeighttwo1seven
|
||||
zvvlftlhfthreesix6three46qkstxvdt
|
||||
m74pjgccfour1four
|
||||
plphq933eighteight
|
||||
cdbqlhbhj3eight
|
||||
4onevgdkxhz799five9fbljhpqmvk
|
||||
two6qzgphxl
|
||||
two1eight
|
||||
onekxxghlonerqqlrs83threehvvdhsxmfour
|
||||
npmsvvrdl2673
|
||||
fivejthseightsixtwo9vgrvjzbzsrxjv
|
||||
eight2gqfive7mzjzpxqcvheightjfx
|
||||
1bxckdpt
|
||||
dngoneightbtdptfn85
|
||||
fourtwovfzgmxjseven935
|
||||
8onesix2drgjnlrxbtdlmlznine5
|
||||
five4mmpmqlttsx56ljdzldntdvthree
|
||||
1nxxgtwothree22twothreenine
|
||||
38eightsevennxctjfstp
|
||||
8fourvhnps3onellstpnztn6kvjccmv
|
||||
1bseven93eightfour
|
||||
5nphkdbhxqb2pqxtkvhxq
|
||||
nvvx6fourjgkdsczjv
|
||||
fourxrmq78
|
||||
8tjmnvthree3ninetwo2five
|
||||
p7cvtwoneq
|
||||
7thbggjbznrsixonethreeninej
|
||||
xdgm1crqfnklk
|
||||
onehmqqgh4ninenthjonegfjmvtfgd
|
||||
sevenbsqtlk9
|
||||
8seven9two9hdz29
|
||||
fbcjhzdgzdg8jgjvcrmgbcrsixnine
|
||||
3bssqrj44onedqxvhkfive1
|
||||
tmmxtz5dtxbbcjlfivesix
|
||||
pvfqzksgrs4khmlvtwoeightlsx
|
||||
psbttsmnpninefour42fivegsixfive
|
||||
sevenfiveqscr7dfxpninesix5
|
||||
xmsjddzfxftsjfq6four6eight6three
|
||||
seven42
|
||||
eighteight1nineeight9
|
||||
8c
|
||||
pmqljjjzvx5znxqnsfour8
|
||||
78zlpxnvsqpgmgmk
|
||||
four7fsgttnrgnlslr
|
||||
fourtwo3jg2
|
||||
qlz18three5lpxfjvnfppqjxh
|
||||
4fiveonetthree4eight
|
||||
7lzffxkxnzjrtr
|
||||
three7nineone46ksnshqgdpt
|
||||
8dntxkkkgdxggvhxh2onefour5gqzsqkm
|
||||
tjsixonedbklrxxk2twonxdpjzb8
|
||||
mfglbrjrq93
|
||||
seven37xhsrxrvcgninexbmdrzxthreeonethree
|
||||
fivegznvfztszqlhtrsslsmqq43212
|
||||
tdthjjjbkeighteightsevenpcbmpfq2
|
||||
five1eightq
|
||||
three13three4vrsrrtp
|
||||
cgztjgqgdths2
|
||||
dhxztfvlonetwokszrv8prdpm2
|
||||
dfkcklchjj8twonine52ppvndfcnf6
|
||||
three7ninenkxfourfive
|
||||
93sixlqxctdhmvssixone
|
||||
oneqbvfrvteightnineninefivethree9
|
||||
jskrtmvsrqnpvcgsmxbonecmlrjpdpc4three
|
||||
crpcfour54xxgzz
|
||||
9fivefhdpcqsd
|
||||
fivenineclfctjninefbsh2
|
||||
fivexhrzbqpfxl8sixtwoeightllzplcpllk
|
||||
zxgl5qneightsevenone
|
||||
sixpdc17thxfive
|
||||
1twolftpzbmnzvdlkvlsevenhdvgfrjhmthreethreeddkdvht
|
||||
67twotwo71
|
||||
oneeightcgnhtdxpfnsevenoneeight13
|
||||
eightthreervd5tnj17
|
||||
ssrsmhxrsixeight3gbqggcvfqg29
|
||||
6fivecvcdxnxhxxtlzthree
|
||||
fournrrsix595
|
||||
p2qchlvplzdvchkbdzzbnsix7ninefour
|
||||
fourthreefourtzvlrnr9m94seven
|
||||
4jxzkrfourvtjpsnrllkjcczmmqnsj4q1two
|
||||
4627qlpscgpjcnine539
|
||||
two6nineeight
|
||||
63five66fivethree1
|
||||
skndgzsbsntwoone1
|
||||
threerzgdxgtthree2three
|
||||
953lsdgn59
|
||||
27bk
|
||||
sixmfmbslpjjsixsvnqrvtxznffive5
|
||||
2ninenlgpggxm42six234
|
||||
fdzfvkjnchsevenfivethreetscllgjvrtqckfnmz3cszmt4
|
||||
7ninetlzsxjsl2nine3
|
||||
shsvptqngsevencjjthvfm9six5four
|
||||
7lsrq36threevzfjc62
|
||||
two59threedxmfourjfschvqvnine
|
||||
khfqjmksxhbvs8sevenhzrmjtkgm
|
||||
nine2stgflmsm8fkthhhjzlszdnmkmqpnjxrfc4
|
||||
twofourthree244nine
|
||||
eightvt978
|
||||
fivefiveninesixnine6513
|
||||
2lbtz19fourtshqsvblhrkhxbpfour
|
||||
ptt7bntxhdvl
|
||||
mskflsslvdlmndmmqmfourtczqlssnineseven5xxxkfvzd
|
||||
l329eightsevenfourfivethree
|
||||
rmlksxsixspp9fourhlcg
|
||||
8five9q
|
||||
hqoneightsix19nine6xmjbtgjzgrhmlrxq
|
||||
six38
|
||||
9eight2
|
||||
3sixbzhgfcg57sixsixjtqmknd
|
||||
9fchn58
|
||||
vrpftbnvonefour6
|
||||
vqgdtrvhnnxxsevenseven9eight
|
||||
56vnine5rdpsnlqcbq7three
|
||||
vncrjds2cmrg7
|
||||
213sixfivesix
|
||||
tzclpzdsthree4sxgjvrzcrzcndnfour
|
||||
4sixseven1three7
|
||||
8fbrggzmtqn8
|
||||
four79p
|
||||
twonineqonemfour3dq
|
||||
5fdgpmrghtksn5onesixtwo
|
||||
xseightwongqqsxtwo8jslclldvnb
|
||||
nine1one
|
||||
9gxjrfourvhqzcxdhrtpxgtwonine
|
||||
eighthfhtnvchtc7fjkrxsmhtm7rbk
|
||||
thqxcfjbksix32xqrgqsqtx
|
||||
6qjqql
|
||||
jgcreight7eight
|
||||
6onesix4threeseven
|
||||
5vcv1twoeight7
|
||||
fivesthreebvjntwo9jdxghmxvl
|
||||
632msc9threenineqfone
|
||||
dqxfourkb4eight
|
||||
6stsp3nine
|
||||
566sevenpdmg
|
||||
xprjdn55
|
||||
9mjtcmhjb
|
||||
twoninelkjznqztbc3twolnhjhdbfxmhfr
|
||||
twotczpxn6qlcfdlpnq
|
||||
4ninefive
|
||||
1rs44three2gzczjdgq7ssmtgjbgbb
|
||||
ggmzqbkgsix4five23bftjlmbfbd
|
||||
threehfcscmmlqvcjtpthree98
|
||||
7sixsixone4
|
||||
2fivefvrr9four4three
|
||||
1zt1seven
|
||||
9hsbthqvhhsnineone23tslqccg
|
||||
sixbqvd3
|
||||
22148four3
|
||||
ninejlpbtnfive41rtzqjgfmcbncrrlnn
|
||||
9sixfour
|
||||
qnhfivetwofjtqtlxd7lmrlfctq864
|
||||
69dqrzhlqssgcsxtz54cpmjvrkcfiveseven
|
||||
fiveqpv85frkmpgxgc
|
||||
xxqsscldeightone9ngqtkf1nine
|
||||
5sixgxbnnjsvhf5dgxgone7
|
||||
sixsevensqghlvkfxnfour7
|
||||
8gmgvjbfivesevennine
|
||||
qj796fourone9
|
||||
rmpfsppvzdtwo4threetwotwo9
|
||||
dqvtrhm3nhtrxxccmfiveonedfzfvcghr
|
||||
4threejxkhnxcxjoneightp
|
||||
sevenhkpfgdgsgnvseven3m
|
||||
qhrvjcnfdbqchrsvchcxfourbkhhq9six1eight
|
||||
29pqnd
|
||||
1oneonethree627
|
||||
5977rcr2threeeight1
|
||||
fournthpqbztrhnine64
|
||||
fjnjpgqxr86five4sixxhrtvbp2two
|
||||
7sdnvlb5two
|
||||
58vffgzcgx4nineoneeight3
|
||||
h1sjgqbhndbz1oneqgncmhnleightwos
|
||||
gjms21
|
||||
onetwodphfznine51
|
||||
gxpl3fourzfz3
|
||||
five46
|
||||
mqsixccffmc9gqk1
|
||||
5kvxpqrrpeightthree
|
||||
threefoursevenfive2dhtbrxlzzl
|
||||
shhczssbltllsmntntlqfqgnnl98rm
|
||||
5oneeight3vkqtwo29
|
||||
bv69fouronefourone6
|
||||
eight6five966
|
||||
4xnrtztgfgcmnmnsevensix
|
||||
gmsvtnjd1sevennine4xxhqfbrjjqbglqjngttc
|
||||
mdnxhhteightfive5onenineninegqjbqmfd
|
||||
xonefourtwo4
|
||||
onesix61
|
||||
sjmnjhkj2892eightnine9
|
||||
nzseven39
|
||||
99nnjjzdrfsnjhthree1sevenfive
|
||||
6xmggtbnblnbxdpkzblnvcvjqmhvntwoeightseven
|
||||
76five6six
|
||||
chdfjrlfhdzeight778
|
||||
xrvrck9five1hrvpfvkdcb7eightnine
|
||||
foureighttq5sgdfourl2
|
||||
4rnbxrhhboneonefournine
|
||||
5four3
|
||||
1b97eight
|
||||
hlcjghlhsf32tgknm565knxqr
|
||||
onecqgbgdcmlb2sixsix6nine
|
||||
kxdkz3
|
||||
seven5xvhrxdm
|
||||
xblqbgkqgsixvgrthreezxnzhknklxhbmgl4
|
||||
fvnkc7threethreeseven
|
||||
bmbqxv24jhdg
|
||||
97rfphlxvtx
|
||||
4pgblonelone
|
||||
ptdpllrddeight3
|
||||
9knpjzskrfd4
|
||||
twomjqdtbbvmj4shvsqrone3
|
||||
9zzh3pjsf6mhxlhm9glglfztjm
|
||||
cfconeight47fivetdsmndgvsmbqjvszb
|
||||
21vbqjz374
|
||||
sixeightqgfdjbhfd4oneeightone
|
||||
tbccqdpz78srmcdx4six2
|
||||
643gqtvhkljxt
|
||||
klfjf4qms
|
||||
zrnhkhqzpczzfqsgsrtxklpbtp72
|
||||
1cnqfltrmhphg832three
|
||||
twoseven5
|
||||
mxkmxlcgsixklclrkfr8638fourlrqpzgjq
|
||||
nkbfkh452pthree
|
||||
zvcktvd2485four88
|
||||
rfxj4
|
||||
three6jnr7
|
||||
two45rldjnmxkjphtwo7v
|
||||
fivelncjffdnkzqrshvthreeh3p
|
||||
ninejgrbmhrbqldeightnine6nine8one
|
||||
96lvpt2djrkc5
|
||||
7seveneightthcxgthreeseven5hpfddktpj
|
||||
6bvn
|
||||
sixbjxtphstzgspnmkcvc952one
|
||||
gmmslrndvltlthree394sevenoneightl
|
||||
threenine7onefourtwojxhzvqlseveneight
|
||||
5eightsix4txcczzmg
|
||||
84seven
|
||||
skjpkhxggsvjbprhllgjhninetwo6
|
||||
72bdpzccvone4zbdzlllnnonernlfvdpq
|
||||
bvrtmzmtwonine29
|
||||
mrlvmdnlxb2814five5fjxzlhpn
|
||||
lmrpf82rksix611
|
||||
tvq18oneqnmmzvtclnthree
|
||||
jrbjc1zbbpqbrddt26seven1
|
||||
lxfivenmdtnhdmf98ptpxsgmgrxkmmznlk
|
||||
zbmvchmxsevenddddthree2dxlddjp4
|
||||
three3onejg2fqgtjmpcgeighteight
|
||||
three2two9seightfjqtwo
|
||||
ninefive8sevenvnssix
|
||||
3cnbxxtgmf5
|
||||
kpmjcsfrjfgzhmbpnqmlvrhbhqs8
|
||||
3vvcone64
|
||||
fvqksdsixthreexbfivetwo3
|
||||
sevenseven5
|
||||
63twoone8vhbcpmmlfive1
|
||||
4ctwo17eightsixkpvlgpj1
|
||||
rsgsnone1
|
||||
kbvxonemcqfive3eightone
|
||||
ninenineone45threepvsmrtonejxmbnd
|
||||
37fklnjkslqk9th9
|
||||
fiveoneq8rcgdxtwo8jfkxq6
|
||||
rgd7
|
||||
7rgkdpvp7qrb
|
||||
7crtxfmslxxtcxsv
|
||||
mqdnltb23fiveqcdqtonethree
|
||||
8seven7
|
||||
8cqhqlhndqjznqhdbld2nspnxbj99tqqhp
|
||||
onelqn7
|
||||
bvbjfour7
|
||||
ldqzhvhrbgsrrkh5j
|
||||
kjsjxdcqgjztldjvxxgr9twoxfknxrrrphkdzdl8
|
||||
rvscnztblp56ljqtwompclcf
|
||||
2dbtdgsevenhzctckvkvxvjljz
|
||||
tvmhhxbbxvvsnlnineqsltjd92one
|
||||
9twoqdmtvbxhpcthreeeight
|
||||
81dvnkd87xbct
|
||||
6mnxqnndcjfivefdckzmppfsevenmqvvvbnrgs
|
||||
lvl3qjk5
|
||||
3fivefive
|
||||
ktvsqzrf14eightmtnqbcktk5
|
||||
sevencdknznbxseventwo8rzggmvpbvlrs
|
||||
hkhhrdxlml1xzbshninejzqc
|
||||
eightseven23shkgzdgvvcxxfdv5
|
||||
14five1sevenxfmhtptwo3seven
|
||||
47one
|
||||
2three3
|
||||
f5dszzs2
|
||||
xmxffxkxpkninethree8x6seven
|
||||
glzoneighteightrnjqgjznjm9
|
||||
63fznqxdfqt8
|
||||
33nine
|
||||
4vrbmthreefbdzf
|
||||
fourninethreesixnine9fourlvbgqhjbqncnlbjbz
|
||||
two848dbvbninenine17
|
||||
pqzqgone1two
|
||||
eight7lmxbhcsix
|
||||
szr2fcvkljctlghhthree
|
||||
sk81pxqhhhhvnjvgzfiveseven
|
||||
cgqqkrz2vpdpzrthqssg7nineeight
|
||||
498eightfournine
|
||||
eight85onesvxnineone53
|
||||
ninevmchpkcg2
|
||||
six2shsvqfivefourtwo
|
||||
mdzckfvr72cv
|
||||
twotwo7onethreefourdjtgjg
|
||||
tworfclmm3
|
||||
5sfvnkrmrptsix7four6kzlmclm
|
||||
1onedkqgzbr89kphvc8
|
||||
5seventhree8eight9eight
|
||||
kvjpgjgrcmpdscbfthreethree4mjqjnnzceightwohh
|
||||
kjbmh1fdkdtznmsznvlconeznineseven
|
||||
1fmgpxhxpqznqscvbszhhcmglvtnzhbbjjbzg
|
||||
1mfqzkfnine5
|
||||
rrflkqslxztdlqxqkdnhqd7ps
|
||||
39123thhsmscbpxr
|
||||
8vnine4jgqrvqtshg3jhhdnbsrxneight4
|
||||
xkqgnfour87
|
||||
lsbnjqtzqz7ninenineone73lmkbnkhs
|
||||
9fiveqqgqblfivehttxk
|
||||
8twotwognd
|
||||
4xknbheightfour6358
|
||||
4cqtpfjpf72eight3
|
||||
ninemjpqpqg8foureightsevenfcvpnrnnpzhcgkm
|
||||
37twofivedsxrzbpchnkgxqx
|
||||
oneone57one2k92
|
||||
mckoneight9threefour1onefourhdrcrvhqcmngkjnsthree
|
||||
945
|
||||
tmmtwo7
|
||||
57
|
||||
6twoxzbfftnr27
|
||||
threenine4bqpztsixfour
|
||||
84eight
|
||||
3jpbnjrqhqfnxckqkqdvls
|
||||
9gzzjzz
|
||||
374nine
|
||||
ninembxeight4sevent
|
||||
threecq3
|
||||
cvn6cvqmpmfflkzphndjnggtktwosn
|
||||
pgz7four5nineeightsixqrnfkdkgh
|
||||
6one781vstwothreef
|
||||
one617fourthreefourxqxnpv
|
||||
8eightsqmkjkkf5xckcvd4lfnnfour
|
||||
seven23qhntfmg56onexkjxh
|
||||
f5s56rfltx282
|
||||
twosixninefive1tlzq
|
||||
threetdhghclfsksql5oneninetwoseven
|
||||
zbqzxmpb9pxlrthree
|
||||
r4gxdzjnvzfonejnpmfcpgvxjjvkh8
|
||||
five338threejkk67seven
|
||||
twolntxcnzvfr55sixtwofivesevennine
|
||||
xhlppbqfr71brvppsixthreefddlgpfslqmdv
|
||||
kxsklgonefjfpkd4threefive9six4
|
||||
6srphqmtdoneh3glthreefour8
|
||||
rjzdmj1cqvxnx1nvcvbfctft9
|
||||
3fqjdgbpggthreesix53
|
||||
9fivesndgmkvckblktzkshglqgdl4ztwoseven
|
||||
qqrxkqhnzb23two34nine9
|
||||
8hrmffgstqpsixeightx1six
|
||||
jngcsjnrhn2zsvcjmjg
|
||||
9zfdmhzxdnfour272dcrqgk
|
||||
lbjbrfhjxhxjphzxsjsix4
|
||||
fourthree2seven1two
|
||||
twosix87
|
||||
vrlqqkctddggcvcjcpk6hxbqvbxmtsix
|
||||
mrcgbpc6dthzqmmthreefour6two
|
||||
r2zntjxgpfqfmqh
|
||||
fourseven3
|
||||
6nfnsgchjdffttmgfnbvlxzoneseven8
|
||||
8sevenqqfiveseven5twojvgk
|
||||
4rmtkvml4
|
||||
bprnine85
|
||||
sevenmfpcvlblcnine485fourseven4
|
||||
sevenseventhree68fivelhqgjqvcdqkvds
|
||||
3fourxsgghqnvtssnvfs7nine7
|
||||
1fiveone5hpfdgvxb
|
||||
eight2eight42twotwoonenine
|
||||
lpdeightxcgpxkkeighthtjpsninemjlxrxtg31
|
||||
4smqpjzsixonethree
|
||||
mr6csbmgrdrjj3onelqd4four1
|
||||
5sixvbscchd3
|
||||
384sps
|
||||
4qzgsvmfx4ninevcclvcfrfp6tckcpvj5s
|
||||
8l5glclltgcjgbhcg6
|
||||
3ldtdmjc6threeone
|
||||
hsrtzl521nine5qqrtpdsp
|
||||
z4v8threejdsmbfjpbj
|
||||
9sixln26eightwovmh
|
||||
848
|
||||
kndxtqpfrqxdxtfnqrqznpgvp9ninerlzcdvdtwo84
|
||||
kmqs84775seven
|
||||
5threefourzkg
|
||||
43five8cq2kprvdqrmxr1
|
||||
three4ttjqdh
|
||||
48nine7sixfive
|
||||
22x
|
||||
sixrgtwo3rnbzkrztkdkg
|
||||
4t
|
||||
29bjpskmxneightppvthree
|
||||
zmlzxvtlkt4seveneightbxseven
|
||||
5two5eightnpszzmbkncnstx4
|
||||
9vk98sevenhznkxmlrlk7vdbqgvfjdk
|
||||
1sixb8sjkvdhfld
|
||||
one42eight4mrsdnpfjpvdtq
|
||||
76fourntsrfllxkdfqvm6seven
|
||||
skqndhr3nm4776
|
||||
4xpmfxmvj633eight
|
||||
83ninecmpt
|
||||
fourdthree9
|
||||
9eightjqnnmthcrseven
|
||||
7threekgtf1
|
||||
xscj7threenmhsixseven5s3
|
||||
cqlzjt41
|
||||
855threemlmmqkgtfk
|
||||
ninefzmvjjtvbmgf8nineninetwonegcn
|
||||
ccpkzcldfourkdtfkjxvfb9fourhbtwonsoneightnl
|
||||
pkeightwo5seven88rdnzzsdkbjeight9
|
||||
threen2fjsfivesix26nine
|
||||
nine4rz8nine7bglpcmkqfzpseven
|
||||
eight94six8dpgrv
|
||||
twodfctf278
|
||||
fltqtmdkgjsvf72three
|
||||
llrtzsixsix4fivetwosixone
|
||||
qjhtjqjhgkjkzlpxxclsrdnzk1gbqt
|
||||
sixeight1sixtwo
|
||||
one5413nkmqjtlbdkz22
|
||||
bhtwoneonemzpzkqeighttwooneqkmcmsbq4
|
||||
sevensix3three2sixprcqcvm
|
||||
25tjffdrtwohfqlkhzxlhb
|
||||
97gcgqgjnpsthfjfdv636jsxq
|
||||
zggjmjone1297six8drzs
|
||||
jbpvnineeightntkkshbjvr3nshnqzdlkjmkfive
|
||||
5four2gkkbxmpthreefour6
|
||||
5two15sixfivetzpg
|
||||
one4fouronemfpvnqseven
|
||||
9fnlbljdnzzfournine78
|
||||
djfljccrtvvqktzzvk61onesd
|
||||
7twohbkeight
|
||||
seven1eighttwothreet
|
||||
4mdcljknhpqgxffqpj5
|
||||
nine9jlsmfgdgntwothreeeight4
|
||||
136nh
|
||||
635ninejghg5
|
||||
cmone7fdlk9lfivemzvnhkcsp
|
||||
8eightnlndm
|
||||
6fourpb892
|
||||
fiveseventwosixfourthree7
|
||||
5fm
|
||||
ninegchdnrf63431
|
||||
24sgnflnsixninenine8
|
||||
snm9
|
||||
3fntd721dhhkrqqxsfpstsvzpgonetkhcr
|
||||
jlzfbml61vdmgb7one
|
||||
266517
|
||||
7fivetwo2vhchmg678nine
|
||||
cgrp3vzn5ninetwofour
|
||||
666ninefour
|
||||
9s
|
||||
svpcnlktpxtvk42jhsvvdpftxpsk
|
||||
2qznfzvbdr
|
||||
foneb7eightfivehlbjjknninethree
|
||||
kfp6
|
||||
l34pxxhxtd7d
|
||||
rsbcrtwo27twocqlmeight
|
||||
jkzgvqgpjfdqvmjfx2flnvjmgllxghhrbjjkfour2
|
||||
45sevengdnf59twofive
|
||||
6fivespvkblrxvkcgdxktl
|
||||
three9dvrssvl5eight4ftsix
|
||||
seven56gdmlbfbjsl894sevencmc
|
||||
814
|
||||
1one4
|
||||
onenine5fivekcrf1gvvfhlncsv
|
||||
2ctvq9djzddfxcrj
|
||||
ntdlcqgsixvmfvlc4fourvlhtvvqmnmkrm
|
||||
9nineseven1seven
|
||||
lcvzbnfourksvjqvmv47one5
|
||||
nine4blvlvlpkl6
|
||||
sixnqxrhnztzvpmbzmxjm19five
|
||||
18jtzhk
|
||||
rzrhv8four
|
||||
2npghxvjonebchsprfhsjznrxvxnine
|
||||
eightngsevencrjkxbhpgtxlzhgb46sevenqhqmlfx
|
||||
threesffl9fivelgmndjfvseven92
|
||||
seven85
|
||||
87six9vnshclz
|
||||
threetwo7915three
|
||||
one2vkbp6rhqbxvcl7
|
||||
bsbr1five91
|
||||
qd3mnine
|
||||
jjvhltxtdh5nineone6
|
||||
mbxlnj7bbhnxonejtmtqjfrzqgtrhkeightnine
|
||||
fourfourqrxdtfive2smnqp
|
||||
7tvjrszvrhdl5five
|
||||
four15tvmpvxpvdjnine
|
||||
sevenvv5tworpvdlseven3dlqvgblqtwo
|
||||
nkckggninegnlqlnv25threexlhlbzvzk
|
||||
3vngmhprjseventhreeeightnine
|
||||
nvqtpzsszrdvttfivenine56oneseven8
|
||||
146
|
||||
fxfbone59
|
||||
f32dhffctkxp6rcngvtfq
|
||||
sixthreefsixjhckmjqfive495
|
||||
42four
|
||||
65nine984
|
||||
5fthreeone9twoqqsfvzmp
|
||||
ttwonefive4
|
||||
one6gfxseightxqcq6
|
||||
3sixnrjtwormrncmhxeight
|
||||
jhdxnmsgsdsevensqsslbsndpdmznmldbgeight3tcvjjv4
|
||||
5sixtvpckxzcjzbmrzk9
|
||||
pmdmnfgkb3six8xsmstsmxgmm
|
||||
53onetvlgbglq4zbqpdgsskzdsksd6
|
||||
kzjcllvz6skphkfdxfiveqrbhmk
|
||||
75qqjdgxlmfthreevzbfjdlxkfqqq
|
||||
seveneightjntpjthzptwo2two
|
||||
2five4fvrfxxnine4qzkkfkmq
|
||||
2xlvcltn7
|
||||
fnmggtj2rqxzh7three
|
||||
rzpjkgtml1
|
||||
2oneseven4one7xps6
|
||||
rljfhfrhmzkjxktnszbkpfspxdkqneight2
|
||||
pzgnine49six2
|
||||
plxsqeight2
|
||||
eight2sevenseveneight8rfcrsdlxb
|
||||
sevenclpqqfxgjnmtwo9
|
||||
9sevenrqsixone8eightrxqgfsbjh
|
||||
kqtkstrxhtfzbllhl4lqvqkcbr
|
||||
hfplfpbltczflpp7nfive8
|
||||
ninenvqfrvtwo6onel
|
||||
threev65
|
||||
frhn18six9sixninefourrsqzgd
|
||||
mcxckfg5vpkbs89gbninexjzvlj
|
||||
fivesixdx28
|
||||
7ppbqv
|
||||
hs9twopcvpgtjnrsvksskpc8
|
||||
9mlpckzj2twothreefive
|
||||
rkrgdclkninetwo6eighttwodc25
|
||||
tfivefourtwohkhhgsqlj1dtdcxmxkf
|
||||
1four6five
|
||||
fgbvmvxvtsix2twonine2sixfour
|
||||
foureight66
|
||||
s6fourcv
|
||||
mxl358sixfive8six8
|
||||
ztbtwo73sixvxsix9four
|
||||
eight7qmdlcxfive5
|
||||
phgfivekrjxdmnzsqsix9
|
||||
1mfqsevenhz
|
||||
rjhcdgzngtc155bqlttbsxklpknvlmk
|
||||
qjkdqlrrs6two
|
||||
sxlmqzxdpxdnj9fivetwo9seven5
|
||||
2qtdblb2
|
||||
8qgdzrsixtwo598oneightp
|
||||
1shdb944
|
||||
vrlpronek2
|
||||
jm52
|
||||
8eightfourseven11mvtrmtkr2bmp
|
||||
mnvnjxrgmrxhztwo2ssrdpqk
|
||||
ztfive435three6threetwo
|
||||
tnrrdnbgnbhzljdxhxxfrqkcpeight8js3
|
||||
foursix6zcsrztvgjxmp
|
||||
five7fourgnnkspxcmczcbgsbdf77five
|
||||
fgbrzkmvgrdbqjqndpfive81onetwomtzlfb
|
||||
2qbsfd1two3ninetwo2
|
||||
8tdjxvfpvdvone33three
|
||||
lpchnmln56twofive8tfour
|
||||
cfkfbhppjf6fourdkfxsvdtbcjspzlseven8
|
||||
5fivestgkzsevenonedkhhrkthree
|
||||
37nine8six8onefhvvbkmgdfgtv
|
||||
26hzz
|
||||
5glvnsztmnfjmkjseventdm4five
|
||||
pvnnqrqvftrbcvnnthreenine5
|
||||
mgscxxlp3eight
|
||||
53eighteight
|
||||
two1oneqlcdkbddfour
|
||||
jbll3
|
||||
8threeseven5tmtrgdhqxd
|
||||
8twonine6s1
|
||||
91seven5pmqrjlhqrtzs
|
||||
jj3sevensix4482
|
||||
jeightwo7lk4three
|
||||
zchchxmsctzffivefournine9sqhqkgfour
|
||||
72xct1
|
||||
vnsxvsqkhpfvgdseven23gzcmltzgone
|
||||
xzjqhcvsix1fivecjtxnfivekmvjdc
|
||||
zdfourgjlhtwo24d5klkpdgqbz
|
||||
7sdzzdbrxbtonerjcmknnql4dfzqccvqt
|
||||
tncqzxjq9twofiveqkxdrxrpj894six
|
||||
dddmkctrzlpfmsszeight8zvbpmpkg
|
||||
three23ckjhgjc
|
||||
375jzdhnfcfr19mhsbnplqh
|
||||
vpbbjlzone5sevenseven33four
|
||||
onejzfsevenrbskjq1four
|
||||
seven13one
|
||||
vcnkfgv979one6zln
|
||||
rqlxzzbmjb4lmbthreektqsdcfzbmdsfivethreenrxdlkqt
|
||||
qkoneight8
|
||||
5rfourfivenine94fdprsix
|
||||
onexonelzdh2lcbqpzq6
|
||||
six6v
|
||||
7gtgxqnnine
|
||||
tsljzhntwo3fourpbjncgmvf3fflvjxp
|
||||
vfkdone9fivecftvmjdk
|
||||
xc5three6eight94
|
||||
18363one7
|
||||
8fiveksshdlfmzhljhcmjrn7kpv5j
|
||||
xbhmxfhbjnjzmninethree7
|
||||
2933mkmdqjcl
|
||||
6ncvzqxfvgfive
|
||||
lnine5fivetb4qmfktnqjxs
|
||||
93187
|
||||
5mqninedzkfhbk
|
||||
two7eightntdbsix298four
|
||||
sixone3bspxqxggkmkrbcqrhfrxrlgjrlvfl96
|
||||
fourfivehqls3nine
|
||||
threedfklszn2threeqzhh7one
|
||||
mqmftzglone6kjpgglznhrjz89
|
||||
146cvkftscqsevensixnine
|
||||
nndhdgpd484hxdgjtfsdxxg9
|
||||
6mbzckbjphg
|
||||
eight6jbjtnld2mdjtd
|
||||
zjtzcqxb736five
|
||||
jlkdmone8
|
||||
gvjnjvmlfvcmvnfb8xcgjcmjqvz1bzcctvsixfzqjlhfkfk6
|
||||
vr6onejnjmrrldnsixsix5six
|
||||
ninembtmtkgbctlfive45cjzzrmgcscfbcgeight
|
||||
2mdvneightjzgffivefive4
|
||||
hmdnbxghxjxt4czshmsfzc
|
||||
61six18threehrcj
|
||||
six3five6eightkdfzhxcjkdhq3
|
||||
jrhqrqkpd4hsixdsbjdpscclmnnhknqq16
|
||||
jflzcxr3three
|
||||
threefourghvgsktkc93cmjmsgh8one6
|
||||
96fivesevenslklhsfmpz
|
||||
jgkpgfnnbq2pmspdfhsqxfour
|
||||
g4fourthreerpkdhjhlxlzvnineseven
|
||||
xkxhkphnkvpdnlncn86srxthree
|
||||
7sixsevenrfour
|
||||
5zr72qltsrbdsv
|
||||
ninervqzdfzqmf6five
|
||||
8jslpvs73
|
||||
ztvlxndlm5twohdhmtrdnhbzdrxb
|
||||
seven6nine4dpdpvrtrmqvql
|
||||
jfz1
|
||||
5nineeight5onefivecxtqbsdtbthreefour
|
||||
fourgeight6threeszgseventwo9
|
||||
sixfour3
|
||||
npl8
|
||||
tzjkffsvbjseven5rhmlxonezlx
|
||||
5dhtpfour
|
||||
twothreebxtfndvdnine1sixbb9
|
||||
five9nineqlzrmtgs5
|
||||
9v764nineeight
|
||||
five4eightlsix6
|
||||
3nineeight21
|
||||
foureight8btsc
|
||||
3xgdgtb2
|
||||
7threetwonexqk
|
||||
kkqsix48onefourhlsh8
|
||||
onekgtdzgfh2fivenine2onerb
|
||||
six4zgcnlhmltrxp5xphvtwo9
|
||||
eight7cdqggpssix
|
||||
niner9pzmrbqldkljmgphrrgmdjseven6
|
||||
439
|
||||
twofoursixrthree5bxppnhqtx
|
||||
bmpnt3
|
||||
fivepkzkzpghrptpksevenseven83two1
|
||||
9fiveone8one
|
||||
fiveseven3lqxghdlskbltrzrstwo
|
||||
fournine3ninephlghonetwoeightbvmdcconeightq
|
||||
three2pvklmzqjfh4sixonedrctlsfdfour
|
||||
three91spjlscscjcxbbpdhrg37
|
||||
57qqjpdfppsix1qxrh5mlmncf
|
||||
4nfone5eight
|
||||
eightqsix7one
|
||||
4jtvxfd38hnrmqkbnvfxpp
|
||||
qmfsspkfour1plmslcrsseventhree
|
||||
fzckcbfvxbpsix7nine
|
||||
fzrj4
|
||||
4threeqntnineqstzjftnine
|
||||
tkrh6sixdqflrvtmzmfiveseven9ktmtvprkxhfour
|
||||
nine4983four
|
||||
mpllmjrfgv66five3kvhthplrtwo7nkklb
|
||||
9ngvdjddqbz
|
||||
5twosix8lbhmzrg
|
||||
eightsbmcfgm76two4hhc6
|
||||
seventwosevenrpm6threeeightwodxs
|
||||
xkbseventwotwogmkxhpmhm42hvvbfchreight
|
||||
gcqeightwosix8xdlhrnnbkmsevenqdbrjghz
|
||||
458ninextfjxvgsq5fltdsk6
|
||||
rlgsflhxqd5bdbhclmrthree
|
||||
twothreemqqbzjn88blvqxbseven
|
||||
rqrrdrmlfsixfive6
|
||||
eight959tzxkgqjd
|
||||
txdszrn5eight3cqeight1brqr
|
||||
45122
|
||||
jvvslnkdk6qnfzjzvseight55eight
|
||||
4twoeightgrhhkrvtkrzpfive7seven
|
||||
three8gsmkpzsmfvf2
|
||||
fiveeight5sevenone9twoseven
|
||||
4seightjjdkdglspz3vg
|
||||
sevenssrzkspld2
|
||||
qnzcvcthrsgjlnzxmxlppjdpnine8seven7
|
||||
eight7xhvkrcr
|
||||
two2tdjdfbqtqxrs119r
|
||||
@@ -0,0 +1,41 @@
|
||||
use std::fs;
|
||||
|
||||
fn main()
|
||||
{
|
||||
let file_path: &str = "./input.text";
|
||||
|
||||
let contents = fs::read_to_string(file_path)
|
||||
.unwrap();
|
||||
|
||||
let mut sum:i32 = 0;
|
||||
|
||||
for line in contents.lines()
|
||||
{
|
||||
println!("{line}");
|
||||
|
||||
let mut first: u32 = 10;
|
||||
let mut last: u32 = 0;
|
||||
|
||||
for character in line.chars()
|
||||
{
|
||||
if character.is_ascii_digit()
|
||||
{
|
||||
let value = character.to_digit(10).unwrap();
|
||||
if first == 10
|
||||
{
|
||||
first = value;
|
||||
}
|
||||
last = value;
|
||||
}
|
||||
}
|
||||
|
||||
let result = first.to_string() + &last.to_string();
|
||||
|
||||
println!("Sum of line {result}.");
|
||||
|
||||
sum += result.parse::<i32>().unwrap();
|
||||
|
||||
}
|
||||
|
||||
println!("Sum: {sum}");
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
1abc2
|
||||
pqr3stu8vwx
|
||||
a1b2c3d4e5f
|
||||
treb7uchet
|
||||
@@ -0,0 +1,1000 @@
|
||||
ninefourone1
|
||||
53sevenvvqm
|
||||
kscpjfdxp895foureightckjjl1
|
||||
72fivebt9ndgq
|
||||
28gtbkszmrtmnineoneightmx
|
||||
four66jqrbtqcsxjtqjvfjhl1
|
||||
four8pzznjbhxlhtz6bhtzdxjlg1
|
||||
rgxjrsldrfmzq25szhbldzqhrhbjpkbjlsevenseven
|
||||
slkjvk4threesevenznjqmmfive
|
||||
61ppgrkmkfhteightone
|
||||
1threesix67px
|
||||
sxbjdbtlnjrmlzgxneightthreepmqxdxhfk8jfrheightwovp
|
||||
twofour2sevenk
|
||||
sevenonezknqnkfqbzffjvfivetwo94two
|
||||
45xj
|
||||
mp7one6eightvhfnmfive6
|
||||
fhtctftxm3threefour2b
|
||||
2dq7bdmhhs92
|
||||
pdnbqlbvtcxgpnfhmsfhzstgm173
|
||||
8fourvxkddsrlcvseveneight
|
||||
15zqpmsix77hlljgfive
|
||||
jzjv6seven
|
||||
eight1vbfive
|
||||
721sixsdzbqtskbpkqbcmgmlpk5psrhr
|
||||
pqxdxcx5
|
||||
twozsf2five
|
||||
7twosixthree775
|
||||
7xtxrch7six
|
||||
729twofourlqrxtwo
|
||||
qtvbgtclhnk4ninefourseven5one
|
||||
jvhngkcdjhnmqghdbqdzqssf5onegzjbbcchboneightn
|
||||
five8two14five2nine1
|
||||
one3twomddthree
|
||||
8nine9two
|
||||
7fiveeight9ninesix6fivethree
|
||||
254kcd61dc4two
|
||||
7sixonetxvthntlngtwobzkbz23
|
||||
8sixnine6
|
||||
threedqtgmv2skmvcd
|
||||
7ptdhpvr1
|
||||
lsvmzvzvd9mqxszjmbddkmxzdxsninedmglzlzphtwo
|
||||
kgdt12seven4xxtttr5
|
||||
nrdtgdftjmfour6fxjninenineblqlthvpcx
|
||||
ninezmstcdfchc11onebmmfdfhvdncrhc
|
||||
1fiveseven
|
||||
oneone26twoeight
|
||||
threefivenine98one9twotbbcq
|
||||
9cm7ninestc
|
||||
jcrbmcjtrlzvz7
|
||||
nine8nine22
|
||||
3nineoneseveneight
|
||||
58four2three
|
||||
stwonefourthree9twonine4six5bvxgkxf
|
||||
ninechzcz4seven
|
||||
2tgzgmtzzpjdqqz
|
||||
brsptjppb28qxcxxjbzpeighteight
|
||||
eightthree3ninejrft4
|
||||
sixqsgkzdjmgpfive4threemxltqdxsfive
|
||||
vxfd2q8
|
||||
khqhgqlxslkmbrvljcnineeight1gjgcqmnbdczqb8four
|
||||
mvbltrgpfourcclxftbb7gcbqcptvgfsevenrdm
|
||||
61eight
|
||||
six8fourthree6fourseven6three
|
||||
jqdfxvhjg3sflkn2sixptxxsqrfml
|
||||
6jtxs
|
||||
seven99threeone
|
||||
five6sevensmbbrjqvdbmkbsqtwonelg
|
||||
fdvfsndt32fourgllgfrninebhnzzczfive
|
||||
9hxp9srhjhjjvqljhzprcjpqreightzs1
|
||||
djldhkkcn55threethreefourflnxnbzhkzmx
|
||||
fourfive43chfvjnvjrkpxlgjrfnqbl
|
||||
fxjgtj4
|
||||
1sevenfour2fiveeight
|
||||
seven43rxxeightb1
|
||||
9sevensnxkp3lpzxfxnntkxzkrhk7jzhmtvn6
|
||||
25one
|
||||
threeone7
|
||||
1pkfvsxxthreeoneseven
|
||||
ztbvfqnpz2xdhgdjmgvfourtworqbxqsh47
|
||||
8four7sixninesix
|
||||
threedgl88cczqhqxjnc
|
||||
nineeightthree4sixfive3sixdqlmscqjk
|
||||
16crjsdl
|
||||
tgq2sixhc7three
|
||||
tzgsqspndt5xnqlthghzfvkkhone
|
||||
4fxdqrs64ninex34gd
|
||||
seven22
|
||||
kghfkrpvnppfncbhhqpt55bjf
|
||||
hjhb71bqdrrgsrkqdtsgrxgsscqjmtfzjkzsbp
|
||||
lgdnt9threeeighteight97
|
||||
pvjhnk83sixncvgmsjltwotdmmpxknhvntfndxr
|
||||
7449
|
||||
qdfzv9hkprplzkfh
|
||||
66three5five4zdsfrcnljqmsxf2
|
||||
veightwo27bdbsvseveneightrcqcjxsixeight
|
||||
1thvkkk
|
||||
8bnxqfsdhzppblzlzbkfsksfscmb
|
||||
zseventbdzlmhnnrfive1one
|
||||
sixxnmntrmp6srcsqbrqnjfiveeightfive
|
||||
4trnzlshnjtwo5twocxrvfssbj
|
||||
6two3twonetqt
|
||||
55qsnx43
|
||||
3three23tpctbkrnqv
|
||||
sixqk4cnfdmtltmlhqxtwo41glkhdhgnt
|
||||
35fivesevenpfournxzsbbgzthjvlvzrnine
|
||||
tworkzgkcvcone53nrvgdvgtc
|
||||
two9llkjbkz8pklrsgqqzr2four
|
||||
ninecgpbgcnine4tldjqsone4six
|
||||
2tfjhtfourfour
|
||||
onebhlhdvvqx1sevenmsixsix9
|
||||
pjgjt6jkrgshxltfnine8four45
|
||||
4vsqfljrfiveqeightnvbdb
|
||||
11nfslqvhm
|
||||
7crrhqxsfive8ctkzbhqnine
|
||||
vrvtglvthreettrkq5bdlrtpx718
|
||||
1btbxlthreedtrzgeightnineqczhqm3
|
||||
193
|
||||
fcbzxqxxjtmn47ffschdrbeight
|
||||
twoh1gqkrnm1
|
||||
7ninesixpzpsn7
|
||||
5kkvzpgqd
|
||||
three6nine
|
||||
32fdn
|
||||
22twoxgvktxpxmbjqtgtbckx
|
||||
1hdtftwosix
|
||||
2jfc
|
||||
six5nvzcgmrscjn5eight4
|
||||
nineqhtczsninetwosix4five
|
||||
9three6sj
|
||||
hntktlbqmldrphqzxkhfour193
|
||||
twotwo5259
|
||||
v7six1vtlxnpm
|
||||
rhsm2
|
||||
gprmtxbhlsv8onefournine
|
||||
2fsrbtdvft15six1kxpqbnqsxh9
|
||||
one5onemxthree8
|
||||
nineqbxdbznzktxsmstsntzffour3one
|
||||
9blhkhjsgsfgsblzdtqqfour8
|
||||
stz4889563cb
|
||||
vjrbs6threeptbbmncz7hqhqgfgldtseven5
|
||||
vbfs1
|
||||
zjqgczjsjpvzvjseven4
|
||||
sixfjzbrrhcfqvglxhnsxninedrvtvjbfqjdbrzblkq6three
|
||||
one3threegcdldjsrsssixonefiveonechngsl
|
||||
7srxv4hsgjqsqfvv1tdngkpjrczkl4
|
||||
5scgdglnjbnsix8fivesixtjccvmkfxfnzvhctgpncjc
|
||||
4eightfivefive1lgscbj7kpcr1
|
||||
eightknfssevenfive6jnpklczrpfeightwol
|
||||
37qccxllhzshninebvpc8
|
||||
1eightmmcthkhf
|
||||
seven8fourqn7tbgqnmzcc1
|
||||
sixsevenone4
|
||||
clhdvjnqnine9threesix
|
||||
onetwoeight9
|
||||
81z3threenjsdhnqxvtwonezv
|
||||
9hqtsb
|
||||
onekgnlbthreeg3
|
||||
eightspnrpjb65fivevzfpvjntbg7drbgjccneight
|
||||
ninerdlsix7285
|
||||
fournineninefive3vbnhmhdvjgdqcm
|
||||
njzspqxpxrone7four55
|
||||
nfdhlqcpvzrrtsmzhgq3
|
||||
fourmfdtnpsfbxkjtgtgx5sixrppsqplqdjvnsixdtqvtdm
|
||||
21onesix6sixnine2
|
||||
fffsmvtt8fivenineglrqrmktzzseven
|
||||
fivefoursevencjxmskrqclz2
|
||||
lgk27threefourfsqrbkntbkfourvflgrzhh9
|
||||
617hj9
|
||||
ninegcxninetwohpfdxrb3tjjjtxtnvtwo
|
||||
one1gnftc8onehtsxsmg
|
||||
foneight3fsbhdqzr5twojbsdnntwohd9seven
|
||||
zkzpfvcxqnbvrg1
|
||||
nine36cddqfvrf
|
||||
rdjlpfk2pschfsdrpz
|
||||
nine994three8six
|
||||
three3nvflpftf2eight4
|
||||
3nine2
|
||||
rxxjdk5354
|
||||
hf4eight8qjtcfldnkvtwofivetwothree
|
||||
7six3twodhnvmxj1nine
|
||||
57seven3six6
|
||||
qklbvzfhclfnllhhgeight8xtvld
|
||||
5fgzqhkssmkcfour1
|
||||
hhvjkdnlffnineeighttwo18twonecs
|
||||
sevenbfzrgfm1six1
|
||||
nine71cskklxvcbnxtskdbqnpgklrxklcgccxjnssksrlkx
|
||||
hmklhhjdthree77
|
||||
3vpxclbgkpone3ninesrclfive
|
||||
djfqkgjvqpfvdsix5sixtwoeightsix
|
||||
eightlt7csvgxpnslk
|
||||
sevenfoureightnld2mxtgpbzpthree1
|
||||
11sevenglfmsb6
|
||||
onetjjnxvssg1four4drxbxpnpv24
|
||||
2zdxs9mfnbgfmjln1threefive
|
||||
one186ltsbck
|
||||
6fsbpb9sixhc
|
||||
nine818
|
||||
xzqcpcdprsqjbgknkvztwo419q
|
||||
39qfdlcnkhg31
|
||||
9djnlcrxqxhrcb8mczrxrm
|
||||
nmb887525seven
|
||||
jhmv3
|
||||
zhvdbn1fivem8seven4sixoneighttsn
|
||||
6zmmjqmnftclqbcthree
|
||||
6cpzeight92
|
||||
onepqfhtsevencvlfvnczhb91mmtdprqxmcnine1
|
||||
tvqdfxn8eight
|
||||
five6fivercgrpbtjgv87jmcndclbk2six
|
||||
jgtmrbvl68lpqkpxddqqxvsixfivesix
|
||||
nine2nlffgkvmp
|
||||
1frdnhssftg4eightgclxsgqtn
|
||||
2sixblr94six
|
||||
94mlfv
|
||||
6vlqtcsmdd47hpfmlc7fiveeight2
|
||||
tklxghxv5bzc4hhcdcpmnine8
|
||||
four6one1zzgqghvs412
|
||||
xghjpblsfpg19ntpfmcfd
|
||||
471rbdblzs
|
||||
69fourhjxkvd7fourfour
|
||||
jmrscfqdfppfdjskpk61
|
||||
five5eightnqpd9ninezknztwo
|
||||
onelknchr7nrfprgmqzp
|
||||
svxlxrx9892five2
|
||||
3ntkbzzpxhdmrsix8ttgp
|
||||
ndh7zlnrzpvmnine
|
||||
one7xlnbmjjmfv62qvqjpfprbvjkpcnine
|
||||
99three5
|
||||
threetwotwo7dhtgtbchc7sixtwo
|
||||
tmfxxph3eightgdccscdsrkmnhbb75
|
||||
joneight4one5
|
||||
nine3six
|
||||
81tqzsqpkv99
|
||||
sixvjlq7
|
||||
five7bkc
|
||||
five3811threelfpzztxzk
|
||||
1fourkkpclqc3
|
||||
xgrpbmktcthree46g
|
||||
bgcp4two8
|
||||
jtgeightwo7nine
|
||||
bkmcrcq3eightrdtvrbglmxmmztqm
|
||||
7tscmg5one2jhhbfb1
|
||||
zt5khcrgqjg5nxxzxzd
|
||||
five85
|
||||
twothree1
|
||||
eightsixthreetwo6b3tnjmcqdjfive
|
||||
onefrlg7
|
||||
fivescbjxbdnvslqqsone5bdbvskpmksqmmfsncsmd
|
||||
two83fourthreefourseventhree
|
||||
dglrmbtkfltwofive8ninelzmrxvxoneeight
|
||||
8nine6sixsixtwo7
|
||||
sevennine4lbsevenkdnrhpltn
|
||||
h3fiveeight4cplrnd
|
||||
vhsgjbqm3ninedfhfsb
|
||||
93nine7jvjmlzgcztrqlxtwo
|
||||
zhhhdddbbgcssvfzdhmpone5fivefournine
|
||||
l9fourvjfbqpdslkmvxsdrnsgcvzpjxm
|
||||
kxlseven5two
|
||||
rbtwonegsdgvsjtpnnkone7mdz
|
||||
phffknvthree2threeqgvfqxgnine7
|
||||
2lgglnmthreeseven27three81
|
||||
lrgkrxx2
|
||||
seventwokxvzkvq6eightthree
|
||||
5fiveseven
|
||||
fstwonersngdlngx28nine
|
||||
49oneninesix8four2q
|
||||
hfvhzvmjgbfcbsevenrmhjhzkc3
|
||||
six84
|
||||
8eight2gzblldzvkjfive
|
||||
6fz3eightzmsqb4qsbbsnthm
|
||||
fcglpc2one51
|
||||
sevendqghclrpxt7pzone48two
|
||||
three5one
|
||||
5sevenfivebbzkjlcnxseven8fourmzqlxxgjvc
|
||||
xgg8one6782
|
||||
gggtljnnsix3lkhdqzzpdtdkmjtgjddkpgx4five
|
||||
qrmsfc13onevnhlbgs
|
||||
nrtwonethreerbbqffzh62
|
||||
5eight81gcdbrx3rlk
|
||||
mtdtxcmm2bgmqhgqrtxsn8
|
||||
onercx2
|
||||
9sixoneqgr4
|
||||
xmoneightfour2
|
||||
six85foursixninetwo
|
||||
ninetwo8four8six
|
||||
qchclfzq47
|
||||
khrll3two21
|
||||
seveneightnine8868four
|
||||
3rmbmtbxjp12seven
|
||||
3tsxgvqxmzvxbdvxtgrvdbzqbh
|
||||
eight7fourjtxx
|
||||
fmb4one7threekbxeightwoj
|
||||
vcsevensixseven577
|
||||
2dkhlrrtrnbgzrmxm5fiveclhgn1eight
|
||||
1sevenlmrbnfour17seven
|
||||
three5jtbvkseightoneseven4df
|
||||
fourrgqxplbpbxtsgkm7
|
||||
fourqdfxchlc371sc2
|
||||
fqxlmeighttwo1seven
|
||||
zvvlftlhfthreesix6three46qkstxvdt
|
||||
m74pjgccfour1four
|
||||
plphq933eighteight
|
||||
cdbqlhbhj3eight
|
||||
4onevgdkxhz799five9fbljhpqmvk
|
||||
two6qzgphxl
|
||||
two1eight
|
||||
onekxxghlonerqqlrs83threehvvdhsxmfour
|
||||
npmsvvrdl2673
|
||||
fivejthseightsixtwo9vgrvjzbzsrxjv
|
||||
eight2gqfive7mzjzpxqcvheightjfx
|
||||
1bxckdpt
|
||||
dngoneightbtdptfn85
|
||||
fourtwovfzgmxjseven935
|
||||
8onesix2drgjnlrxbtdlmlznine5
|
||||
five4mmpmqlttsx56ljdzldntdvthree
|
||||
1nxxgtwothree22twothreenine
|
||||
38eightsevennxctjfstp
|
||||
8fourvhnps3onellstpnztn6kvjccmv
|
||||
1bseven93eightfour
|
||||
5nphkdbhxqb2pqxtkvhxq
|
||||
nvvx6fourjgkdsczjv
|
||||
fourxrmq78
|
||||
8tjmnvthree3ninetwo2five
|
||||
p7cvtwoneq
|
||||
7thbggjbznrsixonethreeninej
|
||||
xdgm1crqfnklk
|
||||
onehmqqgh4ninenthjonegfjmvtfgd
|
||||
sevenbsqtlk9
|
||||
8seven9two9hdz29
|
||||
fbcjhzdgzdg8jgjvcrmgbcrsixnine
|
||||
3bssqrj44onedqxvhkfive1
|
||||
tmmxtz5dtxbbcjlfivesix
|
||||
pvfqzksgrs4khmlvtwoeightlsx
|
||||
psbttsmnpninefour42fivegsixfive
|
||||
sevenfiveqscr7dfxpninesix5
|
||||
xmsjddzfxftsjfq6four6eight6three
|
||||
seven42
|
||||
eighteight1nineeight9
|
||||
8c
|
||||
pmqljjjzvx5znxqnsfour8
|
||||
78zlpxnvsqpgmgmk
|
||||
four7fsgttnrgnlslr
|
||||
fourtwo3jg2
|
||||
qlz18three5lpxfjvnfppqjxh
|
||||
4fiveonetthree4eight
|
||||
7lzffxkxnzjrtr
|
||||
three7nineone46ksnshqgdpt
|
||||
8dntxkkkgdxggvhxh2onefour5gqzsqkm
|
||||
tjsixonedbklrxxk2twonxdpjzb8
|
||||
mfglbrjrq93
|
||||
seven37xhsrxrvcgninexbmdrzxthreeonethree
|
||||
fivegznvfztszqlhtrsslsmqq43212
|
||||
tdthjjjbkeighteightsevenpcbmpfq2
|
||||
five1eightq
|
||||
three13three4vrsrrtp
|
||||
cgztjgqgdths2
|
||||
dhxztfvlonetwokszrv8prdpm2
|
||||
dfkcklchjj8twonine52ppvndfcnf6
|
||||
three7ninenkxfourfive
|
||||
93sixlqxctdhmvssixone
|
||||
oneqbvfrvteightnineninefivethree9
|
||||
jskrtmvsrqnpvcgsmxbonecmlrjpdpc4three
|
||||
crpcfour54xxgzz
|
||||
9fivefhdpcqsd
|
||||
fivenineclfctjninefbsh2
|
||||
fivexhrzbqpfxl8sixtwoeightllzplcpllk
|
||||
zxgl5qneightsevenone
|
||||
sixpdc17thxfive
|
||||
1twolftpzbmnzvdlkvlsevenhdvgfrjhmthreethreeddkdvht
|
||||
67twotwo71
|
||||
oneeightcgnhtdxpfnsevenoneeight13
|
||||
eightthreervd5tnj17
|
||||
ssrsmhxrsixeight3gbqggcvfqg29
|
||||
6fivecvcdxnxhxxtlzthree
|
||||
fournrrsix595
|
||||
p2qchlvplzdvchkbdzzbnsix7ninefour
|
||||
fourthreefourtzvlrnr9m94seven
|
||||
4jxzkrfourvtjpsnrllkjcczmmqnsj4q1two
|
||||
4627qlpscgpjcnine539
|
||||
two6nineeight
|
||||
63five66fivethree1
|
||||
skndgzsbsntwoone1
|
||||
threerzgdxgtthree2three
|
||||
953lsdgn59
|
||||
27bk
|
||||
sixmfmbslpjjsixsvnqrvtxznffive5
|
||||
2ninenlgpggxm42six234
|
||||
fdzfvkjnchsevenfivethreetscllgjvrtqckfnmz3cszmt4
|
||||
7ninetlzsxjsl2nine3
|
||||
shsvptqngsevencjjthvfm9six5four
|
||||
7lsrq36threevzfjc62
|
||||
two59threedxmfourjfschvqvnine
|
||||
khfqjmksxhbvs8sevenhzrmjtkgm
|
||||
nine2stgflmsm8fkthhhjzlszdnmkmqpnjxrfc4
|
||||
twofourthree244nine
|
||||
eightvt978
|
||||
fivefiveninesixnine6513
|
||||
2lbtz19fourtshqsvblhrkhxbpfour
|
||||
ptt7bntxhdvl
|
||||
mskflsslvdlmndmmqmfourtczqlssnineseven5xxxkfvzd
|
||||
l329eightsevenfourfivethree
|
||||
rmlksxsixspp9fourhlcg
|
||||
8five9q
|
||||
hqoneightsix19nine6xmjbtgjzgrhmlrxq
|
||||
six38
|
||||
9eight2
|
||||
3sixbzhgfcg57sixsixjtqmknd
|
||||
9fchn58
|
||||
vrpftbnvonefour6
|
||||
vqgdtrvhnnxxsevenseven9eight
|
||||
56vnine5rdpsnlqcbq7three
|
||||
vncrjds2cmrg7
|
||||
213sixfivesix
|
||||
tzclpzdsthree4sxgjvrzcrzcndnfour
|
||||
4sixseven1three7
|
||||
8fbrggzmtqn8
|
||||
four79p
|
||||
twonineqonemfour3dq
|
||||
5fdgpmrghtksn5onesixtwo
|
||||
xseightwongqqsxtwo8jslclldvnb
|
||||
nine1one
|
||||
9gxjrfourvhqzcxdhrtpxgtwonine
|
||||
eighthfhtnvchtc7fjkrxsmhtm7rbk
|
||||
thqxcfjbksix32xqrgqsqtx
|
||||
6qjqql
|
||||
jgcreight7eight
|
||||
6onesix4threeseven
|
||||
5vcv1twoeight7
|
||||
fivesthreebvjntwo9jdxghmxvl
|
||||
632msc9threenineqfone
|
||||
dqxfourkb4eight
|
||||
6stsp3nine
|
||||
566sevenpdmg
|
||||
xprjdn55
|
||||
9mjtcmhjb
|
||||
twoninelkjznqztbc3twolnhjhdbfxmhfr
|
||||
twotczpxn6qlcfdlpnq
|
||||
4ninefive
|
||||
1rs44three2gzczjdgq7ssmtgjbgbb
|
||||
ggmzqbkgsix4five23bftjlmbfbd
|
||||
threehfcscmmlqvcjtpthree98
|
||||
7sixsixone4
|
||||
2fivefvrr9four4three
|
||||
1zt1seven
|
||||
9hsbthqvhhsnineone23tslqccg
|
||||
sixbqvd3
|
||||
22148four3
|
||||
ninejlpbtnfive41rtzqjgfmcbncrrlnn
|
||||
9sixfour
|
||||
qnhfivetwofjtqtlxd7lmrlfctq864
|
||||
69dqrzhlqssgcsxtz54cpmjvrkcfiveseven
|
||||
fiveqpv85frkmpgxgc
|
||||
xxqsscldeightone9ngqtkf1nine
|
||||
5sixgxbnnjsvhf5dgxgone7
|
||||
sixsevensqghlvkfxnfour7
|
||||
8gmgvjbfivesevennine
|
||||
qj796fourone9
|
||||
rmpfsppvzdtwo4threetwotwo9
|
||||
dqvtrhm3nhtrxxccmfiveonedfzfvcghr
|
||||
4threejxkhnxcxjoneightp
|
||||
sevenhkpfgdgsgnvseven3m
|
||||
qhrvjcnfdbqchrsvchcxfourbkhhq9six1eight
|
||||
29pqnd
|
||||
1oneonethree627
|
||||
5977rcr2threeeight1
|
||||
fournthpqbztrhnine64
|
||||
fjnjpgqxr86five4sixxhrtvbp2two
|
||||
7sdnvlb5two
|
||||
58vffgzcgx4nineoneeight3
|
||||
h1sjgqbhndbz1oneqgncmhnleightwos
|
||||
gjms21
|
||||
onetwodphfznine51
|
||||
gxpl3fourzfz3
|
||||
five46
|
||||
mqsixccffmc9gqk1
|
||||
5kvxpqrrpeightthree
|
||||
threefoursevenfive2dhtbrxlzzl
|
||||
shhczssbltllsmntntlqfqgnnl98rm
|
||||
5oneeight3vkqtwo29
|
||||
bv69fouronefourone6
|
||||
eight6five966
|
||||
4xnrtztgfgcmnmnsevensix
|
||||
gmsvtnjd1sevennine4xxhqfbrjjqbglqjngttc
|
||||
mdnxhhteightfive5onenineninegqjbqmfd
|
||||
xonefourtwo4
|
||||
onesix61
|
||||
sjmnjhkj2892eightnine9
|
||||
nzseven39
|
||||
99nnjjzdrfsnjhthree1sevenfive
|
||||
6xmggtbnblnbxdpkzblnvcvjqmhvntwoeightseven
|
||||
76five6six
|
||||
chdfjrlfhdzeight778
|
||||
xrvrck9five1hrvpfvkdcb7eightnine
|
||||
foureighttq5sgdfourl2
|
||||
4rnbxrhhboneonefournine
|
||||
5four3
|
||||
1b97eight
|
||||
hlcjghlhsf32tgknm565knxqr
|
||||
onecqgbgdcmlb2sixsix6nine
|
||||
kxdkz3
|
||||
seven5xvhrxdm
|
||||
xblqbgkqgsixvgrthreezxnzhknklxhbmgl4
|
||||
fvnkc7threethreeseven
|
||||
bmbqxv24jhdg
|
||||
97rfphlxvtx
|
||||
4pgblonelone
|
||||
ptdpllrddeight3
|
||||
9knpjzskrfd4
|
||||
twomjqdtbbvmj4shvsqrone3
|
||||
9zzh3pjsf6mhxlhm9glglfztjm
|
||||
cfconeight47fivetdsmndgvsmbqjvszb
|
||||
21vbqjz374
|
||||
sixeightqgfdjbhfd4oneeightone
|
||||
tbccqdpz78srmcdx4six2
|
||||
643gqtvhkljxt
|
||||
klfjf4qms
|
||||
zrnhkhqzpczzfqsgsrtxklpbtp72
|
||||
1cnqfltrmhphg832three
|
||||
twoseven5
|
||||
mxkmxlcgsixklclrkfr8638fourlrqpzgjq
|
||||
nkbfkh452pthree
|
||||
zvcktvd2485four88
|
||||
rfxj4
|
||||
three6jnr7
|
||||
two45rldjnmxkjphtwo7v
|
||||
fivelncjffdnkzqrshvthreeh3p
|
||||
ninejgrbmhrbqldeightnine6nine8one
|
||||
96lvpt2djrkc5
|
||||
7seveneightthcxgthreeseven5hpfddktpj
|
||||
6bvn
|
||||
sixbjxtphstzgspnmkcvc952one
|
||||
gmmslrndvltlthree394sevenoneightl
|
||||
threenine7onefourtwojxhzvqlseveneight
|
||||
5eightsix4txcczzmg
|
||||
84seven
|
||||
skjpkhxggsvjbprhllgjhninetwo6
|
||||
72bdpzccvone4zbdzlllnnonernlfvdpq
|
||||
bvrtmzmtwonine29
|
||||
mrlvmdnlxb2814five5fjxzlhpn
|
||||
lmrpf82rksix611
|
||||
tvq18oneqnmmzvtclnthree
|
||||
jrbjc1zbbpqbrddt26seven1
|
||||
lxfivenmdtnhdmf98ptpxsgmgrxkmmznlk
|
||||
zbmvchmxsevenddddthree2dxlddjp4
|
||||
three3onejg2fqgtjmpcgeighteight
|
||||
three2two9seightfjqtwo
|
||||
ninefive8sevenvnssix
|
||||
3cnbxxtgmf5
|
||||
kpmjcsfrjfgzhmbpnqmlvrhbhqs8
|
||||
3vvcone64
|
||||
fvqksdsixthreexbfivetwo3
|
||||
sevenseven5
|
||||
63twoone8vhbcpmmlfive1
|
||||
4ctwo17eightsixkpvlgpj1
|
||||
rsgsnone1
|
||||
kbvxonemcqfive3eightone
|
||||
ninenineone45threepvsmrtonejxmbnd
|
||||
37fklnjkslqk9th9
|
||||
fiveoneq8rcgdxtwo8jfkxq6
|
||||
rgd7
|
||||
7rgkdpvp7qrb
|
||||
7crtxfmslxxtcxsv
|
||||
mqdnltb23fiveqcdqtonethree
|
||||
8seven7
|
||||
8cqhqlhndqjznqhdbld2nspnxbj99tqqhp
|
||||
onelqn7
|
||||
bvbjfour7
|
||||
ldqzhvhrbgsrrkh5j
|
||||
kjsjxdcqgjztldjvxxgr9twoxfknxrrrphkdzdl8
|
||||
rvscnztblp56ljqtwompclcf
|
||||
2dbtdgsevenhzctckvkvxvjljz
|
||||
tvmhhxbbxvvsnlnineqsltjd92one
|
||||
9twoqdmtvbxhpcthreeeight
|
||||
81dvnkd87xbct
|
||||
6mnxqnndcjfivefdckzmppfsevenmqvvvbnrgs
|
||||
lvl3qjk5
|
||||
3fivefive
|
||||
ktvsqzrf14eightmtnqbcktk5
|
||||
sevencdknznbxseventwo8rzggmvpbvlrs
|
||||
hkhhrdxlml1xzbshninejzqc
|
||||
eightseven23shkgzdgvvcxxfdv5
|
||||
14five1sevenxfmhtptwo3seven
|
||||
47one
|
||||
2three3
|
||||
f5dszzs2
|
||||
xmxffxkxpkninethree8x6seven
|
||||
glzoneighteightrnjqgjznjm9
|
||||
63fznqxdfqt8
|
||||
33nine
|
||||
4vrbmthreefbdzf
|
||||
fourninethreesixnine9fourlvbgqhjbqncnlbjbz
|
||||
two848dbvbninenine17
|
||||
pqzqgone1two
|
||||
eight7lmxbhcsix
|
||||
szr2fcvkljctlghhthree
|
||||
sk81pxqhhhhvnjvgzfiveseven
|
||||
cgqqkrz2vpdpzrthqssg7nineeight
|
||||
498eightfournine
|
||||
eight85onesvxnineone53
|
||||
ninevmchpkcg2
|
||||
six2shsvqfivefourtwo
|
||||
mdzckfvr72cv
|
||||
twotwo7onethreefourdjtgjg
|
||||
tworfclmm3
|
||||
5sfvnkrmrptsix7four6kzlmclm
|
||||
1onedkqgzbr89kphvc8
|
||||
5seventhree8eight9eight
|
||||
kvjpgjgrcmpdscbfthreethree4mjqjnnzceightwohh
|
||||
kjbmh1fdkdtznmsznvlconeznineseven
|
||||
1fmgpxhxpqznqscvbszhhcmglvtnzhbbjjbzg
|
||||
1mfqzkfnine5
|
||||
rrflkqslxztdlqxqkdnhqd7ps
|
||||
39123thhsmscbpxr
|
||||
8vnine4jgqrvqtshg3jhhdnbsrxneight4
|
||||
xkqgnfour87
|
||||
lsbnjqtzqz7ninenineone73lmkbnkhs
|
||||
9fiveqqgqblfivehttxk
|
||||
8twotwognd
|
||||
4xknbheightfour6358
|
||||
4cqtpfjpf72eight3
|
||||
ninemjpqpqg8foureightsevenfcvpnrnnpzhcgkm
|
||||
37twofivedsxrzbpchnkgxqx
|
||||
oneone57one2k92
|
||||
mckoneight9threefour1onefourhdrcrvhqcmngkjnsthree
|
||||
945
|
||||
tmmtwo7
|
||||
57
|
||||
6twoxzbfftnr27
|
||||
threenine4bqpztsixfour
|
||||
84eight
|
||||
3jpbnjrqhqfnxckqkqdvls
|
||||
9gzzjzz
|
||||
374nine
|
||||
ninembxeight4sevent
|
||||
threecq3
|
||||
cvn6cvqmpmfflkzphndjnggtktwosn
|
||||
pgz7four5nineeightsixqrnfkdkgh
|
||||
6one781vstwothreef
|
||||
one617fourthreefourxqxnpv
|
||||
8eightsqmkjkkf5xckcvd4lfnnfour
|
||||
seven23qhntfmg56onexkjxh
|
||||
f5s56rfltx282
|
||||
twosixninefive1tlzq
|
||||
threetdhghclfsksql5oneninetwoseven
|
||||
zbqzxmpb9pxlrthree
|
||||
r4gxdzjnvzfonejnpmfcpgvxjjvkh8
|
||||
five338threejkk67seven
|
||||
twolntxcnzvfr55sixtwofivesevennine
|
||||
xhlppbqfr71brvppsixthreefddlgpfslqmdv
|
||||
kxsklgonefjfpkd4threefive9six4
|
||||
6srphqmtdoneh3glthreefour8
|
||||
rjzdmj1cqvxnx1nvcvbfctft9
|
||||
3fqjdgbpggthreesix53
|
||||
9fivesndgmkvckblktzkshglqgdl4ztwoseven
|
||||
qqrxkqhnzb23two34nine9
|
||||
8hrmffgstqpsixeightx1six
|
||||
jngcsjnrhn2zsvcjmjg
|
||||
9zfdmhzxdnfour272dcrqgk
|
||||
lbjbrfhjxhxjphzxsjsix4
|
||||
fourthree2seven1two
|
||||
twosix87
|
||||
vrlqqkctddggcvcjcpk6hxbqvbxmtsix
|
||||
mrcgbpc6dthzqmmthreefour6two
|
||||
r2zntjxgpfqfmqh
|
||||
fourseven3
|
||||
6nfnsgchjdffttmgfnbvlxzoneseven8
|
||||
8sevenqqfiveseven5twojvgk
|
||||
4rmtkvml4
|
||||
bprnine85
|
||||
sevenmfpcvlblcnine485fourseven4
|
||||
sevenseventhree68fivelhqgjqvcdqkvds
|
||||
3fourxsgghqnvtssnvfs7nine7
|
||||
1fiveone5hpfdgvxb
|
||||
eight2eight42twotwoonenine
|
||||
lpdeightxcgpxkkeighthtjpsninemjlxrxtg31
|
||||
4smqpjzsixonethree
|
||||
mr6csbmgrdrjj3onelqd4four1
|
||||
5sixvbscchd3
|
||||
384sps
|
||||
4qzgsvmfx4ninevcclvcfrfp6tckcpvj5s
|
||||
8l5glclltgcjgbhcg6
|
||||
3ldtdmjc6threeone
|
||||
hsrtzl521nine5qqrtpdsp
|
||||
z4v8threejdsmbfjpbj
|
||||
9sixln26eightwovmh
|
||||
848
|
||||
kndxtqpfrqxdxtfnqrqznpgvp9ninerlzcdvdtwo84
|
||||
kmqs84775seven
|
||||
5threefourzkg
|
||||
43five8cq2kprvdqrmxr1
|
||||
three4ttjqdh
|
||||
48nine7sixfive
|
||||
22x
|
||||
sixrgtwo3rnbzkrztkdkg
|
||||
4t
|
||||
29bjpskmxneightppvthree
|
||||
zmlzxvtlkt4seveneightbxseven
|
||||
5two5eightnpszzmbkncnstx4
|
||||
9vk98sevenhznkxmlrlk7vdbqgvfjdk
|
||||
1sixb8sjkvdhfld
|
||||
one42eight4mrsdnpfjpvdtq
|
||||
76fourntsrfllxkdfqvm6seven
|
||||
skqndhr3nm4776
|
||||
4xpmfxmvj633eight
|
||||
83ninecmpt
|
||||
fourdthree9
|
||||
9eightjqnnmthcrseven
|
||||
7threekgtf1
|
||||
xscj7threenmhsixseven5s3
|
||||
cqlzjt41
|
||||
855threemlmmqkgtfk
|
||||
ninefzmvjjtvbmgf8nineninetwonegcn
|
||||
ccpkzcldfourkdtfkjxvfb9fourhbtwonsoneightnl
|
||||
pkeightwo5seven88rdnzzsdkbjeight9
|
||||
threen2fjsfivesix26nine
|
||||
nine4rz8nine7bglpcmkqfzpseven
|
||||
eight94six8dpgrv
|
||||
twodfctf278
|
||||
fltqtmdkgjsvf72three
|
||||
llrtzsixsix4fivetwosixone
|
||||
qjhtjqjhgkjkzlpxxclsrdnzk1gbqt
|
||||
sixeight1sixtwo
|
||||
one5413nkmqjtlbdkz22
|
||||
bhtwoneonemzpzkqeighttwooneqkmcmsbq4
|
||||
sevensix3three2sixprcqcvm
|
||||
25tjffdrtwohfqlkhzxlhb
|
||||
97gcgqgjnpsthfjfdv636jsxq
|
||||
zggjmjone1297six8drzs
|
||||
jbpvnineeightntkkshbjvr3nshnqzdlkjmkfive
|
||||
5four2gkkbxmpthreefour6
|
||||
5two15sixfivetzpg
|
||||
one4fouronemfpvnqseven
|
||||
9fnlbljdnzzfournine78
|
||||
djfljccrtvvqktzzvk61onesd
|
||||
7twohbkeight
|
||||
seven1eighttwothreet
|
||||
4mdcljknhpqgxffqpj5
|
||||
nine9jlsmfgdgntwothreeeight4
|
||||
136nh
|
||||
635ninejghg5
|
||||
cmone7fdlk9lfivemzvnhkcsp
|
||||
8eightnlndm
|
||||
6fourpb892
|
||||
fiveseventwosixfourthree7
|
||||
5fm
|
||||
ninegchdnrf63431
|
||||
24sgnflnsixninenine8
|
||||
snm9
|
||||
3fntd721dhhkrqqxsfpstsvzpgonetkhcr
|
||||
jlzfbml61vdmgb7one
|
||||
266517
|
||||
7fivetwo2vhchmg678nine
|
||||
cgrp3vzn5ninetwofour
|
||||
666ninefour
|
||||
9s
|
||||
svpcnlktpxtvk42jhsvvdpftxpsk
|
||||
2qznfzvbdr
|
||||
foneb7eightfivehlbjjknninethree
|
||||
kfp6
|
||||
l34pxxhxtd7d
|
||||
rsbcrtwo27twocqlmeight
|
||||
jkzgvqgpjfdqvmjfx2flnvjmgllxghhrbjjkfour2
|
||||
45sevengdnf59twofive
|
||||
6fivespvkblrxvkcgdxktl
|
||||
three9dvrssvl5eight4ftsix
|
||||
seven56gdmlbfbjsl894sevencmc
|
||||
814
|
||||
1one4
|
||||
onenine5fivekcrf1gvvfhlncsv
|
||||
2ctvq9djzddfxcrj
|
||||
ntdlcqgsixvmfvlc4fourvlhtvvqmnmkrm
|
||||
9nineseven1seven
|
||||
lcvzbnfourksvjqvmv47one5
|
||||
nine4blvlvlpkl6
|
||||
sixnqxrhnztzvpmbzmxjm19five
|
||||
18jtzhk
|
||||
rzrhv8four
|
||||
2npghxvjonebchsprfhsjznrxvxnine
|
||||
eightngsevencrjkxbhpgtxlzhgb46sevenqhqmlfx
|
||||
threesffl9fivelgmndjfvseven92
|
||||
seven85
|
||||
87six9vnshclz
|
||||
threetwo7915three
|
||||
one2vkbp6rhqbxvcl7
|
||||
bsbr1five91
|
||||
qd3mnine
|
||||
jjvhltxtdh5nineone6
|
||||
mbxlnj7bbhnxonejtmtqjfrzqgtrhkeightnine
|
||||
fourfourqrxdtfive2smnqp
|
||||
7tvjrszvrhdl5five
|
||||
four15tvmpvxpvdjnine
|
||||
sevenvv5tworpvdlseven3dlqvgblqtwo
|
||||
nkckggninegnlqlnv25threexlhlbzvzk
|
||||
3vngmhprjseventhreeeightnine
|
||||
nvqtpzsszrdvttfivenine56oneseven8
|
||||
146
|
||||
fxfbone59
|
||||
f32dhffctkxp6rcngvtfq
|
||||
sixthreefsixjhckmjqfive495
|
||||
42four
|
||||
65nine984
|
||||
5fthreeone9twoqqsfvzmp
|
||||
ttwonefive4
|
||||
one6gfxseightxqcq6
|
||||
3sixnrjtwormrncmhxeight
|
||||
jhdxnmsgsdsevensqsslbsndpdmznmldbgeight3tcvjjv4
|
||||
5sixtvpckxzcjzbmrzk9
|
||||
pmdmnfgkb3six8xsmstsmxgmm
|
||||
53onetvlgbglq4zbqpdgsskzdsksd6
|
||||
kzjcllvz6skphkfdxfiveqrbhmk
|
||||
75qqjdgxlmfthreevzbfjdlxkfqqq
|
||||
seveneightjntpjthzptwo2two
|
||||
2five4fvrfxxnine4qzkkfkmq
|
||||
2xlvcltn7
|
||||
fnmggtj2rqxzh7three
|
||||
rzpjkgtml1
|
||||
2oneseven4one7xps6
|
||||
rljfhfrhmzkjxktnszbkpfspxdkqneight2
|
||||
pzgnine49six2
|
||||
plxsqeight2
|
||||
eight2sevenseveneight8rfcrsdlxb
|
||||
sevenclpqqfxgjnmtwo9
|
||||
9sevenrqsixone8eightrxqgfsbjh
|
||||
kqtkstrxhtfzbllhl4lqvqkcbr
|
||||
hfplfpbltczflpp7nfive8
|
||||
ninenvqfrvtwo6onel
|
||||
threev65
|
||||
frhn18six9sixninefourrsqzgd
|
||||
mcxckfg5vpkbs89gbninexjzvlj
|
||||
fivesixdx28
|
||||
7ppbqv
|
||||
hs9twopcvpgtjnrsvksskpc8
|
||||
9mlpckzj2twothreefive
|
||||
rkrgdclkninetwo6eighttwodc25
|
||||
tfivefourtwohkhhgsqlj1dtdcxmxkf
|
||||
1four6five
|
||||
fgbvmvxvtsix2twonine2sixfour
|
||||
foureight66
|
||||
s6fourcv
|
||||
mxl358sixfive8six8
|
||||
ztbtwo73sixvxsix9four
|
||||
eight7qmdlcxfive5
|
||||
phgfivekrjxdmnzsqsix9
|
||||
1mfqsevenhz
|
||||
rjhcdgzngtc155bqlttbsxklpknvlmk
|
||||
qjkdqlrrs6two
|
||||
sxlmqzxdpxdnj9fivetwo9seven5
|
||||
2qtdblb2
|
||||
8qgdzrsixtwo598oneightp
|
||||
1shdb944
|
||||
vrlpronek2
|
||||
jm52
|
||||
8eightfourseven11mvtrmtkr2bmp
|
||||
mnvnjxrgmrxhztwo2ssrdpqk
|
||||
ztfive435three6threetwo
|
||||
tnrrdnbgnbhzljdxhxxfrqkcpeight8js3
|
||||
foursix6zcsrztvgjxmp
|
||||
five7fourgnnkspxcmczcbgsbdf77five
|
||||
fgbrzkmvgrdbqjqndpfive81onetwomtzlfb
|
||||
2qbsfd1two3ninetwo2
|
||||
8tdjxvfpvdvone33three
|
||||
lpchnmln56twofive8tfour
|
||||
cfkfbhppjf6fourdkfxsvdtbcjspzlseven8
|
||||
5fivestgkzsevenonedkhhrkthree
|
||||
37nine8six8onefhvvbkmgdfgtv
|
||||
26hzz
|
||||
5glvnsztmnfjmkjseventdm4five
|
||||
pvnnqrqvftrbcvnnthreenine5
|
||||
mgscxxlp3eight
|
||||
53eighteight
|
||||
two1oneqlcdkbddfour
|
||||
jbll3
|
||||
8threeseven5tmtrgdhqxd
|
||||
8twonine6s1
|
||||
91seven5pmqrjlhqrtzs
|
||||
jj3sevensix4482
|
||||
jeightwo7lk4three
|
||||
zchchxmsctzffivefournine9sqhqkgfour
|
||||
72xct1
|
||||
vnsxvsqkhpfvgdseven23gzcmltzgone
|
||||
xzjqhcvsix1fivecjtxnfivekmvjdc
|
||||
zdfourgjlhtwo24d5klkpdgqbz
|
||||
7sdzzdbrxbtonerjcmknnql4dfzqccvqt
|
||||
tncqzxjq9twofiveqkxdrxrpj894six
|
||||
dddmkctrzlpfmsszeight8zvbpmpkg
|
||||
three23ckjhgjc
|
||||
375jzdhnfcfr19mhsbnplqh
|
||||
vpbbjlzone5sevenseven33four
|
||||
onejzfsevenrbskjq1four
|
||||
seven13one
|
||||
vcnkfgv979one6zln
|
||||
rqlxzzbmjb4lmbthreektqsdcfzbmdsfivethreenrxdlkqt
|
||||
qkoneight8
|
||||
5rfourfivenine94fdprsix
|
||||
onexonelzdh2lcbqpzq6
|
||||
six6v
|
||||
7gtgxqnnine
|
||||
tsljzhntwo3fourpbjncgmvf3fflvjxp
|
||||
vfkdone9fivecftvmjdk
|
||||
xc5three6eight94
|
||||
18363one7
|
||||
8fiveksshdlfmzhljhcmjrn7kpv5j
|
||||
xbhmxfhbjnjzmninethree7
|
||||
2933mkmdqjcl
|
||||
6ncvzqxfvgfive
|
||||
lnine5fivetb4qmfktnqjxs
|
||||
93187
|
||||
5mqninedzkfhbk
|
||||
two7eightntdbsix298four
|
||||
sixone3bspxqxggkmkrbcqrhfrxrlgjrlvfl96
|
||||
fourfivehqls3nine
|
||||
threedfklszn2threeqzhh7one
|
||||
mqmftzglone6kjpgglznhrjz89
|
||||
146cvkftscqsevensixnine
|
||||
nndhdgpd484hxdgjtfsdxxg9
|
||||
6mbzckbjphg
|
||||
eight6jbjtnld2mdjtd
|
||||
zjtzcqxb736five
|
||||
jlkdmone8
|
||||
gvjnjvmlfvcmvnfb8xcgjcmjqvz1bzcctvsixfzqjlhfkfk6
|
||||
vr6onejnjmrrldnsixsix5six
|
||||
ninembtmtkgbctlfive45cjzzrmgcscfbcgeight
|
||||
2mdvneightjzgffivefive4
|
||||
hmdnbxghxjxt4czshmsfzc
|
||||
61six18threehrcj
|
||||
six3five6eightkdfzhxcjkdhq3
|
||||
jrhqrqkpd4hsixdsbjdpscclmnnhknqq16
|
||||
jflzcxr3three
|
||||
threefourghvgsktkc93cmjmsgh8one6
|
||||
96fivesevenslklhsfmpz
|
||||
jgkpgfnnbq2pmspdfhsqxfour
|
||||
g4fourthreerpkdhjhlxlzvnineseven
|
||||
xkxhkphnkvpdnlncn86srxthree
|
||||
7sixsevenrfour
|
||||
5zr72qltsrbdsv
|
||||
ninervqzdfzqmf6five
|
||||
8jslpvs73
|
||||
ztvlxndlm5twohdhmtrdnhbzdrxb
|
||||
seven6nine4dpdpvrtrmqvql
|
||||
jfz1
|
||||
5nineeight5onefivecxtqbsdtbthreefour
|
||||
fourgeight6threeszgseventwo9
|
||||
sixfour3
|
||||
npl8
|
||||
tzjkffsvbjseven5rhmlxonezlx
|
||||
5dhtpfour
|
||||
twothreebxtfndvdnine1sixbb9
|
||||
five9nineqlzrmtgs5
|
||||
9v764nineeight
|
||||
five4eightlsix6
|
||||
3nineeight21
|
||||
foureight8btsc
|
||||
3xgdgtb2
|
||||
7threetwonexqk
|
||||
kkqsix48onefourhlsh8
|
||||
onekgtdzgfh2fivenine2onerb
|
||||
six4zgcnlhmltrxp5xphvtwo9
|
||||
eight7cdqggpssix
|
||||
niner9pzmrbqldkljmgphrrgmdjseven6
|
||||
439
|
||||
twofoursixrthree5bxppnhqtx
|
||||
bmpnt3
|
||||
fivepkzkzpghrptpksevenseven83two1
|
||||
9fiveone8one
|
||||
fiveseven3lqxghdlskbltrzrstwo
|
||||
fournine3ninephlghonetwoeightbvmdcconeightq
|
||||
three2pvklmzqjfh4sixonedrctlsfdfour
|
||||
three91spjlscscjcxbbpdhrg37
|
||||
57qqjpdfppsix1qxrh5mlmncf
|
||||
4nfone5eight
|
||||
eightqsix7one
|
||||
4jtvxfd38hnrmqkbnvfxpp
|
||||
qmfsspkfour1plmslcrsseventhree
|
||||
fzckcbfvxbpsix7nine
|
||||
fzrj4
|
||||
4threeqntnineqstzjftnine
|
||||
tkrh6sixdqflrvtmzmfiveseven9ktmtvprkxhfour
|
||||
nine4983four
|
||||
mpllmjrfgv66five3kvhthplrtwo7nkklb
|
||||
9ngvdjddqbz
|
||||
5twosix8lbhmzrg
|
||||
eightsbmcfgm76two4hhc6
|
||||
seventwosevenrpm6threeeightwodxs
|
||||
xkbseventwotwogmkxhpmhm42hvvbfchreight
|
||||
gcqeightwosix8xdlhrnnbkmsevenqdbrjghz
|
||||
458ninextfjxvgsq5fltdsk6
|
||||
rlgsflhxqd5bdbhclmrthree
|
||||
twothreemqqbzjn88blvqxbseven
|
||||
rqrrdrmlfsixfive6
|
||||
eight959tzxkgqjd
|
||||
txdszrn5eight3cqeight1brqr
|
||||
45122
|
||||
jvvslnkdk6qnfzjzvseight55eight
|
||||
4twoeightgrhhkrvtkrzpfive7seven
|
||||
three8gsmkpzsmfvf2
|
||||
fiveeight5sevenone9twoseven
|
||||
4seightjjdkdglspz3vg
|
||||
sevenssrzkspld2
|
||||
qnzcvcthrsgjlnzxmxlppjdpnine8seven7
|
||||
eight7xhvkrcr
|
||||
two2tdjdfbqtqxrs119r
|
||||
@@ -0,0 +1,112 @@
|
||||
use std::fs;
|
||||
|
||||
fn find_first(line: &str) -> (u32, usize)
|
||||
{
|
||||
let mut value = 0;
|
||||
|
||||
let mut lowest_index = usize::MAX;
|
||||
|
||||
let numbers = vec!["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
|
||||
let numbers_values = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||
|
||||
for i in 0..numbers.len()
|
||||
{
|
||||
let found_index = line.find(numbers[i]);
|
||||
let found_index_value = match found_index {
|
||||
None => continue,
|
||||
Some(found_index) => found_index
|
||||
};
|
||||
|
||||
if found_index_value <= lowest_index
|
||||
{
|
||||
value = numbers_values[i];
|
||||
lowest_index = found_index_value;
|
||||
}
|
||||
}
|
||||
|
||||
return (value, lowest_index);
|
||||
}
|
||||
|
||||
fn find_last(line: &str) -> (u32, usize)
|
||||
{
|
||||
let mut value = 0;
|
||||
|
||||
let mut lowest_index = usize::MIN;
|
||||
|
||||
let numbers = vec!["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
|
||||
let numbers_values = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||
|
||||
for i in 0..numbers.len()
|
||||
{
|
||||
let found_index = line.rfind(numbers[i]);
|
||||
let found_index_value = match found_index {
|
||||
None => continue,
|
||||
Some(found_index) => found_index
|
||||
};
|
||||
|
||||
if found_index_value >= lowest_index
|
||||
{
|
||||
value = numbers_values[i];
|
||||
lowest_index = found_index_value;
|
||||
}
|
||||
}
|
||||
|
||||
return (value, lowest_index);
|
||||
}
|
||||
|
||||
fn main()
|
||||
{
|
||||
let file_path: &str = "./input.text";
|
||||
|
||||
let contents = fs::read_to_string(file_path)
|
||||
.unwrap();
|
||||
|
||||
let mut sum:i32 = 0;
|
||||
|
||||
for line in contents.lines()
|
||||
{
|
||||
println!("{line}");
|
||||
|
||||
let mut first: u32 = 10;
|
||||
let mut first_index: usize = usize::MAX;
|
||||
let mut last: u32 = 0;
|
||||
let mut last_index: usize = usize::MIN;
|
||||
|
||||
let mut index: usize = 0;
|
||||
for character in line.chars()
|
||||
{
|
||||
if character.is_ascii_digit()
|
||||
{
|
||||
let value = character.to_digit(10).unwrap();
|
||||
if first == 10
|
||||
{
|
||||
first = value;
|
||||
first_index = index;
|
||||
}
|
||||
last = value;
|
||||
last_index = index;
|
||||
}
|
||||
index += 1;
|
||||
}
|
||||
|
||||
let (l_value, l_index) = find_last(line);
|
||||
if l_index > last_index
|
||||
{
|
||||
last = l_value;
|
||||
}
|
||||
let (f_value, f_index) = find_first(line);
|
||||
if f_index < first_index
|
||||
{
|
||||
first = f_value;
|
||||
}
|
||||
|
||||
let result = first.to_string() + &last.to_string();
|
||||
|
||||
println!("Sum of line {result}.");
|
||||
|
||||
sum += result.parse::<i32>().unwrap();
|
||||
|
||||
}
|
||||
|
||||
println!("Sum: {sum}");
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
two1nine
|
||||
eightwothree
|
||||
abcone2threexyz
|
||||
xtwone3four
|
||||
4nineeightseven2
|
||||
zoneight234
|
||||
7pqrstsixteen
|
||||
@@ -0,0 +1,140 @@
|
||||
F---7-FJ.7--FJ7.-.7-|7F.|7FJ77F7J-|--.FLF|.F-7-F7.F.J77|--|7--|7|-J-F--7-F7.F7-F7F7F-|-|-F777L7|-.FLF|-77F7-FJF|JF--F.77J-L7-FF--7.FFF7FF7.7
|
||||
|J.F|7F|F7J.J-L-|-|.L7F7JF7-7-LJ|LJ.F7.L|.F|F7FJ7.F7.|F|L7.L7L|-F-|7|L|JFF.F||F777L|-77L-|JF7FJJJLF7LL7|.L77|L7LLLJ.|..LLL7|L7-.-JFFLL-7L-FF
|
||||
F7L7JLLJL-7FL7|F7-J7.-J.7L7J|.|-JF|FLFF7L-JLL|-F7-F|77|.|L7FJ7JJFJL7JJJFF.FJ||||JFF|LL7F-JF|.LJ7F.|F7F|J7LLL-7||||LFFFF77|-L7LL7F7-JL7|FF7L|
|
||||
JFL7FJ7.--JJ7L||.LF|7JJFLFLF7.|.LFF7-FJ|-J-77|-F.|J|LLFF-|-7JL7-J7L|JLF7-7F7|LJL-7|L7F7J-FJ|F|7|77|J-F..FJL.|F77-7F|-FJ|J7J.--7.7J.7-|-||LF|
|
||||
.|LLFJLF--J.FL|-J.F77F-77.L|L7F77F7.F|FJ7.FJ7JF7F7|F-J..7JL|..FF---|J-F|JF|||F--7|-FL7.J-J.|LFFJ-7.L7J|.7-|LJJF7L77LL||.FL--JJ|-L-F|7F-JJ|.|
|
||||
FL77J|LJFJFF7JJ|J7LJ.|.LF.LL7|||7||-FJL---7.LFJL7J7|FLF7J|F77-J|JJFJ-F-7FFJLJL-7LJ7LLLJ7JLL-7||J|||L-7|---L.FFLLFF---|F--J.|.|L.||FJ7.LLL|-J
|
||||
|L-J-JJ-F-F-J7F--7.F7F7F7FF-JLJ|FJ|JL7F-7FJ7-L7FJF-7F7||7FFF7JL7.-JLF|FJFJF7F7FJFFL-|.L-7J|FJFJ-JJ7.L|7.|7J-|J.||||LFLJ-F|F7-7|FF-L7|7-.|L7|
|
||||
7|LF|JLL|.F.F-FJF-7|||LJL7L-7F-JL7L7FJL7LJF77F|||L7||||L-7F||.7F7FLFFJL-JFJLJLJ-F|J.F-FL7.LJ||.|L.F7|.F7.7|FJ||-J|J-J7.7-7---|-LJF|7F|-77-L-
|
||||
|J.7|LF7JF|F7|L.L7|||L7F-J-F||F7FJFJ|F-JF7||F7||-F|||||F-JFJ|7J|L|F-L-7F7L-7F777.|JF77J-F7FFF777LFFF-F-7-7--LJL|-L|.FF-F.JL|.LFJ-77-F|7F77FJ
|
||||
JJ--JLJL-J|J.FLF-J|||L||F77FJ||||FJFJ|F7|||LJLJ|JFJ||||L77L7|F--7F7-F7LJ|F7|||F7F7.L|.F-JL7FJL7F---7JL7L7F7.L|F--7L-L7.J-.-7JJ|L-7L.|JFJLJF|
|
||||
|JFLJF|-77F-7.FL-7LJL-J|||FJFJ|||L7|FJ|LJ|L---7L7|FJ|LJFJ7FJLJF-J||.||F-J|LJ|LJLJ|7-J7L-7FJL7FJ|F--J--L7|||7FFF-FJ|JLL|FLFLJ.-L7FLL-|L|.7.FF
|
||||
L-77LJJ|FJ|7J.--LL----7|||L7|FJ||FJ||FJF-JF7|FJFJ|L7L7FJF7|F7FJ-FJL-J||F7L-7L7F--J.7|F-7||F7||FJL7L|-F-JLJL-7-|FJLJ77.|7.L7JF|L|7.|---|F--.F
|
||||
7JFF7||FJJJJL7J7.F-7F-JLJL-JLJFJ||7|LJFJF7|L7L7L7L7|-|L7|LJ|LJJ.L---7|LJL7FJ|||F-77LLL7||LJLJLJF-J-|LL---7F-J|||..JJF-.F7.F-7|L|7F77JFJ-L|FJ
|
||||
|-|LLJF-7LJ|LL|--L7|L7F--7F--7L-JL7L7FJFJ||FJF|FJFJ|FJFJL-7L-7F-7LF7|L7F7|L7FJ||FJF7FFJLJF-----JF-7F7F-7FJL--777-7L-|JF|77LLLL7JFJ|F-JJ.L|7|
|
||||
77LJ7F--7J7L7L|.F-J|FJ|F-J|F-JF-7FJFJL7|FJ|L7FJL-JFJ|FJF7|L7FJL7|F|||FJ|LJFJL7||L7|L7L--7L7F-7F7|FJ||L7||F---JL|-L7J.-77J-F.||JF|.L--J.--L7|
|
||||
L77--L-7J-|7LFF7L-7|L-JL-7||F7|FJL7|F-J|L-JFJL-7F7|FJL7||F-J|F-J|FJLJL7|F7L7-||L7LJFJJF7|FJL7LJLJL7||FJ||L--7F-7-|7.F.|7JL-L7J-7JFFL--JFFL.L
|
||||
..FFJL7L7-LLF7|L--JL-7F--J|LJ||L7FJ|L7F|F--JF7-LJ|||F-J||L-7LJF-JL--7FJLJ|FJFJL7|F-JF7||||F7|F----J||L7LJF--JL7|F--7LFLJ--||||FLLF7-J.FF-.F|
|
||||
F-J|7L|-77|-J7|F7F--7|L---JF-JL7|L-JFJFJL-7FJL7F7|||L7|||F7|F-JF7.F7||F7FJL7L7FJ||.FJ||LJ||LJL-7-F7||JL7FJF7F7||L-7|-FJ-7LL77-F7-F|J.F7||F-7
|
||||
LL7L77L-7-7-LLLJLJF-JL-----JF--JL--7L-JF7FJL7FJ||||L7L7|LJLJ|F7|L7||||||L-7L7||FJL-JFJL-7||F---JFJLJ|F-J|FJLJLJ|F7|L7JF7.7JL7|LF-7.F-FF77JJ.
|
||||
FF--.7.LJLL7|.|FF-JF--------JF7F7F7|F--J||F-JL-JLJ|FJFJL7F--J|LJFJ|||||L7|L7LJ||F---JF--JLJL--7JL7F-JL7FJ|F----J|||FJFJ|7JF-J-7|JL||LLLJL7-F
|
||||
7|..L-FFJJFL7FFLL-7|F---77F7FJLJLJ||L7F7LJL--7F---JL7|F7||F--JF-JFJ||||FJF7L7FJ||F--7L---7F---JF-JL7F7|L-JL7F--7|||L-JFJF7L7F7JJ.FJF-7L7J|7|
|
||||
F7.L7LJJ.FJL|F7L|7LJL7F7L-J|L----7|L7LJL7F7FFJL7F-7||||LJLJF--JF7L7||LJL7|L-JL7|LJF7|F7F-JL-7F7L7F-J|||F---J|F7||LJF--J||L7JLJ.LFLJ|LJ--7JL|
|
||||
J7-FJ.|7.|J-F7L7LF7F-J||F-7|F7FF-JL7|F--J||FJF-J|FJFJ||F7F7L--7||FJLJF-7|L---7||F-JLJ||L--7FJ|L7|L7FJLJL7F-7LJ|LJF-JF7F7L7L7||--|..|F7|LJ|F|
|
||||
|F7LF77J.LF-LJJ.FJLJF7|||FJLJL7L--7LJL7F7|||FJF7||FJFJLJ||L---J||L--7|FLJJF--J||L-7F7||FF-JL7|FJL7|L-7F-J|FJF7L-7L7FJLJL7|FJ7|F7|F.|--7-LL|7
|
||||
|L||F---F.F7LJ-FL---J||||L--7FJF7L|F--J|||||L7||||L7L-7FJL-7F-7||F7FJL7F-7L--7LJF-J|||L7L7F-J|L7FJL-7|L-7|L7||F7|FJ|F---J||F---77-|J|7L-F.L7
|
||||
-7F77JJF-|7JJ.F-F--77||LJF--JL-JL-J|F7J||||L7|||||FJF7|L7F-JL7|||||L7FJ|FJF-7L7FJF-J||FJFJL7FJFJL7F-J|F-J|FJ|||||L7|L7F7FJ||F--JJ7|.L7|F|.LJ
|
||||
.L.|L|.F-L|7|FFLL-7L7LJF7L--------7LJL-JLJ|FJ||LJ|L7|LJFJ|F7FJLJ||L-J|.||FJFJFJL-JF-J||FJF-JL7|F-JL7FJ|F7||FJLJLJFJ|FJ||L7LJ|F-7JF777.LFFJL|
|
||||
J..L.LL|J-J-|7J.LLL7L-7|L---------JF--7F7FJL7|L-7L-JL77L7LJLJF--JL7F-JFJ|L7|FJF---JF7|LJFJF7FJ|L-7FJL7||||||F----JFJL7|L-JF-J|FJ-LF77.|L||.F
|
||||
.F-.L7.|7.F7.F-7.FLL7FJL----------7L-7LJLJF7|L7FJF-7FJF7|F--7L--7FJL77L7L7|LJFJ|F7FJ|L-7|FJ|L7L--J||FJLJ||LJ|F7F7FJF-JL7F-JF7||F77.JJ-L-|-LJ
|
||||
FF|-.FFF-JJLLJL|FF--JL7F77F7F7F--7|F-JF7F7|||FJL-JFJL-JLJL-7L---JL7FJF7L7|L-7L7FJ||FJF-J||FJ7L---7L7|F--JL-7LJLJLJFJF-7||F-JLJLJ|-J7|-|F7-L7
|
||||
|L-JLLJL-J7F||.J|L---7LJL-JLJLJF7LJL7-|||||LJL7-F7|F7F---7FJF7F-7FJL7||FJ|F7|FJL7||L7L-7|||F7F7F7|FJ||F7F7FJF----7L-JFJ|||F---7FJFL7.FFJJ|F7
|
||||
..|.|F7L77LL77J|F-7F7L--------7|L--7L-JLJ|L--7|FJ||||L7F7LJ|||L7LJF-J||L7LJ||L--J||FJF-JLJ||LJLJ||L7|LJ|||L7L-7F7L--7L-JLJL7F7LJ-7F|-7.|7FLJ
|
||||
F.L|-|J.F7.|L|-LL7LJL----7F-7FJ|F-7L7F---JF7FJLJFJLJ|FJ|L--7||FJF-JF7||JL-7LJF7F-J|L7L--7FJL7F--J|FJ|F-J||FJF-J|L--7L7F7F--J|L7L|F-J|F|JLJ|J
|
||||
|F-L.|.-JL7|JF-L|L------7|L7LJFJL7|FJ|F--7||L--7|F7FJL7|F--J||L7|F-J|||F7-L-7|LJF7|FJF7FJ|F7||F7FJL-J|F7|||FJLFJF--J-|||L---JFJ.-JF|JLJ|J.JJ
|
||||
7-LJFJ7|J.F-.J77FF------JL-JF-J..||L7||F-J||FF7||||L7FJ||F7L||F||L-7|||||F7F||F7|||||||L7|||||||L7F--J||||||F7|FJF77FJ||F-7F7|F7-|FL-F.7-7J|
|
||||
F7-|7.FF-FJ-|JF7FL--7F7F7F--JF7-FJL-J|||F7||FJ|||||FJ|FJLJ|FJ|FJL7FJ||||||L7|LJLJ|||FJ|FJ||||||L7||F-7|LJLJLJLJL-JL7L7||L7||LJ|L--7J7|FL-|-F
|
||||
LJ--F7L---JFLJL-JJ-LLJLJLJF--JL7L7F77||LJLJ||JLJ||LJL|L-7.||FJL-7|||LJ||LJFJL7F--J|LJFJL7LJ||||FJ|||L||F----------7L7||L7|||F-JF--JJ-F7LLJ-J
|
||||
|.LF-JF-F|.|J7.L77|.F--7F7L---7L-J|L7|L7F--JL-7F||LF-JF7L7LJL7F-JLJF--J|F-JF-JL7F7L77L--JJFJ|||L7|LJFJ|L---------7L7||L7|||LJF7L7|7|F|L..L7J
|
||||
|7F-J7.FFLLJ|F..F7F-JF7LJL---7L---JFJL-JL--7F-JFJL7L7FJL7L-7FJL---7|F-7||F7L7F7LJ|FJF7LF--JFJ||FJL77|FJF---------J|LJL-JLJL7FJL7L--7J-J-7...
|
||||
.-J|||-|7L|7FJF7||L-7|L-7F--7|FF7F7L--7F7F-JL7FJF7|FJL-7L7FJL7F7F-J||FJ|||L7LJ|F-J|FJL7L7F7L7LJL-7|FJ|FJF--7F7F--7F-----7FFJ|JFJF--J-7.FF--F
|
||||
J7|FLJF-L7|LF7|LJL7|LJF7LJF-JL-JLJL---J||L7F7|L7|||L7F7|FJL7-LJ|L77LJ|FJ||FJF-J|F7LJF7L7|||FJ|F--J|L7|L-JF7LJLJF7LJF7F-7|FJFJ|L7|JLJF7-FJ7||
|
||||
||L7.FL|LL-L.LL7F7L7LFJ|F7L------------JL7||||-LJ|L7||||L-7L--7L7L7JFJL7LJL7L7FJ|L7FJL-J||||F7L---JJ||F--JL----SL--JLJJLJ|FJF--J|7FL-.F77.F|
|
||||
J.||F--7.J7J|-LLJL7L7L7||L---------------JLJ|L--7L7|LJ|L-7L7F-JJL7L7L7FJF--JFJL7L7|L-7F7LJLJ|L-----7LJL7F----------7F7F7|LJ7L---J777.L7LJ--|
|
||||
L-|-|..L7-|LF.LJ-LL7L7||L--------7F--7F7F77FJF-7L7||F-JF7L7|L-7.FJFJFJ|-L-7FJF-JFJ|F7LJL7F7FJF-7F-7L7F7LJF7F-7F----J|||L7.LJJFLL-7|F7JJ.||.|
|
||||
L7F-JF-F|7.F77J|-F7L7LJL7-F---7F7LJF7LJLJL7L7|-L7|||L-7|L-J|F-JFJFJFJFJF--J|LL-7|J|||F--J|||FJFJL7L7LJL--JLJFJL-----JLJFJF|..|LL7JJ-LJ-F7FJ-
|
||||
.F.|FFFF--7||F7LFJL7L7F7|FJF-7LJL7F|L-----JFJL7J||LJF-JL-7FJL7.|FJFL-JLL7F7L-7.|L7|||L---J||L7L7FJ7L7F7F-7F7L----------JJF7-.|L-.||LJ.FLJJ|.
|
||||
FJF|--JL-7||||L7L-7L7LJ||L-JFL7F7L-JFF7F7F7L-7L7|L7.L-7F7||F7L7|L-7|F---J||F-JFJFJ||L7F---JL-JFJL7F7LJLJJLJL-----7LF7F7F7|||.F-J7LJ7.7|J.L|-
|
||||
|7JL|..L||LJLJFJF7L7L7|||7F7F-J|L7F--JLJLJL-7L-J|FJF--J||||||FJ|F7|FJF7F7|||FFJFJFJ|FJL---7F--JF-J||F7-F7F------7|FJLJLJLJL-77LLF7L7-L77L.|7
|
||||
-J7.F----|F7F7L-JL7L7L-JL-JLJF7L7LJF-------7L--7|L7L7F7|||||LJL|||||FJ||||LJFJFJ7L7|L--7F-J|F7FJF-JLJL-JLJF7F--7LJL7F-------J..|JF.77LJ-J-||
|
||||
L-FFF77|-LJLJL---7|JL-7F7F7F7||FJF7L------7|F7FJ|FJ-LJ||||||7F-J||||L7LJ|L7FJFJ|F7LJLF-JL7-||LJ7L----7F---JLJF7|JF7|||F-----7.F7FF7FJ-|...||
|
||||
|7|FJL-7-F-7F7F7FJL7F-J|||||LJLJFJL-------JLJ|L7LJLF7FJ|||||FJF7|LJ|FJF-JFJL7L-7|L--7L7F7L7LJF------7|L7F----J|L-JLJL-JF-7F-J-|L-J|JL-J7.F-7
|
||||
---L7F-J7|FJ||||L-7|L--JLJ||F7F7L7F---------7L-J|F-JLJFJ||||L7|||F-J|FJF7|F-JF7|L--7L-J||FJF7|F----7|L-JL--7F7L--7F7F7FJ.|L-7-|F--J7J|LF-J-F
|
||||
L7LFJ|F7-|L-JLJL--JL7F7|F7LJ|||L7LJF----7F-7L---7L7F7FJ|||||L||||L-7|L-J||L-7|||F--JF7FJ||FJ|||F---JL------J||LF7LJLJLJF7L7FJFJL-7LF-7LL7FF7
|
||||
FL-L7|||F|F7F-7F7F-7LJL-J|7FJ||FJF7L---7|L7|F7F-J.|||L-7|||L7|||L7FJL-7FJ|F-J|||L7F7|LJFJLJFJLJL7F7F--7F----JL-JL----7L|L7LJFJF--J7|FJ.LLLLJ
|
||||
LLF-JLJL-J|LJFJ|||FL-7F-7L7L7LJL-JL----JL7|LJLJF-7LJL7FJ|||FJ||L-J|F--J|FJL7FJ|L7||||F-JF7FJLFF7LJLJF7||F------------JFJFJF7L7|JFLFF|J.L|7L|
|
||||
F-L---7F7FJF7L7|||F--JL7L7L-JF-7F7F--7F7FJL---7|FJF7FJ||LJ|L7LJJF7|L--7||7F|L7L7||||||F7|||F7FJL-7JFJLJ|L-----7F7LF7F7L7L7|L7|L77FF7|LF.F--|
|
||||
L77LJLLJ||FJL-J||||F---J||F-7|FLJLJF-J||L7F--7LJL-J|L7|F-7|FJF--JLJF7FJ|L7FJFJFJ|LJ|||||||LJ||F-7L-JF-7|LF7F7FJ|L-JLJL7|FJ|FJ|FJFLF7F7|L.FL|
|
||||
F-LJFLLFJ|L-7F7|||LJF----JL7||F----JF7|L7|L-7|F---7L7|LJFJ|L7|F7F--J||-L7|L7L7|FJF-J|||LJ|F-JLJ||F-7L7||FJLJLJJ|F--7F-J|L-JL-J|F7F|LJL7FFLJJ
|
||||
||LFJ-LL7L7FJ|||LJFFJF7F7F7||||F-7F7|||FJL-7||L--7L-JL--J.L-J|||L--7|L-7|L7|FJLJJ|F7|||F-JL7F---J|FJFJLJL------JL7FJL--JF----7LJL-JF7FJJJJJ|
|
||||
F7|JFF|.L-JL7|LJ7F7L-J||LJ||LJLJFLJLJLJ|FF7LJL---JF-----77L-FJ|L7F7||F7|L7|||JFF-J|||LJ|F--JL----JL7L7LF7F7F-7F7FJL-----J.F-7L-7F7FJLJJJ..|J
|
||||
|L--|FFF---7||F--JL---J|F-J|F-7F7F-----JFJL7F--7F7|F---7L7|||FJFLJ||||LJ|LJLJ77L-7|LJF7LJF--7LF7F77L-JFJLJLJ.LJLJF7F-7F--7|FJF7LJLJJ|J-7-7..
|
||||
J|LF-7.L--7LJ||F7F7F-7FJL--JL7|||L---7F7|F-J|F7LJLJ|F7LL7L7-||.J|LLJLJ7.-JJLFF---J|F-JL--JF7L-J|||F--7L----7F7F--JLJFJ|F-J|L-JL-7JJJ|JF7JFJ7
|
||||
|F-JF-JL|FJF-J||LJLJFJL7.F7F-JLJL-7F7LJLJ|F7||L---7LJL7JL-J7LJ7.FF|-J--7LF-7-L-7F7|L--7F7FJL7F7LJ|L7FJJF---J|LJF7F7FJF|L--JF---7L77FF7JJFFJJ
|
||||
LL7.LJ|FFJFJF-J|F---JF7|FJ|L-7F7F7LJL---7LJ||L---7L--7L---7-..F-F|.LJ7LL.7J||LLLJ|L--7||LJF7LJ|F7L-JL--JF---JF7||||L--JF--7L-7|L7L-7||J.J.77
|
||||
J..F|.|LL7|JL-7|L----JLJ|FJF-J|||L-----7L7FJ|F---JF-7|F---J-F|..L|L.|L..F|-||F7F-JF7FJLJF-JL-7LJL--7F---JF---JLJLJL7F7FJF7L-7L-7|F7LJ|JL.7L-
|
||||
.FF-J.|FJ||J.F||F-----7L||FJF-JLJF--7F7L7|L-JL----JFJ|L-77JL7J--J|FFF7|.L|-|-F-|F-J||F-7L---7|JF7F7LJF7F7L-----7F7-||LJ7|L-7|F-JLJ|F-J|.FL-J
|
||||
FF|-7.-JFLJ.FLLJL----7L-JLJFJ|F-7L-7LJL-J|F-7F-7F7FJ-L-7L-7J|...F7F7|FL7-JJL7J|LJJ|LJL7L-7F7||FJLJL--JLJL-----7LJL7|L---JF-J|L--7||L7J7--JJ|
|
||||
L-7--JLLJL|.J.F77F7F-JF7F--JF-JFJF7L----7|L7LJFJ|LJF7F7L--J-L.|.FJ|L77..7J.FF.FLJ.J7.|L-7LJLJ|L7F7F--7F------7|F--J|F-7F7L-7L---J-L-JJ|-7.F7
|
||||
FL77L||.F--J-FJL-JLJF7|||F--JF7L-JL-----J|FJF7L-JF-J||L-7J.LL7L-JL..L-J7..JFLF-|FJ.|.F7FJF7F7L7LJ||F-J|F--7F-JLJF7LLJFJ||F7L7F7||7||.L--7.-7
|
||||
JJL7-77.JJLJ.L7F---7|LJLJL---JL---------7|L-JL7-FJF-J|F-J.|.|L-|FL--77|7F7F7||.|7F-F-J|L-JLJL7|F7LJL-7||F7LJF7F7||F-7|FJ||L7LJL-7-7-7-L7J-L|
|
||||
|.-7L||-J--JFFLJF--J|F--------------7F--JL7F-7L7|FJF7||F-7F-77FJ7J|7JF7JJFL-7J-7F77|F7L------JLJL7JF7LJLJL--JLJLJLJFJLJ-LJFJF7F-J.|||..L-..F
|
||||
77|J.LF-J|.|LFF7L--7|L---7F7F-7F7F-7LJF7F7LJFL7LJL7|||LJFJ|FJF7|L777JFJ|FL7F|7..L|-LJL-7F------7FJFJL7F-7F-7F------JF7F--7L-J|L7J77F7-|.||FJ
|
||||
LFL-77|.F7-FF7||JF7LJ7F77LJLJLLJLJ|L--JLJL7F-7L---J|||F-JFJL-J|J.JLJJ|||F|JLJF-JLJ7L7|FLJ7F----JL-JF-JL7LJJLJ|F7F---JLJF-JJF7L-J-7-7F7FL7.FL
|
||||
FF|7|FL|--F-JLJ|FJL---J|F7F7.F------------J|FJ.F--7||||F7L7F--J7F7F7F-L-77FFJJJJFLL7|JFF-7L-7F7F7F7L-77L-7F7F7|LJF-----JF7FJL7F-77J|-F|7|FJJ
|
||||
||L|--.JJ|L---7LJF7F--7LJLJL7L---------7FF7|L7FJF-J||||||.|L--77.|LL7-J-7--|||-F|||-.L|L7|F7LJLJ|||F7L-77LJLJLJF7|7F7-F7|||F-J|FJF7LF-|F7J7.
|
||||
-LJ||.LL7F|JLLL--JLJ7FJF-7F7L7F--------JFJLJFJL7|JFJLJLJL-JF--JJ7L-7J-|-FJ..|7.-|F|77|F-J|||F7F-J||||F7L7F--7F7||L-JL-JLJLJL--JL-JL7|LJ-J.L7
|
||||
|F-|-J.FF7L7F||F7F---JFJFLJ|FJL7F--7F7F7|F--JF7|L-JF--7F7F-JJJL-JF|--.7L|.7FL--.L|FF-7L-7LJLJ|L--JLJLJL7|L-7|||||F--------7F----7F-J-FLJ-7-|
|
||||
F7||-F-F-JJF7-FJLJF--7L7F--JL7JLJF7LJLJ|||-F7|LJF-7L-7|||L-7.7JFLFJ-7FJ7|7L7--LF7F7L7L-7L---7|F7F--7F--JL--JLJLJLJF---7LF7LJF7F7||F77JF-7-F7
|
||||
7JF|.L--7J7F7-L--7|F-JFJL--7FJF7F||F---J|L7|LJF-JFL--JLJL--JF7.|J|.|F7F7JFJL|.F||||-|F-J|F--JLJ||F7|L--7F---7F7F7FL-7FJFJL--JLJ|LJ||F7FL7JJ|
|
||||
..F--77JJFFFJJ|.LLJL--JF---JL-JL-JLJF7F-JFJ|F7L--------7F7F7|L7JFLFLJL7L-F--LF-J|||FJL-7FJF7F-7|LJ||F7JLJF--J|LJL7F-JL-JF7F7F-7L--JLJL7FJJF-
|
||||
L7|L|LJ.77F77LF7F---7F7L--7F7F-7F---J||F7|J||L-------7FJ|LJLJFJFF-L7JF7FL|.LLL-7LJ|L--7|L-JLJL||F7||||F--JF7FJF7FJ|F---7|||LJF|F-7F--7|-J.LJ
|
||||
.F|7|L-F--|L7FJ|L--7||L--7LJLJ7LJF---J||LJFJL-------7LJFJF7F-J.L77LJ.-77-LJ..|7L7FJF--JL-7F7JFJLJLJ|||L---JLJFJLJ-||F-7|||L--7LJ-LJJLLJJF7-F
|
||||
FF.JJ7|LJ-L7|L7|F7FJ||F-7L-------JF7|FJL--JF-7F--7F7L7FJFJLJJF7JJL|J77.F7JFFF-7FJL7L----7LJL7L----7||L-------J|F7FJLJFJLJL7F7|.F7F7|.||.---J
|
||||
FJ-|7F-7F|L|L-J|||L7|LJFJF7F7F7F-7|L-JF7F-7|FJL-7LJL-JL7L7F--JL-7.77F7-|J|FJ|FJL7FJF---7L--7L-7F7FJLJF-7F7F-7F7|||F--JF--7LJ|L-JLJL7-777-|-7
|
||||
|J-77|J|F7JL7F7LJL-JL7.L-JLJLJLJJLJF--JLJ|LJL7F7L7F7-F-JFJL7F---JF7FJL--7F7FJ|F7|L7L--7|F7FJF7LJLJF-7|FJ|||FJ||||||.F7L7FJF7L7F7F7FJ.J..F||F
|
||||
|LFJFJ7LF--FJ||F7F-7FJF7F7F-7F-----JF7F7F-7F7||L7LJL7L7FJF7|L-7F7|LJF7F-J||L7LJLJFJF7J|LJLJFJ|F7F7|.LJL-JLJL-JLJLJL-JL7|L-JL7LJ||LJLF.FF7LL|
|
||||
|-7F|JF.LL.L7|LJLJFJL-JLJ|L7|L------JLJ|L7LJ|LJLL---JFJL7|||F-J|||F-JLJF7||LL--7FJFJL7|F7F7L7||||LJF7F7F7F7F7F-7F7F7F7LJF7F7L7FJL7F--7-.|7|F
|
||||
J||FF7..-7FLLJF---JF----7L-JL----------JFJF7L------7FL7FJ||||F7|LJL-7F7||||F7F-JL7L7FJLJLJ|FJLJLJ.FJLJLJLJLJ||F|||||||F7|LJ|FJL-7LJF-JFF7JF-
|
||||
J-|L--|7LL7J|-L----JF--7L------------7F-JFJL7F-7F--JF7|L7|LJ||||F---J|||LJ|||L7F7L7|L-7F7|LJF-----JF-7F----7|L7LJ||LJ|||L-7||F-7|F7|7.LJJ7||
|
||||
||JLJ7|F.|J.F-F-----JF7L-------------J|F-JF7LJJ||F-7|||FJ|F-J|||L7F-7||L7FJ||-||L7||F-J||F7JL-7F7F7|FJ|LF--JL7L-7|L-7LJ|F-J|LJFJ|||L-7.FJJ7L
|
||||
FF7-7|F7FF77.FL--7F7FJL7F------7F--7F7|L--JL--7||L7|||||F|L7FJ||FJ|FJ|L-J|FJL7||FJ||L-7|LJL--7LJLJLJL7L7L-7F7L--JL--JF7LJF7L7FJL|||F-J-F|FFJ
|
||||
F-J-7-7||-L7-F--7LJ|L-7||F-----J|F7LJLJF--7F--J||FJ||||L7|FJL7LJL7|L-JF--JL7FJLJL7LJF-JL---7FJLF-7F--JFJF-J|L--------JL--JL7|L-7LJLJJJJLL-7|
|
||||
77F.|LFJJL-|JL-7|F7L--J||L------J||F7F7L-7LJF77||L7||LJFJ||F7|F--J|F--JF-7||L--77L-7L7F-7F7||F-JFJL--7L7L--JF--------------JL--J-|JJ|-FJJ.FJ
|
||||
|L-.LF-J7JF7-F-JLJ|F--7LJF--7F7|FJLJ|||F7L7-|L7LJFJLJF7|FJ||LJL---JL--7L7|FJF--JF--JFJL7LJ||||F-J|F-7L-JF---JF7F----7|F7LF--7.F7F|J.|7L77-L7
|
||||
J-J7.LJL--F--JF--7|L7FJF7L-7|||FJF-7LJLJL7L7|FJF7|F--J||L7||F---------JFJ|L7|LF7L--7|F7L-7LJ||L--7L7L-7|L----JLJF---JFJL-JF-JFJL7--F7|LJL77|
|
||||
L-J777-F|LL---JF-J|FJL7||F-JLJLJFJ.L----7L-J|L7|LJL--7LJJ||||F--7F7.F7FL7|FJL7||F7FJLJ|F-JF7|L-7FJFJF7L----7F---JF7JFJF-7FJF7L7FJLFJ|7JLFFFL
|
||||
FFJFFJ7-F.|FF--JF7|L7FJ||L---7F7|F7F----JJF7L7|L7F---JF-7||||L7FJ|L7||F7|||F-J|LJ|L-7FJL--J||F7||JL-JL----7|L----JL7|FJ|LJ7||FJL-7L7|--77FJ.
|
||||
FJ-LL.L7F--7|F--J||FJ|.|L----J|LJ|LJ|F7-F7||FJ|FJL-7F7L7LJLJL7|L7L7LJ||||||L-7|F7|F7||F7F--J||||L7F-7F7F7FJL7F--7F7LJL77F-7|||F--J-||J-JF7L.
|
||||
|F-F7FFLL7|F||F--J|L7L7L-----7L7FJF--JL7|||LJFJL7F-J|L7L7F-7FJL7|FJF-J|LJLJF-JLJ||||||||L7F7||||FJL7LJLJLJF-JL7.|||F-7L7L7LJLJ|F7F7||J|FL7J7
|
||||
F7J.L7|-JLLLLJL7F7L-JFJF7F7F-JFJL-JF---J|||F7L--J|F7|FJ|LJFJ|7FJ||FJF-JF---JF-7FJ||||LJ|FLJ|||LJL7FJF7F--7L--7L7LJLJ.L7L7|F---J||||||F-7.7J|
|
||||
LJ-F-FJJ--J-L|LLJL7F7L-J||||F7|F---JF7F7||LJL-7F7||||L7-F7L7L7L7|||J|F-J-F7FJFJL7|||L7FJF7FJ||F--JL-JLJF7L--7L7L-----7L7LJL-7F7|||||||FJ7L7.
|
||||
LFFF7JF-7J|-FJ-F--J||F-7LJ|LJLJL----JLJLJ|F7F7||LJ|LJFJFJ|.L7L7||||FJL7F7|||FJF-J||L7|L7||L7LJ|.F-7-F--JL---JFJF-7F--J|L7F--J|||LJLJLJL-7L||
|
||||
.|J.77|F7F-.|--L-7FJLJJL-7|F7F7F--------7||LJ|||F7L7FJ-|FJF7L7LJ|||L-7LJ|||||FL-7||FJ|FJ||-L-7L7L7L7L----7.F7L-J7LJLF7-FJL---JLJF7F-7F7FJ.L-
|
||||
F.|7|-F|F--|.L|F-J|F7F-7FJLJLJLJF---7F-7LJL-7||LJ|FJ|F7||FJL7L-7|||F-JF-J|||L7F7|||L7|L7||F7FJFJFJFJLF--7L-JL-------JL7L-7F---7FJLJ.LJLJ|FF|
|
||||
|7L-J.LJ7J||-FFJF-J||L7|L-7F7F7FJF--J|FJF7F7|||F-J|FJ||||L7FJF7||||L7FJF7||L7||||||FJL7|||||L7|LL7|F7L7FJF-------7F7F7L7-||F-7LJF-7F77LL|7-F
|
||||
FFL7|FFJLF|.|L|FJF-JL-JL--J||||||L--7||FJ|||||||F-J|FJ||L7|L7|LJLJL7|L7|||L7|||||||L7FJ||||L7||F7||||FJ|FJF----7.LJ||L-JFJLJFJ|FJFJ||7LL|J.7
|
||||
F|L|-|7J-J|FL7LJ7L--------7|LJLJF7F7|||L7||||||||F-J|-||FJL7|L-7F--J|FJ|LJFJ||||||L7||FJ|||FJ|LJ|||||L7|L-JF--7L--7|L7F7|F-7L--JFJL|L7F-LJ-F
|
||||
F--..L7...F7L|J.FF---7F7F-J|F---JLJLJ||FJ||LJ|||||F7L7LJL7FJ|F7|L7F7|L7L7LL-J||||L7|LJ|FJ||L7L-7LJ|||FJ|F-7L-7L---JL7LJ|||FJF7F7L7||FJ-7|7.|
|
||||
7J|F7JL77-FJJ|.-JL--7LJLJF7|L------7FJ|L7|L7FJ|LJ||L7L-7F|L7||||FJ|||FJFJF--7LJ|L7|L-7|L7||FJF7L7L|||L7|L7L-7L-----7|F7|||L7|LJL7L-J|J-L.F-F
|
||||
7-J-7-FF-7LJ.F-F7JF-JF7F7|LJ-F-7F7FJL7L7||FJL7L77LJFJF7L7L7|LJ|||FJLJL7L-JF7L7FJFJL7FJ|FJ||L7||FJFJ|L7||FJF-JF7F---JLJLJ|L7|L--7L7F7L-7-FJFF
|
||||
L|.|LFFJ|F|JF|LLF-JF7|||LJLF7L7LJLJF7L7LJLJF7|FJF--JFJ|FJFJL-7||||F---JF-7||FJL7L-7||FJL7||FJ|||-L7L7LJ||7|F-J||LF7F7F7J|FJL7F-JF||L--J7F7..
|
||||
FL|F-J.FF-||-77JL-7|LJLJ7F-J|FJF7F7|L7L---7|||L7L7F7L7||FJF-7|||LJL7F7FJFJ|||F7|F-JLJ|F7|||L-JLJF-JFJF-JL7LJF-JL-JLJ||L7LJF7|L--7|L-77-7|.F7
|
||||
7J.FLF--JLL|F7-F-7LJF7-F7L-7LJFJLJLJFJF7F7LJ|L7L7LJ|FJ||L7L7LJ||7F-J||L7|FJ|LJ||L---7||LJ|L-7F--JF7L7L-7FJF-JF--7F-7LJFJF7||L---JL7FJ7|||-||
|
||||
|FLL7J||L|FJ7|.L7L--JL-JL-7|F7L7F--7L7||||F7L7|FJF-JL7LJ7L7L7FJL7|F7||FJ|L7|F7|L7F7FJLJF-JF-JL7F7||FJ7FJL7|F-JF-J|7|F-J7|LJL---7JLLJ..FLL--L
|
||||
JJ|.|F|FFL|FLL-LL--------7|LJL7LJF-J-LJ||||L7||L7L7F7L-7F7|FJL7FJLJ|||||L7||||L7||LJF7LL--JF7-||LJ|L-7L7FJ|L-7|F7L7||F--JF-7F7FJJ|J-F7--J777
|
||||
FLJ.LLJJ7L|7.LF7F7F------JL---JF7L-7|F-J|LJF|||FJFJ||F7||LJL7FJ|F--J||L-7LJLJ|FJ|L--JL7F---J|FJL-7|F7|-LJFJF7||||FJ|LJF7FJ||||L7FL-F|L|F7L-L
|
||||
LJL|.FL.|LL.FF|LJLJF7F7F7F---7FJL-7|FJF7L--7|||L7|FJ||LJ|F7FJL7|L--7||F7L7F--JL7L7F-7FJL7F-7LJF--J|||L--7L7|LJ|||L7|F7||L-7LJL-J-||FJFJL-JLL
|
||||
|J-|JJ|-F7|LFFJF7F7|||||||F7F|L--7|||FJ|F--J||L7||L7|L7FJ|||.FJ|F--J||||FJL--7FJFJL7LJ.FJL7|F7L--7||L7F-JL|L-7||L7||||||F7L----7|L|.F||F7||J
|
||||
|.|F7JL7|FFJFJFJLJLJ||LJLJ|L-JF7FJLJ||F|L--7||FJ|L7||FJ|FJ|L7|FJL--7|LJ||F7F7||JL-7L-7FJF-J||L7F-J||F|L--7|F7|||FJ|||LJ|||F---7|J.-7.F7.F7|.
|
||||
F7-LL.LJLJL7L-JF7F--J|F---JF7FJ||F7-LJFJF-7||||FJFLJ||-|L7L7|LJF---JL-7|||LJLJL7F7|F7||FJ.FJL7|L7FJ|FJF--JLJ||||L7||L-7LJ|L--7LJJ7LL7L7FFJ-J
|
||||
.|JJL7.7|FFLF--JLJF7FJL-7F-J||L||||F--JFJJ||||||F---JL7L7L7||F7|F-7F7FJ||L-7F7FJ||LJLJ||F-JF-JL7||FJL7L----7||||FJ||F-JF-JF-7L-7.|7.|-|FJ.L.
|
||||
|..FFLLJF7JJ|F-7F-J|L7F-J|F-JL7LJ|LJF7FJF-J|LJ||L7F7F7L7L-JLJ|LJ|FJ||L7|L7LLJ|L-JL7F-7|||F7|F--J|LJF7L7F7F-J||LJL7||L-7|F7L7|F-J7LF.|.|7|J|L
|
||||
|J77L-JL|L|7LJLLJFFJFJL--JL7F7L7FJF7||L7|F7L-7LJ-||||L7L---7JL7FJL7|L7||FJF--JF--7LJFJLJLJ||L--7L-7|L-J||L-7|L-7FJ|L7FJLJ|FJ|L-77JJF7JL7|-7|
|
||||
7.FL7J|...J7.J-LL-L7|JLFF--J||FJL7|||L-J||L7FJ7F-J||L7L-7F-JF-JL7.||FJ|||FJF-7L-7|F7L-7-F-J|F--JF-J|F7FJ|F-J|F-JL7L7||F|||L7L-7|--FFJLF|7LL|
|
||||
L-L7L-JJ7.LFJ|.LJFLLJJJFJF7FJ|L7FLJ|L7F-JL7|L-7L7FJL-JFFJL7FJF-7L7|||FJ||L7|-L7FJLJL-7L7|F7|L--7L-7|||L7LJF7LJJ|L|FJLJ-L-L7L7.LJJF.||F|F77FJ
|
||||
7|||L|-||..||-.77LF-F--JFJ|L7L7|F--JFJL--7|L7FJFJL-7F--JF-JL7|7L-JLJ||LLJFJ|F-JL----7|FJLJ||F--JF7|||L7L--J|FJJ-LLJJJ|.L--L7|J.LJF-7FJJLL7||
|
||||
.-JLFJF7L7.F|7|-7|LFJF-7|FJFJ-LJL7F7L7.F7LJFLJFJF7FJL7F7L--7LJ77LF--JL-7FJFJL-7F7F7FJ|L-7FJ||F7FJ|||L7L7F--JJ|.FLJ-JF--.LJFLJ|.LF-L|JLL|FJJ-
|
||||
FJ7F7JL|JL-LJ-L7FF-L7|FJ|L7|J-|F-J|L7L-JL7L|7.|FJ||F-J|L7F7L-7JFFJF-7F7||FJJF-J||||L7|F-J|FJLJ|L7||L7|FJL7|J7L77.|LF|JF-7F|JL7JFL7||F|F.L-|.
|
||||
F-|JJ7.JJ-|F77-LLJJ-LJL-JLLJJJFJF7|FJF---J-||7LJ-LJ|F7L7LJ|F7|F-JFJFJ|||||F-JF7|||L7||L7-||-F-JFJLJ-|||F-J-77|L--L-L|.|-F|.LLJL|.7FF7L7J--F7
|
||||
LF-.|FL-F-F|7.LFJ-|.|7|L|7J77|L7|LJL7L---7-7|FJJJ.FLJ|FJ.LLJ||L7FJLL7|||||L-7|LJLJ.||L-J-LJ-L--J7|J-||LJJL7|LF7||.LLL7J-F|-J.7-F--FJL7|F7JLF
|
||||
F-.F||..LFJLL7FJ.F|-7-77FL.JFFLLJ-F7|F---J.||7J|.F7.LLJ-7-L7LJ-|L7-LLJLJ|||F|L----7LJ7F7JLL.LJ.LFJ|.LJJL--.|-F7-77.F7J|FL|JF7JF|LJLJFJL-F.FF
|
||||
F-F||-7-FLF7JFLJ7F|-JJ.LJJJ|-JJ|JF|LJ|F7LJ-JL77-F7JFJLL7FJ.F7.LL-J7LJJJL||F-JF7F-7L---J|LFJ-.J7JJ7L||..LL-JJ7J|F||FFF.LF.|.|L-LF-JFFLJ-FJ-J|
|
||||
L7J||.L-JLLJ--7.FL-7||.F|-L7.|.|-FJF7LJ|..7-LFJ.|L7L-||L|7-|-L.|.|L|.FF7LJL7FJLJJ|F----J.|7L|--7.|.LJ-7..|JF7|L-L-7F--L|FJ7|FLL|FJ7|-7.|-|JL
|
||||
FL7F||.||7L-F--|JF-.-F-JLF7J||L..L7||F-J7J.-.|.FL|J-FLF.|J7JFL-|-7.--F|L---JL7LF-JL--7|JF-7L7.L-FJ7|LJ7F77JJ.|JL|.-LL.|L-L-|-7.||.L7-F-7.|JL
|
||||
L|7-FLJ--F77|-LJ.|--JJJL.|JLJFJF7-LJLJ-F|7L.FJ-77J..F-|-|J|F7.|LLL-7|LL--7F7FJ.L-7F--J7F7F7-JJ.LJ--FJL|FF-7LF|7.L7FFJ-J|.L.|.LFL7.LJFJFF-|..
|
||||
.|..|.|7L.L|J.LL-L-7F7-LFJ|.FF.F7.J.|L--|7.|--7|F7FJJ.|L|-L7|--JF|.|-7F|LLJ|L77LFLJ-J.J-.JJ.|||FJF|J..|-LJF-L|7L|-7L|7L7J-JJ.L-J-||-|-LJ|LLF
|
||||
LJ-F---J.F7|77JFL-||-F7||-J-LJ-FJLJF-7|F|F-JFFJ|.F--7-LJ|LFL|-7||JFF-|LF.JL|FJ7FFJL7J-|7L77F|FFJJ|7..LL-J.777F7F|JF-77J|LFFF77FL|LL-|-.LJJJ|
|
||||
.|JF|-L|.J7LJJ77|F7|7F--|-|JL7-L7LFFJ-77-J|F-JFJ7JF|J|7|F-|7|-L|||F7.|L7-F|LJJ7-|7.|FLLF7LL-FFJ|.-L--7.LF||F-J.L|F7.L7F7.F7LLJ7J|F|-|J|L|L77
|
||||
F-7|L77L..F-J7F---7J7||.|-F.LL7.|F7.JL|F7LF|-FF-LF7|-7-|.L--|...FL|L-JFF-J-.|.7F||JF||.FL7L.7||L7JJ-7FF-7|F|-|-LF--J7L7LL7JL||LF|F--LJ|-FJ|7
|
||||
L|L--JJJ-LLJ-FF.JJLLJ7-L7-JLJJ|-.F7..-|LJ.FJ.|J..L7J.L-.--JL|.-FJ-L-LL.|.JJ-FJ.F|JLLJF-7J7JJJ|7JLJ..FL--JJ-77L7.|JLL-JL-L.LL-|7-L|J.LLL-L-|.
|
||||
@@ -0,0 +1,118 @@
|
||||
import math
|
||||
INPUT_FILE = "input.text"
|
||||
|
||||
|
||||
class Point:
|
||||
x: int
|
||||
y: int
|
||||
|
||||
def __init__(self, x: int , y: int):
|
||||
self.x = x
|
||||
self.y = y
|
||||
|
||||
def add(self, other):
|
||||
return Point(self.x + other.x, self.y + other.y)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f'P({self.x}, {self.y})'
|
||||
|
||||
def __eq__(self, other) -> bool:
|
||||
return self.x == other.x and self.y == other.y
|
||||
|
||||
class PipeMap:
|
||||
pipe_map: list[str]
|
||||
start_position: Point
|
||||
bounds: Point
|
||||
|
||||
def __init__(self, map_path: str):
|
||||
|
||||
with open(map_path, 'r') as file:
|
||||
self.pipe_map = file.readlines()
|
||||
|
||||
for i in range(0, len(self.pipe_map)):
|
||||
self.pipe_map[i] = self.pipe_map[i][:-1]
|
||||
|
||||
max_y = len(self.pipe_map)
|
||||
for row in range(0, max_y):
|
||||
max_x = len(self.pipe_map[row])
|
||||
col = self.pipe_map[row].find('S')
|
||||
|
||||
if col != -1:
|
||||
self.bounds = Point(max_x, max_y)
|
||||
self.start_position = Point(row, col)
|
||||
|
||||
def in_bounds(self, p: Point) -> bool:
|
||||
return (p.y < self.bounds.x and p.x < self.bounds.y and p.x >= 0 and p.y >= 0)
|
||||
|
||||
|
||||
directions = {
|
||||
8 : Point(-1, 0),
|
||||
9 : Point(-1, 1),
|
||||
6 : Point(0, 1),
|
||||
3 : Point(1, 1),
|
||||
2 : Point(1, 0),
|
||||
1 : Point(1, -1),
|
||||
4 : Point(0, -1),
|
||||
7 : Point(-1, -1)
|
||||
}
|
||||
|
||||
pipe_directions = {
|
||||
'|' : [Point(-1, 0), Point(1, 0)],
|
||||
'-' : [Point(0, -1), Point(0, 1)],
|
||||
'L' : [Point(-1, 0), Point(0, 1)],
|
||||
'J' : [Point(-1, 0), Point(0, -1)],
|
||||
'7' : [Point(0, -1), Point(1, 0)],
|
||||
'F' : [Point(0, 1), Point(1, 0)],
|
||||
'.' : [],
|
||||
'S' : True
|
||||
}
|
||||
|
||||
def main():
|
||||
|
||||
pipe_map = PipeMap(INPUT_FILE)
|
||||
|
||||
# Check around start
|
||||
next_directions = None
|
||||
current_pos: Point = pipe_map.start_position
|
||||
last_pos: Point = current_pos
|
||||
|
||||
for d in directions:
|
||||
new_pos = pipe_map.start_position.add(directions[d])
|
||||
|
||||
if pipe_map.in_bounds(new_pos):
|
||||
if char := pipe_directions[pipe_map.pipe_map[new_pos.x][new_pos.y]]:
|
||||
|
||||
# Check if this pipe connects to start somehow
|
||||
good = False
|
||||
for d2 in char:
|
||||
if new_pos.add(d2) == current_pos:
|
||||
good = True
|
||||
break
|
||||
|
||||
if good:
|
||||
current_pos = new_pos
|
||||
next_directions = char
|
||||
break
|
||||
|
||||
steps = 1 # Because current pos isn't at start rn
|
||||
while current_pos != pipe_map.start_position:
|
||||
|
||||
for direction in next_directions:
|
||||
potential_pos: Point = current_pos.add(direction)
|
||||
potential_directions: list[Point] = pipe_directions[pipe_map.pipe_map[potential_pos.x][potential_pos.y]]
|
||||
|
||||
if pipe_map.in_bounds(potential_pos) and potential_pos != last_pos and potential_directions:
|
||||
last_pos = current_pos
|
||||
current_pos = potential_pos
|
||||
next_directions = potential_directions
|
||||
steps += 1
|
||||
break
|
||||
|
||||
|
||||
print(f'Loop finished, start found in {steps} steps')
|
||||
print(f'Critter is at {math.ceil(steps/2)}')
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,5 @@
|
||||
..F7.
|
||||
.FJ|.
|
||||
SJ.L7
|
||||
|F--J
|
||||
LJ...
|
||||
@@ -0,0 +1,140 @@
|
||||
F---7-FJ.7--FJ7.-.7-|7F.|7FJ77F7J-|--.FLF|.F-7-F7.F.J77|--|7--|7|-J-F--7-F7.F7-F7F7F-|-|-F777L7|-.FLF|-77F7-FJF|JF--F.77J-L7-FF--7.FFF7FF7.7
|
||||
|J.F|7F|F7J.J-L-|-|.L7F7JF7-7-LJ|LJ.F7.L|.F|F7FJ7.F7.|F|L7.L7L|-F-|7|L|JFF.F||F777L|-77L-|JF7FJJJLF7LL7|.L77|L7LLLJ.|..LLL7|L7-.-JFFLL-7L-FF
|
||||
F7L7JLLJL-7FL7|F7-J7.-J.7L7J|.|-JF|FLFF7L-JLL|-F7-F|77|.|L7FJ7JJFJL7JJJFF.FJ||||JFF|LL7F-JF|.LJ7F.|F7F|J7LLL-7||||LFFFF77|-L7LL7F7-JL7|FF7L|
|
||||
JFL7FJ7.--JJ7L||.LF|7JJFLFLF7.|.LFF7-FJ|-J-77|-F.|J|LLFF-|-7JL7-J7L|JLF7-7F7|LJL-7|L7F7J-FJ|F|7|77|J-F..FJL.|F77-7F|-FJ|J7J.--7.7J.7-|-||LF|
|
||||
.|LLFJLF--J.FL|-J.F77F-77.L|L7F77F7.F|FJ7.FJ7JF7F7|F-J..7JL|..FF---|J-F|JF|||F--7|-FL7.J-J.|LFFJ-7.L7J|.7-|LJJF7L77LL||.FL--JJ|-L-F|7F-JJ|.|
|
||||
FL77J|LJFJFF7JJ|J7LJ.|.LF.LL7|||7||-FJL---7.LFJL7J7|FLF7J|F77-J|JJFJ-F-7FFJLJL-7LJ7LLLJ7JLL-7||J|||L-7|---L.FFLLFF---|F--J.|.|L.||FJ7.LLL|-J
|
||||
|L-J-JJ-F-F-J7F--7.F7F7F7FF-JLJ|FJ|JL7F-7FJ7-L7FJF-7F7||7FFF7JL7.-JLF|FJFJF7F7FJFFL-|.L-7J|FJFJ-JJ7.L|7.|7J-|J.||||LFLJ-F|F7-7|FF-L7|7-.|L7|
|
||||
7|LF|JLL|.F.F-FJF-7|||LJL7L-7F-JL7L7FJL7LJF77F|||L7||||L-7F||.7F7FLFFJL-JFJLJLJ-F|J.F-FL7.LJ||.|L.F7|.F7.7|FJ||-J|J-J7.7-7---|-LJF|7F|-77-L-
|
||||
|J.7|LF7JF|F7|L.L7|||L7F-J-F||F7FJFJ|F-JF7||F7||-F|||||F-JFJ|7J|L|F-L-7F7L-7F777.|JF77J-F7FFF777LFFF-F-7-7--LJL|-L|.FF-F.JL|.LFJ-77-F|7F77FJ
|
||||
JJ--JLJL-J|J.FLF-J|||L||F77FJ||||FJFJ|F7|||LJLJ|JFJ||||L77L7|F--7F7-F7LJ|F7|||F7F7.L|.F-JL7FJL7F---7JL7L7F7.L|F--7L-L7.J-.-7JJ|L-7L.|JFJLJF|
|
||||
|JFLJF|-77F-7.FL-7LJL-J|||FJFJ|||L7|FJ|LJ|L---7L7|FJ|LJFJ7FJLJF-J||.||F-J|LJ|LJLJ|7-J7L-7FJL7FJ|F--J--L7|||7FFF-FJ|JLL|FLFLJ.-L7FLL-|L|.7.FF
|
||||
L-77LJJ|FJ|7J.--LL----7|||L7|FJ||FJ||FJF-JF7|FJFJ|L7L7FJF7|F7FJ-FJL-J||F7L-7L7F--J.7|F-7||F7||FJL7L|-F-JLJL-7-|FJLJ77.|7.L7JF|L|7.|---|F--.F
|
||||
7JFF7||FJJJJL7J7.F-7F-JLJL-JLJFJ||7|LJFJF7|L7L7L7L7|-|L7|LJ|LJJ.L---7|LJL7FJ|||F-77LLL7||LJLJLJF-J-|LL---7F-J|||..JJF-.F7.F-7|L|7F77JFJ-L|FJ
|
||||
|-|LLJF-7LJ|LL|--L7|L7F--7F--7L-JL7L7FJFJ||FJF|FJFJ|FJFJL-7L-7F-7LF7|L7F7|L7FJ||FJF7FFJLJF-----JF-7F7F-7FJL--777-7L-|JF|77LLLL7JFJ|F-JJ.L|7|
|
||||
77LJ7F--7J7L7L|.F-J|FJ|F-J|F-JF-7FJFJL7|FJ|L7FJL-JFJ|FJF7|L7FJL7|F|||FJ|LJFJL7||L7|L7L--7L7F-7F7|FJ||L7||F---JL|-L7J.-77J-F.||JF|.L--J.--L7|
|
||||
L77--L-7J-|7LFF7L-7|L-JL-7||F7|FJL7|F-J|L-JFJL-7F7|FJL7||F-J|F-J|FJLJL7|F7L7-||L7LJFJJF7|FJL7LJLJL7||FJ||L--7F-7-|7.F.|7JL-L7J-7JFFL--JFFL.L
|
||||
..FFJL7L7-LLF7|L--JL-7F--J|LJ||L7FJ|L7F|F--JF7-LJ|||F-J||L-7LJF-JL--7FJLJ|FJFJL7|F-JF7||||F7|F----J||L7LJF--JL7|F--7LFLJ--||||FLLF7-J.FF-.F|
|
||||
F-J|7L|-77|-J7|F7F--7|L---JF-JL7|L-JFJFJL-7FJL7F7|||L7|||F7|F-JF7.F7||F7FJL7L7FJ||.FJ||LJ||LJL-7-F7||JL7FJF7F7||L-7|-FJ-7LL77-F7-F|J.F7||F-7
|
||||
LL7L77L-7-7-LLLJLJF-JL-----JF--JL--7L-JF7FJL7FJ||||L7L7|LJLJ|F7|L7||||||L-7L7||FJL-JFJL-7||F---JFJLJ|F-J|FJLJLJ|F7|L7JF7.7JL7|LF-7.F-FF77JJ.
|
||||
FF--.7.LJLL7|.|FF-JF--------JF7F7F7|F--J||F-JL-JLJ|FJFJL7F--J|LJFJ|||||L7|L7LJ||F---JF--JLJL--7JL7F-JL7FJ|F----J|||FJFJ|7JF-J-7|JL||LLLJL7-F
|
||||
7|..L-FFJJFL7FFLL-7|F---77F7FJLJLJ||L7F7LJL--7F---JL7|F7||F--JF-JFJ||||FJF7L7FJ||F--7L---7F---JF-JL7F7|L-JL7F--7|||L-JFJF7L7F7JJ.FJF-7L7J|7|
|
||||
F7.L7LJJ.FJL|F7L|7LJL7F7L-J|L----7|L7LJL7F7FFJL7F-7||||LJLJF--JF7L7||LJL7|L-JL7|LJF7|F7F-JL-7F7L7F-J|||F---J|F7||LJF--J||L7JLJ.LFLJ|LJ--7JL|
|
||||
J7-FJ.|7.|J-F7L7LF7F-J||F-7|F7FF-JL7|F--J||FJF-J|FJFJ||F7F7L--7||FJLJF-7|L---7||F-JLJ||L--7FJ|L7|L7FJLJL7F-7LJ|LJF-JF7F7L7L7||--|..|F7|LJ|F|
|
||||
|F7LF77J.LF-LJJ.FJLJF7|||FJLJL7L--7LJL7F7|||FJF7||FJFJLJ||L---J||L--7|FLJJF--J||L-7F7||FF-JL7|FJL7|L-7F-J|FJF7L-7L7FJLJL7|FJ7|F7|F.|--7-LL|7
|
||||
|L||F---F.F7LJ-FL---J||||L--7FJF7L|F--J|||||L7||||L7L-7FJL-7F-7||F7FJL7F-7L--7LJF-J|||L7L7F-J|L7FJL-7|L-7|L7||F7|FJ|F---J||F---77-|J|7L-F.L7
|
||||
-7F77JJF-|7JJ.F-F--77||LJF--JL-JL-J|F7J||||L7|||||FJF7|L7F-JL7|||||L7FJ|FJF-7L7FJF-J||FJFJL7FJFJL7F-J|F-J|FJ|||||L7|L7F7FJ||F--JJ7|.L7|F|.LJ
|
||||
.L.|L|.F-L|7|FFLL-7L7LJF7L--------7LJL-JLJ|FJ||LJ|L7|LJFJ|F7FJLJ||L-J|.||FJFJFJL-JF-J||FJF-JL7|F-JL7FJ|F7||FJLJLJFJ|FJ||L7LJ|F-7JF777.LFFJL|
|
||||
J..L.LL|J-J-|7J.LLL7L-7|L---------JF--7F7FJL7|L-7L-JL77L7LJLJF--JL7F-JFJ|L7|FJF---JF7|LJFJF7FJ|L-7FJL7||||||F----JFJL7|L-JF-J|FJ-LF77.|L||.F
|
||||
.F-.L7.|7.F7.F-7.FLL7FJL----------7L-7LJLJF7|L7FJF-7FJF7|F--7L--7FJL77L7L7|LJFJ|F7FJ|L-7|FJ|L7L--J||FJLJ||LJ|F7F7FJF-JL7F-JF7||F77.JJ-L-|-LJ
|
||||
FF|-.FFF-JJLLJL|FF--JL7F77F7F7F--7|F-JF7F7|||FJL-JFJL-JLJL-7L---JL7FJF7L7|L-7L7FJ||FJF-J||FJ7L---7L7|F--JL-7LJLJLJFJF-7||F-JLJLJ|-J7|-|F7-L7
|
||||
|L-JLLJL-J7F||.J|L---7LJL-JLJLJF7LJL7-|||||LJL7-F7|F7F---7FJF7F-7FJL7||FJ|F7|FJL7||L7L-7|||F7F7F7|FJ||F7F7FJF----7L-JFJ|||F---7FJFL7.FFJJ|F7
|
||||
..|.|F7L77LL77J|F-7F7L--------7|L--7L-JLJ|L--7|FJ||||L7F7LJ|||L7LJF-J||L7LJ||L--J||FJF-JLJ||LJLJ||L7|LJ|||L7L-7F7L--7L-JLJL7F7LJ-7F|-7.|7FLJ
|
||||
F.L|-|J.F7.|L|-LL7LJL----7F-7FJ|F-7L7F---JF7FJLJFJLJ|FJ|L--7||FJF-JF7||JL-7LJF7F-J|L7L--7FJL7F--J|FJ|F-J||FJF-J|L--7L7F7F--J|L7L|F-J|F|JLJ|J
|
||||
|F-L.|.-JL7|JF-L|L------7|L7LJFJL7|FJ|F--7||L--7|F7FJL7|F--J||L7|F-J|||F7-L-7|LJF7|FJF7FJ|F7||F7FJL-J|F7|||FJLFJF--J-|||L---JFJ.-JF|JLJ|J.JJ
|
||||
7-LJFJ7|J.F-.J77FF------JL-JF-J..||L7||F-J||FF7||||L7FJ||F7L||F||L-7|||||F7F||F7|||||||L7|||||||L7F--J||||||F7|FJF77FJ||F-7F7|F7-|FL-F.7-7J|
|
||||
F7-|7.FF-FJ-|JF7FL--7F7F7F--JF7-FJL-J|||F7||FJ|||||FJ|FJLJ|FJ|FJL7FJ||||||L7|LJLJ|||FJ|FJ||||||L7||F-7|LJLJLJLJL-JL7L7||L7||LJ|L--7J7|FL-|-F
|
||||
LJ--F7L---JFLJL-JJ-LLJLJLJF--JL7L7F77||LJLJ||JLJ||LJL|L-7.||FJL-7|||LJ||LJFJL7F--J|LJFJL7LJ||||FJ|||L||F----------7L7||L7|||F-JF--JJ-F7LLJ-J
|
||||
|.LF-JF-F|.|J7.L77|.F--7F7L---7L-J|L7|L7F--JL-7F||LF-JF7L7LJL7F-JLJF--J|F-JF-JL7F7L77L--JJFJ|||L7|LJFJ|L---------7L7||L7|||LJF7L7|7|F|L..L7J
|
||||
|7F-J7.FFLLJ|F..F7F-JF7LJL---7L---JFJL-JL--7F-JFJL7L7FJL7L-7FJL---7|F-7||F7L7F7LJ|FJF7LF--JFJ||FJL77|FJF---------J|LJL-JLJL7FJL7L--7J-J-7...
|
||||
.-J|||-|7L|7FJF7||L-7|L-7F--7|FF7F7L--7F7F-JL7FJF7|FJL-7L7FJL7F7F-J||FJ|||L7LJ|F-J|FJL7L7F7L7LJL-7|FJ|FJF--7F7F--7F-----7FFJ|JFJF--J-7.FF--F
|
||||
J7|FLJF-L7|LF7|LJL7|LJF7LJF-JL-JLJL---J||L7F7|L7|||L7F7|FJL7-LJ|L77LJ|FJ||FJF-J|F7LJF7L7|||FJ|F--J|L7|L-JF7LJLJF7LJF7F-7|FJFJ|L7|JLJF7-FJ7||
|
||||
||L7.FL|LL-L.LL7F7L7LFJ|F7L------------JL7||||-LJ|L7||||L-7L--7L7L7JFJL7LJL7L7FJ|L7FJL-J||||F7L---JJ||F--JL----SL--JLJJLJ|FJF--J|7FL-.F77.F|
|
||||
J.||F--7.J7J|-LLJL7L7L7||L---------------JLJ|L--7L7|LJ|L-7L7F-JJL7L7L7FJF--JFJL7L7|L-7F7LJLJ|L-----7LJL7F----------7F7F7|LJ7L---J777.L7LJ--|
|
||||
L-|-|..L7-|LF.LJ-LL7L7||L--------7F--7F7F77FJF-7L7||F-JF7L7|L-7.FJFJFJ|-L-7FJF-JFJ|F7LJL7F7FJF-7F-7L7F7LJF7F-7F----J|||L7.LJJFLL-7|F7JJ.||.|
|
||||
L7F-JF-F|7.F77J|-F7L7LJL7-F---7F7LJF7LJLJL7L7|-L7|||L-7|L-J|F-JFJFJFJFJF--J|LL-7|J|||F--J|||FJFJL7L7LJL--JLJFJL-----JLJFJF|..|LL7JJ-LJ-F7FJ-
|
||||
.F.|FFFF--7||F7LFJL7L7F7|FJF-7LJL7F|L-----JFJL7J||LJF-JL-7FJL7.|FJFL-JLL7F7L-7.|L7|||L---J||L7L7FJ7L7F7F-7F7L----------JJF7-.|L-.||LJ.FLJJ|.
|
||||
FJF|--JL-7||||L7L-7L7LJ||L-JFL7F7L-JFF7F7F7L-7L7|L7.L-7F7||F7L7|L-7|F---J||F-JFJFJ||L7F---JL-JFJL7F7LJLJJLJL-----7LF7F7F7|||.F-J7LJ7.7|J.L|-
|
||||
|7JL|..L||LJLJFJF7L7L7|||7F7F-J|L7F--JLJLJL-7L-J|FJF--J||||||FJ|F7|FJF7F7|||FFJFJFJ|FJL---7F--JF-J||F7-F7F------7|FJLJLJLJL-77LLF7L7-L77L.|7
|
||||
-J7.F----|F7F7L-JL7L7L-JL-JLJF7L7LJF-------7L--7|L7L7F7|||||LJL|||||FJ||||LJFJFJ7L7|L--7F-J|F7FJF-JLJL-JLJF7F--7LJL7F-------J..|JF.77LJ-J-||
|
||||
L-FFF77|-LJLJL---7|JL-7F7F7F7||FJF7L------7|F7FJ|FJ-LJ||||||7F-J||||L7LJ|L7FJFJ|F7LJLF-JL7-||LJ7L----7F---JLJF7|JF7|||F-----7.F7FF7FJ-|...||
|
||||
|7|FJL-7-F-7F7F7FJL7F-J|||||LJLJFJL-------JLJ|L7LJLF7FJ|||||FJF7|LJ|FJF-JFJL7L-7|L--7L7F7L7LJF------7|L7F----J|L-JLJL-JF-7F-J-|L-J|JL-J7.F-7
|
||||
---L7F-J7|FJ||||L-7|L--JLJ||F7F7L7F---------7L-J|F-JLJFJ||||L7|||F-J|FJF7|F-JF7|L--7L-J||FJF7|F----7|L-JL--7F7L--7F7F7FJ.|L-7-|F--J7J|LF-J-F
|
||||
L7LFJ|F7-|L-JLJL--JL7F7|F7LJ|||L7LJF----7F-7L---7L7F7FJ|||||L||||L-7|L-J||L-7|||F--JF7FJ||FJ|||F---JL------J||LF7LJLJLJF7L7FJFJL-7LF-7LL7FF7
|
||||
FL-L7|||F|F7F-7F7F-7LJL-J|7FJ||FJF7L---7|L7|F7F-J.|||L-7|||L7|||L7FJL-7FJ|F-J|||L7F7|LJFJLJFJLJL7F7F--7F----JL-JL----7L|L7LJFJF--J7|FJ.LLLLJ
|
||||
LLF-JLJL-J|LJFJ|||FL-7F-7L7L7LJL-JL----JL7|LJLJF-7LJL7FJ|||FJ||L-J|F--J|FJL7FJ|L7||||F-JF7FJLFF7LJLJF7||F------------JFJFJF7L7|JFLFF|J.L|7L|
|
||||
F-L---7F7FJF7L7|||F--JL7L7L-JF-7F7F--7F7FJL---7|FJF7FJ||LJ|L7LJJF7|L--7||7F|L7L7||||||F7|||F7FJL-7JFJLJ|L-----7F7LF7F7L7L7|L7|L77FF7|LF.F--|
|
||||
L77LJLLJ||FJL-J||||F---J||F-7|FLJLJF-J||L7F--7LJL-J|L7|F-7|FJF--JLJF7FJ|L7FJFJFJ|LJ|||||||LJ||F-7L-JF-7|LF7F7FJ|L-JLJL7|FJ|FJ|FJFLF7F7|L.FL|
|
||||
F-LJFLLFJ|L-7F7|||LJF----JL7||F----JF7|L7|L-7|F---7L7|LJFJ|L7|F7F--J||-L7|L7L7|FJF-J|||LJ|F-JLJ||F-7L7||FJLJLJJ|F--7F-J|L-JL-J|F7F|LJL7FFLJJ
|
||||
||LFJ-LL7L7FJ|||LJFFJF7F7F7||||F-7F7|||FJL-7||L--7L-JL--J.L-J|||L--7|L-7|L7|FJLJJ|F7|||F-JL7F---J|FJFJLJL------JL7FJL--JF----7LJL-JF7FJJJJJ|
|
||||
F7|JFF|.L-JL7|LJ7F7L-J||LJ||LJLJFLJLJLJ|FF7LJL---JF-----77L-FJ|L7F7||F7|L7|||JFF-J|||LJ|F--JL----JL7L7LF7F7F-7F7FJL-----J.F-7L-7F7FJLJJJ..|J
|
||||
|L--|FFF---7||F--JL---J|F-J|F-7F7F-----JFJL7F--7F7|F---7L7|||FJFLJ||||LJ|LJLJ77L-7|LJF7LJF--7LF7F77L-JFJLJLJ.LJLJF7F-7F--7|FJF7LJLJJ|J-7-7..
|
||||
J|LF-7.L--7LJ||F7F7F-7FJL--JL7|||L---7F7|F-J|F7LJLJ|F7LL7L7-||.J|LLJLJ7.-JJLFF---J|F-JL--JF7L-J|||F--7L----7F7F--JLJFJ|F-J|L-JL-7JJJ|JF7JFJ7
|
||||
|F-JF-JL|FJF-J||LJLJFJL7.F7F-JLJL-7F7LJLJ|F7||L---7LJL7JL-J7LJ7.FF|-J--7LF-7-L-7F7|L--7F7FJL7F7LJ|L7FJJF---J|LJF7F7FJF|L--JF---7L77FF7JJFFJJ
|
||||
LL7.LJ|FFJFJF-J|F---JF7|FJ|L-7F7F7LJL---7LJ||L---7L--7L---7-..F-F|.LJ7LL.7J||LLLJ|L--7||LJF7LJ|F7L-JL--JF---JF7||||L--JF--7L-7|L7L-7||J.J.77
|
||||
J..F|.|LL7|JL-7|L----JLJ|FJF-J|||L-----7L7FJ|F---JF-7|F---J-F|..L|L.|L..F|-||F7F-JF7FJLJF-JL-7LJL--7F---JF---JLJLJL7F7FJF7L-7L-7|F7LJ|JL.7L-
|
||||
.FF-J.|FJ||J.F||F-----7L||FJF-JLJF--7F7L7|L-JL----JFJ|L-77JL7J--J|FFF7|.L|-|-F-|F-J||F-7L---7|JF7F7LJF7F7L-----7F7-||LJ7|L-7|F-JLJ|F-J|.FL-J
|
||||
FF|-7.-JFLJ.FLLJL----7L-JLJFJ|F-7L-7LJL-J|F-7F-7F7FJ-L-7L-7J|...F7F7|FL7-JJL7J|LJJ|LJL7L-7F7||FJLJL--JLJL-----7LJL7|L---JF-J|L--7||L7J7--JJ|
|
||||
L-7--JLLJL|.J.F77F7F-JF7F--JF-JFJF7L----7|L7LJFJ|LJF7F7L--J-L.|.FJ|L77..7J.FF.FLJ.J7.|L-7LJLJ|L7F7F--7F------7|F--J|F-7F7L-7L---J-L-JJ|-7.F7
|
||||
FL77L||.F--J-FJL-JLJF7|||F--JF7L-JL-----J|FJF7L-JF-J||L-7J.LL7L-JL..L-J7..JFLF-|FJ.|.F7FJF7F7L7LJ||F-J|F--7F-JLJF7LLJFJ||F7L7F7||7||.L--7.-7
|
||||
JJL7-77.JJLJ.L7F---7|LJLJL---JL---------7|L-JL7-FJF-J|F-J.|.|L-|FL--77|7F7F7||.|7F-F-J|L-JLJL7|F7LJL-7||F7LJF7F7||F-7|FJ||L7LJL-7-7-7-L7J-L|
|
||||
|.-7L||-J--JFFLJF--J|F--------------7F--JL7F-7L7|FJF7||F-7F-77FJ7J|7JF7JJFL-7J-7F77|F7L------JLJL7JF7LJLJL--JLJLJLJFJLJ-LJFJF7F-J.|||..L-..F
|
||||
77|J.LF-J|.|LFF7L--7|L---7F7F-7F7F-7LJF7F7LJFL7LJL7|||LJFJ|FJF7|L777JFJ|FL7F|7..L|-LJL-7F------7FJFJL7F-7F-7F------JF7F--7L-J|L7J77F7-|.||FJ
|
||||
LFL-77|.F7-FF7||JF7LJ7F77LJLJLLJLJ|L--JLJL7F-7L---J|||F-JFJL-J|J.JLJJ|||F|JLJF-JLJ7L7|FLJ7F----JL-JF-JL7LJJLJ|F7F---JLJF-JJF7L-J-7-7F7FL7.FL
|
||||
FF|7|FL|--F-JLJ|FJL---J|F7F7.F------------J|FJ.F--7||||F7L7F--J7F7F7F-L-77FFJJJJFLL7|JFF-7L-7F7F7F7L-77L-7F7F7|LJF-----JF7FJL7F-77J|-F|7|FJJ
|
||||
||L|--.JJ|L---7LJF7F--7LJLJL7L---------7FF7|L7FJF-J||||||.|L--77.|LL7-J-7--|||-F|||-.L|L7|F7LJLJ|||F7L-77LJLJLJF7|7F7-F7|||F-J|FJF7LF-|F7J7.
|
||||
-LJ||.LL7F|JLLL--JLJ7FJF-7F7L7F--------JFJLJFJL7|JFJLJLJL-JF--JJ7L-7J-|-FJ..|7.-|F|77|F-J|||F7F-J||||F7L7F--7F7||L-JL-JLJLJL--JL-JL7|LJ-J.L7
|
||||
|F-|-J.FF7L7F||F7F---JFJFLJ|FJL7F--7F7F7|F--JF7|L-JF--7F7F-JJJL-JF|--.7L|.7FL--.L|FF-7L-7LJLJ|L--JLJLJL7|L-7|||||F--------7F----7F-J-FLJ-7-|
|
||||
F7||-F-F-JJF7-FJLJF--7L7F--JL7JLJF7LJLJ|||-F7|LJF-7L-7|||L-7.7JFLFJ-7FJ7|7L7--LF7F7L7L-7L---7|F7F--7F--JL--JLJLJLJF---7LF7LJF7F7||F77JF-7-F7
|
||||
7JF|.L--7J7F7-L--7|F-JFJL--7FJF7F||F---J|L7|LJF-JFL--JLJL--JF7.|J|.|F7F7JFJL|.F||||-|F-J|F--JLJ||F7|L--7F---7F7F7FL-7FJFJL--JLJ|LJ||F7FL7JJ|
|
||||
..F--77JJFFFJJ|.LLJL--JF---JL-JL-JLJF7F-JFJ|F7L--------7F7F7|L7JFLFLJL7L-F--LF-J|||FJL-7FJF7F-7|LJ||F7JLJF--J|LJL7F-JL-JF7F7F-7L--JLJL7FJJF-
|
||||
L7|L|LJ.77F77LF7F---7F7L--7F7F-7F---J||F7|J||L-------7FJ|LJLJFJFF-L7JF7FL|.LLL-7LJ|L--7|L-JLJL||F7||||F--JF7FJF7FJ|F---7|||LJF|F-7F--7|-J.LJ
|
||||
.F|7|L-F--|L7FJ|L--7||L--7LJLJ7LJF---J||LJFJL-------7LJFJF7F-J.L77LJ.-77-LJ..|7L7FJF--JL-7F7JFJLJLJ|||L---JLJFJLJ-||F-7|||L--7LJ-LJJLLJJF7-F
|
||||
FF.JJ7|LJ-L7|L7|F7FJ||F-7L-------JF7|FJL--JF-7F--7F7L7FJFJLJJF7JJL|J77.F7JFFF-7FJL7L----7LJL7L----7||L-------J|F7FJLJFJLJL7F7|.F7F7|.||.---J
|
||||
FJ-|7F-7F|L|L-J|||L7|LJFJF7F7F7F-7|L-JF7F-7|FJL-7LJL-JL7L7F--JL-7.77F7-|J|FJ|FJL7FJF---7L--7L-7F7FJLJF-7F7F-7F7|||F--JF--7LJ|L-JLJL7-777-|-7
|
||||
|J-77|J|F7JL7F7LJL-JL7.L-JLJLJLJJLJF--JLJ|LJL7F7L7F7-F-JFJL7F---JF7FJL--7F7FJ|F7|L7L--7|F7FJF7LJLJF-7|FJ|||FJ||||||.F7L7FJF7L7F7F7FJ.J..F||F
|
||||
|LFJFJ7LF--FJ||F7F-7FJF7F7F-7F-----JF7F7F-7F7||L7LJL7L7FJF7|L-7F7|LJF7F-J||L7LJLJFJF7J|LJLJFJ|F7F7|.LJL-JLJL-JLJLJL-JL7|L-JL7LJ||LJLF.FF7LL|
|
||||
|-7F|JF.LL.L7|LJLJFJL-JLJ|L7|L------JLJ|L7LJ|LJLL---JFJL7|||F-J|||F-JLJF7||LL--7FJFJL7|F7F7L7||||LJF7F7F7F7F7F-7F7F7F7LJF7F7L7FJL7F--7-.|7|F
|
||||
J||FF7..-7FLLJF---JF----7L-JL----------JFJF7L------7FL7FJ||||F7|LJL-7F7||||F7F-JL7L7FJLJLJ|FJLJLJ.FJLJLJLJLJ||F|||||||F7|LJ|FJL-7LJF-JFF7JF-
|
||||
J-|L--|7LL7J|-L----JF--7L------------7F-JFJL7F-7F--JF7|L7|LJ||||F---J|||LJ|||L7F7L7|L-7F7|LJF-----JF-7F----7|L7LJ||LJ|||L-7||F-7|F7|7.LJJ7||
|
||||
||JLJ7|F.|J.F-F-----JF7L-------------J|F-JF7LJJ||F-7|||FJ|F-J|||L7F-7||L7FJ||-||L7||F-J||F7JL-7F7F7|FJ|LF--JL7L-7|L-7LJ|F-J|LJFJ|||L-7.FJJ7L
|
||||
FF7-7|F7FF77.FL--7F7FJL7F------7F--7F7|L--JL--7||L7|||||F|L7FJ||FJ|FJ|L-J|FJL7||FJ||L-7|LJL--7LJLJLJL7L7L-7F7L--JL--JF7LJF7L7FJL|||F-J-F|FFJ
|
||||
F-J-7-7||-L7-F--7LJ|L-7||F-----J|F7LJLJF--7F--J||FJ||||L7|FJL7LJL7|L-JF--JL7FJLJL7LJF-JL---7FJLF-7F--JFJF-J|L--------JL--JL7|L-7LJLJJJJLL-7|
|
||||
77F.|LFJJL-|JL-7|F7L--J||L------J||F7F7L-7LJF77||L7||LJFJ||F7|F--J|F--JF-7||L--77L-7L7F-7F7||F-JFJL--7L7L--JF--------------JL--J-|JJ|-FJJ.FJ
|
||||
|L-.LF-J7JF7-F-JLJ|F--7LJF--7F7|FJLJ|||F7L7-|L7LJFJLJF7|FJ||LJL---JL--7L7|FJF--JF--JFJL7LJ||||F-J|F-7L-JF---JF7F----7|F7LF--7.F7F|J.|7L77-L7
|
||||
J-J7.LJL--F--JF--7|L7FJF7L-7|||FJF-7LJLJL7L7|FJF7|F--J||L7||F---------JFJ|L7|LF7L--7|F7L-7LJ||L--7L7L-7|L----JLJF---JFJL-JF-JFJL7--F7|LJL77|
|
||||
L-J777-F|LL---JF-J|FJL7||F-JLJLJFJ.L----7L-J|L7|LJL--7LJJ||||F--7F7.F7FL7|FJL7||F7FJLJ|F-JF7|L-7FJFJF7L----7F---JF7JFJF-7FJF7L7FJLFJ|7JLFFFL
|
||||
FFJFFJ7-F.|FF--JF7|L7FJ||L---7F7|F7F----JJF7L7|L7F---JF-7||||L7FJ|L7||F7|||F-J|LJ|L-7FJL--J||F7||JL-JL----7|L----JL7|FJ|LJ7||FJL-7L7|--77FJ.
|
||||
FJ-LL.L7F--7|F--J||FJ|.|L----J|LJ|LJ|F7-F7||FJ|FJL-7F7L7LJLJL7|L7L7LJ||||||L-7|F7|F7||F7F--J||||L7F-7F7F7FJL7F--7F7LJL77F-7|||F--J-||J-JF7L.
|
||||
|F-F7FFLL7|F||F--J|L7L7L-----7L7FJF--JL7|||LJFJL7F-J|L7L7F-7FJL7|FJF-J|LJLJF-JLJ||||||||L7F7||||FJL7LJLJLJF-JL7.|||F-7L7L7LJLJ|F7F7||J|FL7J7
|
||||
F7J.L7|-JLLLLJL7F7L-JFJF7F7F-JFJL-JF---J|||F7L--J|F7|FJ|LJFJ|7FJ||FJF-JF---JF-7FJ||||LJ|FLJ|||LJL7FJF7F--7L--7L7LJLJ.L7L7|F---J||||||F-7.7J|
|
||||
LJ-F-FJJ--J-L|LLJL7F7L-J||||F7|F---JF7F7||LJL-7F7||||L7-F7L7L7L7|||J|F-J-F7FJFJL7|||L7FJF7FJ||F--JL-JLJF7L--7L7L-----7L7LJL-7F7|||||||FJ7L7.
|
||||
LFFF7JF-7J|-FJ-F--J||F-7LJ|LJLJL----JLJLJ|F7F7||LJ|LJFJFJ|.L7L7||||FJL7F7|||FJF-J||L7|L7||L7LJ|.F-7-F--JL---JFJF-7F--J|L7F--J|||LJLJLJL-7L||
|
||||
.|J.77|F7F-.|--L-7FJLJJL-7|F7F7F--------7||LJ|||F7L7FJ-|FJF7L7LJ|||L-7LJ|||||FL-7||FJ|FJ||-L-7L7L7L7L----7.F7L-J7LJLF7-FJL---JLJF7F-7F7FJ.L-
|
||||
F.|7|-F|F--|.L|F-J|F7F-7FJLJLJLJF---7F-7LJL-7||LJ|FJ|F7||FJL7L-7|||F-JF-J|||L7F7|||L7|L7||F7FJFJFJFJLF--7L-JL-------JL7L-7F---7FJLJ.LJLJ|FF|
|
||||
|7L-J.LJ7J||-FFJF-J||L7|L-7F7F7FJF--J|FJF7F7|||F-J|FJ||||L7FJF7||||L7FJF7||L7||||||FJL7|||||L7|LL7|F7L7FJF-------7F7F7L7-||F-7LJF-7F77LL|7-F
|
||||
FFL7|FFJLF|.|L|FJF-JL-JL--J||||||L--7||FJ|||||||F-J|FJ||L7|L7|LJLJL7|L7|||L7|||||||L7FJ||||L7||F7||||FJ|FJF----7.LJ||L-JFJLJFJ|FJFJ||7LL|J.7
|
||||
F|L|-|7J-J|FL7LJ7L--------7|LJLJF7F7|||L7||||||||F-J|-||FJL7|L-7F--J|FJ|LJFJ||||||L7||FJ|||FJ|LJ|||||L7|L-JF--7L--7|L7F7|F-7L--JFJL|L7F-LJ-F
|
||||
F--..L7...F7L|J.FF---7F7F-J|F---JLJLJ||FJ||LJ|||||F7L7LJL7FJ|F7|L7F7|L7L7LL-J||||L7|LJ|FJ||L7L-7LJ|||FJ|F-7L-7L---JL7LJ|||FJF7F7L7||FJ-7|7.|
|
||||
7J|F7JL77-FJJ|.-JL--7LJLJF7|L------7FJ|L7|L7FJ|LJ||L7L-7F|L7||||FJ|||FJFJF--7LJ|L7|L-7|L7||FJF7L7L|||L7|L7L-7L-----7|F7|||L7|LJL7L-J|J-L.F-F
|
||||
7-J-7-FF-7LJ.F-F7JF-JF7F7|LJ-F-7F7FJL7L7||FJL7L77LJFJF7L7L7|LJ|||FJLJL7L-JF7L7FJFJL7FJ|FJ||L7||FJFJ|L7||FJF-JF7F---JLJLJ|L7|L--7L7F7L-7-FJFF
|
||||
L|.|LFFJ|F|JF|LLF-JF7|||LJLF7L7LJLJF7L7LJLJF7|FJF--JFJ|FJFJL-7||||F---JF-7||FJL7L-7||FJL7||FJ|||-L7L7LJ||7|F-J||LF7F7F7J|FJL7F-JF||L--J7F7..
|
||||
FL|F-J.FF-||-77JL-7|LJLJ7F-J|FJF7F7|L7L---7|||L7L7F7L7||FJF-7|||LJL7F7FJFJ|||F7|F-JLJ|F7|||L-JLJF-JFJF-JL7LJF-JL-JLJ||L7LJF7|L--7|L-77-7|.F7
|
||||
7J.FLF--JLL|F7-F-7LJF7-F7L-7LJFJLJLJFJF7F7LJ|L7L7LJ|FJ||L7L7LJ||7F-J||L7|FJ|LJ||L---7||LJ|L-7F--JF7L7L-7FJF-JF--7F-7LJFJF7||L---JL7FJ7|||-||
|
||||
|FLL7J||L|FJ7|.L7L--JL-JL-7|F7L7F--7L7||||F7L7|FJF-JL7LJ7L7L7FJL7|F7||FJ|L7|F7|L7F7FJLJF-JF-JL7F7||FJ7FJL7|F-JF-J|7|F-J7|LJL---7JLLJ..FLL--L
|
||||
JJ|.|F|FFL|FLL-LL--------7|LJL7LJF-J-LJ||||L7||L7L7F7L-7F7|FJL7FJLJ|||||L7||||L7||LJF7LL--JF7-||LJ|L-7L7FJ|L-7|F7L7||F--JF-7F7FJJ|J-F7--J777
|
||||
FLJ.LLJJ7L|7.LF7F7F------JL---JF7L-7|F-J|LJF|||FJFJ||F7||LJL7FJ|F--J||L-7LJLJ|FJ|L--JL7F---J|FJL-7|F7|-LJFJF7||||FJ|LJF7FJ||||L7FL-F|L|F7L-L
|
||||
LJL|.FL.|LL.FF|LJLJF7F7F7F---7FJL-7|FJF7L--7|||L7|FJ||LJ|F7FJL7|L--7||F7L7F--JL7L7F-7FJL7F-7LJF--J|||L--7L7|LJ|||L7|F7||L-7LJL-J-||FJFJL-JLL
|
||||
|J-|JJ|-F7|LFFJF7F7|||||||F7F|L--7|||FJ|F--J||L7||L7|L7FJ|||.FJ|F--J||||FJL--7FJFJL7LJ.FJL7|F7L--7||L7F-JL|L-7||L7||||||F7L----7|L|.F||F7||J
|
||||
|.|F7JL7|FFJFJFJLJLJ||LJLJ|L-JF7FJLJ||F|L--7||FJ|L7||FJ|FJ|L7|FJL--7|LJ||F7F7||JL-7L-7FJF-J||L7F-J||F|L--7|F7|||FJ|||LJ|||F---7|J.-7.F7.F7|.
|
||||
F7-LL.LJLJL7L-JF7F--J|F---JF7FJ||F7-LJFJF-7||||FJFLJ||-|L7L7|LJF---JL-7|||LJLJL7F7|F7||FJ.FJL7|L7FJ|FJF--JLJ||||L7||L-7LJ|L--7LJJ7LL7L7FFJ-J
|
||||
.|JJL7.7|FFLF--JLJF7FJL-7F-J||L||||F--JFJJ||||||F---JL7L7L7||F7|F-7F7FJ||L-7F7FJ||LJLJ||F-JF-JL7||FJL7L----7||||FJ||F-JF-JF-7L-7.|7.|-|FJ.L.
|
||||
|..FFLLJF7JJ|F-7F-J|L7F-J|F-JL7LJ|LJF7FJF-J|LJ||L7F7F7L7L-JLJ|LJ|FJ||L7|L7LLJ|L-JL7F-7|||F7|F--J|LJF7L7F7F-J||LJL7||L-7|F7L7|F-J7LF.|.|7|J|L
|
||||
|J77L-JL|L|7LJLLJFFJFJL--JL7F7L7FJF7||L7|F7L-7LJ-||||L7L---7JL7FJL7|L7||FJF--JF--7LJFJLJLJ||L--7L-7|L-J||L-7|L-7FJ|L7FJLJ|FJ|L-77JJF7JL7|-7|
|
||||
7.FL7J|...J7.J-LL-L7|JLFF--J||FJL7|||L-J||L7FJ7F-J||L7L-7F-JF-JL7.||FJ|||FJF-7L-7|F7L-7-F-J|F--JF-J|F7FJ|F-J|F-JL7L7||F|||L7L-7|--FFJLF|7LL|
|
||||
L-L7L-JJ7.LFJ|.LJFLLJJJFJF7FJ|L7FLJ|L7F-JL7|L-7L7FJL-JFFJL7FJF-7L7|||FJ||L7|-L7FJLJL-7L7|F7|L--7L-7|||L7LJF7LJJ|L|FJLJ-L-L7L7.LJJF.||F|F77FJ
|
||||
7|||L|-||..||-.77LF-F--JFJ|L7L7|F--JFJL--7|L7FJFJL-7F--JF-JL7|7L-JLJ||LLJFJ|F-JL----7|FJLJ||F--JF7|||L7L--J|FJJ-LLJJJ|.L--L7|J.LJF-7FJJLL7||
|
||||
.-JLFJF7L7.F|7|-7|LFJF-7|FJFJ-LJL7F7L7.F7LJFLJFJF7FJL7F7L--7LJ77LF--JL-7FJFJL-7F7F7FJ|L-7FJ||F7FJ|||L7L7F--JJ|.FLJ-JF--.LJFLJ|.LF-L|JLL|FJJ-
|
||||
FJ7F7JL|JL-LJ-L7FF-L7|FJ|L7|J-|F-J|L7L-JL7L|7.|FJ||F-J|L7F7L-7JFFJF-7F7||FJJF-J||||L7|F-J|FJLJ|L7||L7|FJL7|J7L77.|LF|JF-7F|JL7JFL7||F|F.L-|.
|
||||
F-|JJ7.JJ-|F77-LLJJ-LJL-JLLJJJFJF7|FJF---J-||7LJ-LJ|F7L7LJ|F7|F-JFJFJ|||||F-JF7|||L7||L7-||-F-JFJLJ-|||F-J-77|L--L-L|.|-F|.LLJL|.7FF7L7J--F7
|
||||
LF-.|FL-F-F|7.LFJ-|.|7|L|7J77|L7|LJL7L---7-7|FJJJ.FLJ|FJ.LLJ||L7FJLL7|||||L-7|LJLJ.||L-J-LJ-L--J7|J-||LJJL7|LF7||.LLL7J-F|-J.7-F--FJL7|F7JLF
|
||||
F-.F||..LFJLL7FJ.F|-7-77FL.JFFLLJ-F7|F---J.||7J|.F7.LLJ-7-L7LJ-|L7-LLJLJ|||F|L----7LJ7F7JLL.LJ.LFJ|.LJJL--.|-F7-77.F7J|FL|JF7JF|LJLJFJL-F.FF
|
||||
F-F||-7-FLF7JFLJ7F|-JJ.LJJJ|-JJ|JF|LJ|F7LJ-JL77-F7JFJLL7FJ.F7.LL-J7LJJJL||F-JF7F-7L---J|LFJ-.J7JJ7L||..LL-JJ7J|F||FFF.LF.|.|L-LF-JFFLJ-FJ-J|
|
||||
L7J||.L-JLLJ--7.FL-7||.F|-L7.|.|-FJF7LJ|..7-LFJ.|L7L-||L|7-|-L.|.|L|.FF7LJL7FJLJJ|F----J.|7L|--7.|.LJ-7..|JF7|L-L-7F--L|FJ7|FLL|FJ7|-7.|-|JL
|
||||
FL7F||.||7L-F--|JF-.-F-JLF7J||L..L7||F-J7J.-.|.FL|J-FLF.|J7JFL-|-7.--F|L---JL7LF-JL--7|JF-7L7.L-FJ7|LJ7F77JJ.|JL|.-LL.|L-L-|-7.||.L7-F-7.|JL
|
||||
L|7-FLJ--F77|-LJ.|--JJJL.|JLJFJF7-LJLJ-F|7L.FJ-77J..F-|-|J|F7.|LLL-7|LL--7F7FJ.L-7F--J7F7F7-JJ.LJ--FJL|FF-7LF|7.L7FFJ-J|.L.|.LFL7.LJFJFF-|..
|
||||
.|..|.|7L.L|J.LL-L-7F7-LFJ|.FF.F7.J.|L--|7.|--7|F7FJJ.|L|-L7|--JF|.|-7F|LLJ|L77LFLJ-J.J-.JJ.|||FJF|J..|-LJF-L|7L|-7L|7L7J-JJ.L-J-||-|-LJ|LLF
|
||||
LJ-F---J.F7|77JFL-||-F7||-J-LJ-FJLJF-7|F|F-JFFJ|.F--7-LJ|LFL|-7||JFF-|LF.JL|FJ7FFJL7J-|7L77F|FFJJ|7..LL-J.777F7F|JF-77J|LFFF77FL|LL-|-.LJJJ|
|
||||
.|JF|-L|.J7LJJ77|F7|7F--|-|JL7-L7LFFJ-77-J|F-JFJ7JF|J|7|F-|7|-L|||F7.|L7-F|LJJ7-|7.|FLLF7LL-FFJ|.-L--7.LF||F-J.L|F7.L7F7.F7LLJ7J|F|-|J|L|L77
|
||||
F-7|L77L..F-J7F---7J7||.|-F.LL7.|F7.JL|F7LF|-FF-LF7|-7-|.L--|...FL|L-JFF-J-.|.7F||JF||.FL7L.7||L7JJ-7FF-7|F|-|-LF--J7L7LL7JL||LF|F--LJ|-FJ|7
|
||||
L|L--JJJ-LLJ-FF.JJLLJ7-L7-JLJJ|-.F7..-|LJ.FJ.|J..L7J.L-.--JL|.-FJ-L-LL.|.JJ-FJ.F|JLLJF-7J7JJJ|7JLJ..FL--JJ-77L7.|JLL-JL-L.LL-|7-L|J.LLL-L-|.
|
||||
@@ -0,0 +1,160 @@
|
||||
import math
|
||||
INPUT_FILE = "input.text"
|
||||
|
||||
|
||||
class Point:
|
||||
x: int
|
||||
y: int
|
||||
|
||||
def __init__(self, x: int , y: int):
|
||||
self.x = x
|
||||
self.y = y
|
||||
|
||||
def add(self, other):
|
||||
return Point(self.x + other.x, self.y + other.y)
|
||||
|
||||
def to_tuple(self) -> tuple:
|
||||
return (self.x, self.y)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f'P({self.x}, {self.y})'
|
||||
|
||||
def __eq__(self, other) -> bool:
|
||||
return self.x == other.x and self.y == other.y
|
||||
|
||||
class PipeMap:
|
||||
pipe_map: list[str]
|
||||
start_position: Point
|
||||
bounds: Point
|
||||
|
||||
def __init__(self, map_path: str):
|
||||
|
||||
with open(map_path, 'r') as file:
|
||||
self.pipe_map = file.readlines()
|
||||
|
||||
for i in range(0, len(self.pipe_map)):
|
||||
self.pipe_map[i] = self.pipe_map[i][:-1]
|
||||
|
||||
max_y = len(self.pipe_map)
|
||||
for row in range(0, max_y):
|
||||
max_x = len(self.pipe_map[row])
|
||||
col = self.pipe_map[row].find('S')
|
||||
|
||||
if col != -1:
|
||||
self.bounds = Point(max_x, max_y)
|
||||
self.start_position = Point(row, col)
|
||||
|
||||
def in_bounds(self, p: Point) -> bool:
|
||||
return (p.y < self.bounds.x and p.x < self.bounds.y and p.x >= 0 and p.y >= 0)
|
||||
|
||||
|
||||
directions = {
|
||||
8 : Point(-1, 0),
|
||||
9 : Point(-1, 1),
|
||||
6 : Point(0, 1),
|
||||
3 : Point(1, 1),
|
||||
2 : Point(1, 0),
|
||||
1 : Point(1, -1),
|
||||
4 : Point(0, -1),
|
||||
7 : Point(-1, -1)
|
||||
}
|
||||
|
||||
pipe_directions = {
|
||||
'|' : [Point(-1, 0), Point(1, 0)],
|
||||
'-' : [Point(0, -1), Point(0, 1)],
|
||||
'L' : [Point(-1, 0), Point(0, 1)],
|
||||
'J' : [Point(-1, 0), Point(0, -1)],
|
||||
'7' : [Point(0, -1), Point(1, 0)],
|
||||
'F' : [Point(0, 1), Point(1, 0)],
|
||||
'.' : [],
|
||||
'S' : True
|
||||
}
|
||||
|
||||
def shoelace(points: list[Point]) -> int:
|
||||
A = 0
|
||||
|
||||
n = len(points)
|
||||
for i in range(0, n):
|
||||
x1, y1 = points[i].to_tuple()
|
||||
|
||||
if not i + 1 >= n:
|
||||
x2, y2 = points[i + 1].to_tuple()
|
||||
|
||||
else:
|
||||
x2, y2 = points[0].to_tuple()
|
||||
|
||||
A += (x1 * y2) - (x2 * y1)
|
||||
|
||||
A *= 0.5
|
||||
|
||||
return abs(A)
|
||||
|
||||
def main():
|
||||
|
||||
pipe_map = PipeMap(INPUT_FILE)
|
||||
|
||||
# Check around start
|
||||
next_directions = None
|
||||
current_pos: Point = pipe_map.start_position
|
||||
last_pos: Point = current_pos
|
||||
|
||||
boundaries: list[Point] = [current_pos]
|
||||
|
||||
for d in directions:
|
||||
new_pos = pipe_map.start_position.add(directions[d])
|
||||
|
||||
if pipe_map.in_bounds(new_pos):
|
||||
if char := pipe_directions[pipe_map.pipe_map[new_pos.x][new_pos.y]]:
|
||||
|
||||
# Check if this pipe connects to start somehow
|
||||
good = False
|
||||
for d2 in char:
|
||||
if new_pos.add(d2) == current_pos:
|
||||
good = True
|
||||
break
|
||||
|
||||
if good:
|
||||
current_pos = new_pos
|
||||
next_directions = char
|
||||
break
|
||||
|
||||
steps = 1 # Because current pos isn't at start rn
|
||||
while current_pos != pipe_map.start_position:
|
||||
|
||||
for direction in next_directions:
|
||||
potential_pos: Point = current_pos.add(direction)
|
||||
potential_directions: list[Point] = pipe_directions[pipe_map.pipe_map[potential_pos.x][potential_pos.y]]
|
||||
|
||||
if pipe_map.in_bounds(potential_pos) and potential_pos != last_pos and potential_directions:
|
||||
boundaries.append(current_pos)
|
||||
last_pos = current_pos
|
||||
current_pos = potential_pos
|
||||
next_directions = potential_directions
|
||||
steps += 1
|
||||
break
|
||||
|
||||
"""
|
||||
I did actually look at the internet for this one. I found 'how to find area of polygon'
|
||||
and came up with Pick's theorem & the Shoelace formula
|
||||
|
||||
So basically I find the area with the Shoelace formula (A) and then using Pick's theorem find the number
|
||||
of interior points (i) with
|
||||
|
||||
i = A - b/2 - 1
|
||||
|
||||
where b is boundary points
|
||||
"""
|
||||
|
||||
A = shoelace(boundaries)
|
||||
|
||||
print(f'Area: {A}')
|
||||
interior = A - (len(boundaries) / 2) + 1
|
||||
|
||||
print(f'Interior Points: {interior}')
|
||||
print(f'Loop finished, start found in {steps} steps')
|
||||
print(f'Critter is at {math.ceil(steps/2)}')
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,10 @@
|
||||
FF7FSF7F7F7F7F7F---7
|
||||
L|LJ||||||||||||F--J
|
||||
FL-7LJLJ||||||LJL-77
|
||||
F--JF--7||LJLJ7F7FJ-
|
||||
L---JF-JLJ.||-FJLJJ7
|
||||
|F|F-JF---7F7-L7L|7|
|
||||
|FFJF7L7F-JF7|JL---7
|
||||
7-L-JL7||F7|L7F-7F7|
|
||||
L.L7LFJ|||||FJL7||LJ
|
||||
L7JLJL-JLJLJL--JLJ.L
|
||||
@@ -0,0 +1,140 @@
|
||||
.......#.....#.....................#.............#.................#.........................#..............................................
|
||||
#.....................#.......#.................................................................................#.......#...................
|
||||
.......................................................................#.........................#..................................#.......
|
||||
................................................................#..............#..............................................#.............
|
||||
.........................................#............................................................#....................................#
|
||||
.................#..................................................#.......................................................................
|
||||
...........................#...............................................................................#................................
|
||||
....#.......#...........................................#..........................#.............................#..........................
|
||||
....................#.............#........#................................................................................................
|
||||
...................................................#...................................................#...................#................
|
||||
.........................#........................................#..................................................#......................
|
||||
......#..........#...........................................#...........#............#.....................................................
|
||||
......................................#..........................................#.........................#.....................#..........
|
||||
.#...................#..................................#.......................................#...........................................
|
||||
............#.................................#.....................#.......................................................................
|
||||
............................................................................................................................................
|
||||
..............................#.....................................................................................#..................#....
|
||||
....................................................................................#........#......#.......................................
|
||||
.........................#.........................#............#...........................................#...............................
|
||||
.#......#.....#.......................#.................#........................................................#.....#....................
|
||||
...........................................................................#.................................................#..............
|
||||
...............................................#.......................................#...............#..........................#.........
|
||||
......................#..................#..................................................................................................
|
||||
..........................................................................................................................#.................
|
||||
......#...........................#.........................................................#........................#......................
|
||||
..............................................................................................................................#.............
|
||||
..#.......................#.................#............................................................................................#..
|
||||
..................#....................................................#................#...................................................
|
||||
....................................................#.....#....................#............................................................
|
||||
...............................#............................................................................................................
|
||||
..............................................#...............#..........................................................#...........#......
|
||||
.#.........#........................#..................................................................#....................................
|
||||
..........................................................................#.......................#........................................#
|
||||
...................#......................................................................#.................................................
|
||||
.............................................................................................................................#..............
|
||||
.....#......................................................................................................................................
|
||||
........................................................#........................#..........................................................
|
||||
.............................#...............#.....................#.....#............#..................#..............................#...
|
||||
............................................................................................#......#...........#............................
|
||||
.........................#........#...................................................................................#.....................
|
||||
...........................................................................................................................................#
|
||||
.....................................................#.....#.................................................................#..............
|
||||
#.........................................................................................................#.......................#.........
|
||||
................#...........................................................#.....................#.........................................
|
||||
..............................#..............#...................................#.......#...........................#......................
|
||||
........#................#.........#............................#............................................#.............#.........#......
|
||||
............................................................................................................................................
|
||||
.......................................................#...............#.............................#...........................#..........
|
||||
.............#.................................#............................................................................................
|
||||
............................................................................................................................................
|
||||
..#.............................................................................#...........................................#...........#...
|
||||
............................................................................................................................................
|
||||
......................................#..........................................................#................#.........................
|
||||
............................#................#......#......................#...........#....................................................
|
||||
............................................................................................................................................
|
||||
....................................................................................................#................#..........#...........
|
||||
.#............#...................#...............................#........................................#.............................#..
|
||||
.........#...............................................................#..................................................................
|
||||
.......................#....................#........#...........................................#..........................................
|
||||
............................................................#.....................................................#.........................
|
||||
..............................#.......................................................................#...................#.......#.........
|
||||
............#.......................#...................#............................#......................................................
|
||||
...................................................#......................................#..............................................#..
|
||||
.#................#...................................................#........................#............................................
|
||||
......#....................................................................#................................#...............................
|
||||
...............................#....................................................................................#.......................
|
||||
.........................#.....................#......#.............................................#.................................#.....
|
||||
............................................................................................................................................
|
||||
...............#.....................#....................................................#.................................................
|
||||
..................................................................................................................#.........................
|
||||
....#......#.....................................#..............................#............................#............#.....#...........
|
||||
....................#.............................................#....................#.........#.......................................#..
|
||||
.........................................................#..............#.............................#.....................................
|
||||
............................#...........#...........................................................................#.......................
|
||||
............................................................................................................................................
|
||||
#..................................#...............................................................#..........#.............................
|
||||
.......#......................................................................................#.................................#.......#...
|
||||
.....................#....................#...............................#.....#......................................#....................
|
||||
................................#..........................#......#....................#..........................#.........................
|
||||
..............#...................................#........................................................................#...............#
|
||||
....#....................................................................................................#..................................
|
||||
.......................#....................................................................................................................
|
||||
......................................#................................#..................#.................................................
|
||||
.....................................................#............................................#...............................#.........
|
||||
............................................................................................................................................
|
||||
............................................................................................................................................
|
||||
....#.................#..................................#.........................#..........................#.............................
|
||||
.............#........................................................................................#..................#..................
|
||||
......................................#............................................................................#........................
|
||||
.........#....................................................#.........#............................................................#......
|
||||
.............................................................................................#..............................................
|
||||
.............................#...........#............................................................................#.....................
|
||||
#..................#................................................#....................#.......................................#.........#
|
||||
...................................................................................................#......#.................................
|
||||
...........#.............................................#...........................#......................................................
|
||||
....................................#.......................................................................................................
|
||||
..................................................#..........#.........#......................#.....................#.......................
|
||||
.#......#....................................#..............................................................#...............................
|
||||
.............................#.............................................#................................................................
|
||||
.......................#...............................................................................#....................#...............
|
||||
....................................................#.....................................#...........................................#.....
|
||||
................#.....................#..................#.................................................................................#
|
||||
...#.....#..........................................................#................#......................................................
|
||||
.............................................#...............#................................#......#......................................
|
||||
...............................#...............................................#............................................................
|
||||
.............................................................................................................................#.........#....
|
||||
.....................#................................................#.................................................#...................
|
||||
...............#.........................#.......................#..................#.......................................................
|
||||
.....#......................................................................................................#.......................#.......
|
||||
....................................#.................#.........................#..................#........................................
|
||||
........................................................................................................................................#...
|
||||
.........#..............#.....................................#........................................#.....................#..............
|
||||
...............................................#...................#........................................................................
|
||||
......................................#.............#..................................#.....#.......................#......................
|
||||
............#.....#...............................................................................#.........................................
|
||||
...#...................................................................................................................................#....
|
||||
.......................#.........................#..........................................................................................
|
||||
.........................................................#...........#.........................#........#..........#.............#..........
|
||||
............................#..............#....................#........................................................#..................
|
||||
.......#.................................................................#................#.................................................
|
||||
.................#..................................................................................#........................#...........#..
|
||||
...................................................#.......#................................................................................
|
||||
.........................................#......................................#......................................#....................
|
||||
....................................#...........................................................................#...........................
|
||||
..............................#.............................................................#...........#.......................#......#....
|
||||
.........#...............................................#..............#...................................................................
|
||||
........................#....................#.....................................#........................................................
|
||||
#...........................................................................................................................................
|
||||
............................#......................................................................#.......#................................
|
||||
......................................#.....................................................................................................
|
||||
.....#............#.........................................#..........................#..........................................#.........
|
||||
...........................................#......................#..............................................#..........................
|
||||
..............#..............................................................................#............................#.............#...
|
||||
..#......#...........................................#..............................#..................#.....#..............................
|
||||
....................#..........#.....#...............................#......................................................................
|
||||
............................................................................................................................................
|
||||
.................................................#..........................................................................................
|
||||
.............#..........#...............................#...............#.............#..........#.........#........#.......................
|
||||
............................................#................#.................#............................................................
|
||||
....................................#....................................................................................#.............#....
|
||||
@@ -0,0 +1,147 @@
|
||||
import math
|
||||
import copy
|
||||
INPUT_FILE = "test.text"
|
||||
|
||||
class Point:
|
||||
x: int
|
||||
y: int
|
||||
|
||||
def __init__(self, x: int , y: int):
|
||||
self.x = x
|
||||
self.y = y
|
||||
|
||||
def add(self, other):
|
||||
return Point(self.x + other.x, self.y + other.y)
|
||||
|
||||
def __add__(self, other):
|
||||
return Point(self.x + other.x, self.y + other.y)
|
||||
|
||||
def __sub__(self, other):
|
||||
return Point(self.x - other.x, self.y - other.x)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f'P({self.x}, {self.y})'
|
||||
|
||||
def __eq__(self, other) -> bool:
|
||||
return self.x == other.x and self.y == other.y
|
||||
|
||||
def _length(self) -> float:
|
||||
return math.sqrt(self.x ** 2 + self.y ** 2)
|
||||
|
||||
def normalise(self) -> None:
|
||||
self.x /= self._length()
|
||||
self.y /= self._length()
|
||||
|
||||
def distance(p1: Point, p2: Point) -> int:
|
||||
return math.sqrt((p2.x - p1.x) ** 2 + (p2.y - p1.y) ** 2)
|
||||
|
||||
def main():
|
||||
|
||||
with open(INPUT_FILE, 'r') as file:
|
||||
universe = file.readlines()
|
||||
|
||||
# Shave off the newlines
|
||||
for i in range(0, len(universe)):
|
||||
# print(universe[i])
|
||||
universe[i] = universe[i][:-1]
|
||||
# print(universe[i])
|
||||
|
||||
expanded_universe: list[str] = universe.copy()
|
||||
added_rows = 0
|
||||
# Expand it!
|
||||
for y in range(0, len(universe)):
|
||||
row: str = universe[y]
|
||||
|
||||
# If no galaxies found in row
|
||||
if row.find('#') == -1:
|
||||
expanded_universe.insert(y + added_rows, row)
|
||||
added_rows += 1
|
||||
|
||||
# for r in expanded_universe:
|
||||
# print(r)
|
||||
|
||||
# print()
|
||||
|
||||
row_n = len(expanded_universe)
|
||||
added_cols = 0
|
||||
for column_i in range(0, len(expanded_universe[0])):
|
||||
no_galaxy = True
|
||||
|
||||
for y in range(0, row_n):
|
||||
if expanded_universe[y][column_i + added_cols] == '#':
|
||||
no_galaxy = False
|
||||
break
|
||||
|
||||
if no_galaxy:
|
||||
for y in range(0, row_n):
|
||||
l = list(expanded_universe[y])
|
||||
l.insert(column_i + added_cols, '.')
|
||||
expanded_universe[y] = ''.join(l)
|
||||
added_cols += 1
|
||||
|
||||
|
||||
# for r in expanded_universe:
|
||||
# print(r)
|
||||
|
||||
# now find lengths or something
|
||||
|
||||
# oh but first find galaxies
|
||||
galaxies: list[Point] = []
|
||||
universe = expanded_universe
|
||||
n_y = len(universe)
|
||||
|
||||
for y in range(0, n_y):
|
||||
row = universe[y]
|
||||
|
||||
for x in range(0, len(row)):
|
||||
if row[x] == '#':
|
||||
galaxies.append(Point(x, y))
|
||||
|
||||
for p in galaxies:
|
||||
print(p)
|
||||
|
||||
# ok now find lengths or something
|
||||
total = 0
|
||||
g1_i = 0
|
||||
for g1 in galaxies:
|
||||
|
||||
# print(g1)
|
||||
|
||||
g2_i = 0
|
||||
for g2 in galaxies:
|
||||
steps = 0
|
||||
|
||||
t = copy.copy(g1)
|
||||
# Get steps
|
||||
while t != g2:
|
||||
if t.x < g2.x:
|
||||
t.x += 1
|
||||
steps += 1
|
||||
elif t.x > g2.x:
|
||||
t.x -= 1
|
||||
steps += 1
|
||||
if t.y < g2.y:
|
||||
t.y += 1
|
||||
steps += 1
|
||||
elif t.y > g2.y:
|
||||
t.y -= 1
|
||||
steps += 1
|
||||
|
||||
# if g1 == Point(5, 11):
|
||||
# print(f't {t} g2 {g2}')
|
||||
|
||||
total += steps
|
||||
# print(f'{steps} from g{g1} to g{g2}')
|
||||
g2_i += 1
|
||||
g1_i += 1
|
||||
|
||||
|
||||
|
||||
print(f'Sum is {total/2}')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,10 @@
|
||||
...#......
|
||||
.......#..
|
||||
#.........
|
||||
..........
|
||||
......#...
|
||||
.#........
|
||||
.........#
|
||||
..........
|
||||
.......#..
|
||||
#...#.....
|
||||
@@ -0,0 +1,140 @@
|
||||
.......#.....#.....................#.............#.................#.........................#..............................................
|
||||
#.....................#.......#.................................................................................#.......#...................
|
||||
.......................................................................#.........................#..................................#.......
|
||||
................................................................#..............#..............................................#.............
|
||||
.........................................#............................................................#....................................#
|
||||
.................#..................................................#.......................................................................
|
||||
...........................#...............................................................................#................................
|
||||
....#.......#...........................................#..........................#.............................#..........................
|
||||
....................#.............#........#................................................................................................
|
||||
...................................................#...................................................#...................#................
|
||||
.........................#........................................#..................................................#......................
|
||||
......#..........#...........................................#...........#............#.....................................................
|
||||
......................................#..........................................#.........................#.....................#..........
|
||||
.#...................#..................................#.......................................#...........................................
|
||||
............#.................................#.....................#.......................................................................
|
||||
............................................................................................................................................
|
||||
..............................#.....................................................................................#..................#....
|
||||
....................................................................................#........#......#.......................................
|
||||
.........................#.........................#............#...........................................#...............................
|
||||
.#......#.....#.......................#.................#........................................................#.....#....................
|
||||
...........................................................................#.................................................#..............
|
||||
...............................................#.......................................#...............#..........................#.........
|
||||
......................#..................#..................................................................................................
|
||||
..........................................................................................................................#.................
|
||||
......#...........................#.........................................................#........................#......................
|
||||
..............................................................................................................................#.............
|
||||
..#.......................#.................#............................................................................................#..
|
||||
..................#....................................................#................#...................................................
|
||||
....................................................#.....#....................#............................................................
|
||||
...............................#............................................................................................................
|
||||
..............................................#...............#..........................................................#...........#......
|
||||
.#.........#........................#..................................................................#....................................
|
||||
..........................................................................#.......................#........................................#
|
||||
...................#......................................................................#.................................................
|
||||
.............................................................................................................................#..............
|
||||
.....#......................................................................................................................................
|
||||
........................................................#........................#..........................................................
|
||||
.............................#...............#.....................#.....#............#..................#..............................#...
|
||||
............................................................................................#......#...........#............................
|
||||
.........................#........#...................................................................................#.....................
|
||||
...........................................................................................................................................#
|
||||
.....................................................#.....#.................................................................#..............
|
||||
#.........................................................................................................#.......................#.........
|
||||
................#...........................................................#.....................#.........................................
|
||||
..............................#..............#...................................#.......#...........................#......................
|
||||
........#................#.........#............................#............................................#.............#.........#......
|
||||
............................................................................................................................................
|
||||
.......................................................#...............#.............................#...........................#..........
|
||||
.............#.................................#............................................................................................
|
||||
............................................................................................................................................
|
||||
..#.............................................................................#...........................................#...........#...
|
||||
............................................................................................................................................
|
||||
......................................#..........................................................#................#.........................
|
||||
............................#................#......#......................#...........#....................................................
|
||||
............................................................................................................................................
|
||||
....................................................................................................#................#..........#...........
|
||||
.#............#...................#...............................#........................................#.............................#..
|
||||
.........#...............................................................#..................................................................
|
||||
.......................#....................#........#...........................................#..........................................
|
||||
............................................................#.....................................................#.........................
|
||||
..............................#.......................................................................#...................#.......#.........
|
||||
............#.......................#...................#............................#......................................................
|
||||
...................................................#......................................#..............................................#..
|
||||
.#................#...................................................#........................#............................................
|
||||
......#....................................................................#................................#...............................
|
||||
...............................#....................................................................................#.......................
|
||||
.........................#.....................#......#.............................................#.................................#.....
|
||||
............................................................................................................................................
|
||||
...............#.....................#....................................................#.................................................
|
||||
..................................................................................................................#.........................
|
||||
....#......#.....................................#..............................#............................#............#.....#...........
|
||||
....................#.............................................#....................#.........#.......................................#..
|
||||
.........................................................#..............#.............................#.....................................
|
||||
............................#...........#...........................................................................#.......................
|
||||
............................................................................................................................................
|
||||
#..................................#...............................................................#..........#.............................
|
||||
.......#......................................................................................#.................................#.......#...
|
||||
.....................#....................#...............................#.....#......................................#....................
|
||||
................................#..........................#......#....................#..........................#.........................
|
||||
..............#...................................#........................................................................#...............#
|
||||
....#....................................................................................................#..................................
|
||||
.......................#....................................................................................................................
|
||||
......................................#................................#..................#.................................................
|
||||
.....................................................#............................................#...............................#.........
|
||||
............................................................................................................................................
|
||||
............................................................................................................................................
|
||||
....#.................#..................................#.........................#..........................#.............................
|
||||
.............#........................................................................................#..................#..................
|
||||
......................................#............................................................................#........................
|
||||
.........#....................................................#.........#............................................................#......
|
||||
.............................................................................................#..............................................
|
||||
.............................#...........#............................................................................#.....................
|
||||
#..................#................................................#....................#.......................................#.........#
|
||||
...................................................................................................#......#.................................
|
||||
...........#.............................................#...........................#......................................................
|
||||
....................................#.......................................................................................................
|
||||
..................................................#..........#.........#......................#.....................#.......................
|
||||
.#......#....................................#..............................................................#...............................
|
||||
.............................#.............................................#................................................................
|
||||
.......................#...............................................................................#....................#...............
|
||||
....................................................#.....................................#...........................................#.....
|
||||
................#.....................#..................#.................................................................................#
|
||||
...#.....#..........................................................#................#......................................................
|
||||
.............................................#...............#................................#......#......................................
|
||||
...............................#...............................................#............................................................
|
||||
.............................................................................................................................#.........#....
|
||||
.....................#................................................#.................................................#...................
|
||||
...............#.........................#.......................#..................#.......................................................
|
||||
.....#......................................................................................................#.......................#.......
|
||||
....................................#.................#.........................#..................#........................................
|
||||
........................................................................................................................................#...
|
||||
.........#..............#.....................................#........................................#.....................#..............
|
||||
...............................................#...................#........................................................................
|
||||
......................................#.............#..................................#.....#.......................#......................
|
||||
............#.....#...............................................................................#.........................................
|
||||
...#...................................................................................................................................#....
|
||||
.......................#.........................#..........................................................................................
|
||||
.........................................................#...........#.........................#........#..........#.............#..........
|
||||
............................#..............#....................#........................................................#..................
|
||||
.......#.................................................................#................#.................................................
|
||||
.................#..................................................................................#........................#...........#..
|
||||
...................................................#.......#................................................................................
|
||||
.........................................#......................................#......................................#....................
|
||||
....................................#...........................................................................#...........................
|
||||
..............................#.............................................................#...........#.......................#......#....
|
||||
.........#...............................................#..............#...................................................................
|
||||
........................#....................#.....................................#........................................................
|
||||
#...........................................................................................................................................
|
||||
............................#......................................................................#.......#................................
|
||||
......................................#.....................................................................................................
|
||||
.....#............#.........................................#..........................#..........................................#.........
|
||||
...........................................#......................#..............................................#..........................
|
||||
..............#..............................................................................#............................#.............#...
|
||||
..#......#...........................................#..............................#..................#.....#..............................
|
||||
....................#..........#.....#...............................#......................................................................
|
||||
............................................................................................................................................
|
||||
.................................................#..........................................................................................
|
||||
.............#..........#...............................#...............#.............#..........#.........#........#.......................
|
||||
............................................#................#.................#............................................................
|
||||
....................................#....................................................................................#.............#....
|
||||
@@ -0,0 +1,116 @@
|
||||
import math
|
||||
INPUT_FILE = "input.text"
|
||||
|
||||
I = 1000000
|
||||
if I != 1:
|
||||
I -= 1
|
||||
|
||||
class Point:
|
||||
x: int
|
||||
y: int
|
||||
|
||||
def __init__(self, x: int , y: int):
|
||||
self.x = x
|
||||
self.y = y
|
||||
|
||||
def add(self, other):
|
||||
return Point(self.x + other.x, self.y + other.y)
|
||||
|
||||
def __add__(self, other):
|
||||
return Point(self.x + other.x, self.y + other.y)
|
||||
|
||||
def __sub__(self, other):
|
||||
return Point(self.x - other.x, self.y - other.x)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f'P({self.x}, {self.y})'
|
||||
|
||||
def __eq__(self, other) -> bool:
|
||||
return self.x == other.x and self.y == other.y
|
||||
|
||||
def _length(self) -> float:
|
||||
return math.sqrt(self.x ** 2 + self.y ** 2)
|
||||
|
||||
def normalise(self) -> None:
|
||||
self.x /= self._length()
|
||||
self.y /= self._length()
|
||||
|
||||
def _abs(self) -> None:
|
||||
self.x = abs(self.x)
|
||||
self.y = abs(self.y)
|
||||
|
||||
def main():
|
||||
|
||||
with open(INPUT_FILE, 'r') as file:
|
||||
universe = file.readlines()
|
||||
|
||||
# Shave off the newlines
|
||||
for i in range(0, len(universe)):
|
||||
universe[i] = universe[i][:-1]
|
||||
|
||||
# oh but first find galaxies
|
||||
galaxies: list[Point] = []
|
||||
n_y = len(universe)
|
||||
|
||||
for y in range(0, n_y):
|
||||
row = universe[y]
|
||||
|
||||
for x in range(0, len(row)):
|
||||
if row[x] == '#':
|
||||
galaxies.append(Point(x, y))
|
||||
|
||||
# Check for expansion (y direction)
|
||||
expansions = 0
|
||||
for y in range(0, len(universe)):
|
||||
row: str = universe[y]
|
||||
|
||||
if row.find('#') == -1:
|
||||
for g in galaxies:
|
||||
if g.y > y + (expansions * I):
|
||||
g.y += I
|
||||
expansions += 1
|
||||
|
||||
# Check for expansions (x direction)
|
||||
expansions = 0
|
||||
for x in range(0, len(universe[0])):
|
||||
|
||||
no_galaxy = True
|
||||
|
||||
for y in range(0, len(universe)):
|
||||
if universe[y][x] == '#':
|
||||
no_galaxy = False
|
||||
break
|
||||
|
||||
if no_galaxy:
|
||||
for g in galaxies:
|
||||
if g.x > x + (expansions * I):
|
||||
g.x += I
|
||||
expansions += 1
|
||||
|
||||
# ok now find lengths or something
|
||||
total = 0
|
||||
for g1 in galaxies:
|
||||
for g2 in galaxies:
|
||||
|
||||
if g2.y > g1.y:
|
||||
dy = g2.y - g1.y
|
||||
else:
|
||||
dy = g1.y - g2.y
|
||||
|
||||
if g2.x > g1.x:
|
||||
dx = g2.x - g1.x
|
||||
else:
|
||||
dx = g1.x - g2.x
|
||||
|
||||
total += dx + dy
|
||||
|
||||
|
||||
|
||||
print(f'Sum is {int(total/2)}')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,10 @@
|
||||
...#......
|
||||
.......#..
|
||||
#.........
|
||||
..........
|
||||
......#...
|
||||
.#........
|
||||
.........#
|
||||
..........
|
||||
.......#..
|
||||
#...#.....
|
||||
@@ -0,0 +1,25 @@
|
||||
INPUT_FILE = "test.text"
|
||||
|
||||
|
||||
def main():
|
||||
with open(INPUT_FILE, 'r') as file:
|
||||
data: list[str] = file.readlines()
|
||||
|
||||
for line in data:
|
||||
record, groups = line.split()
|
||||
|
||||
groups: list[int] = [int(g) for g in groups.split(',')]
|
||||
|
||||
# for group in groups:
|
||||
|
||||
# # if '#' * group in record:
|
||||
# # groups.remove(group)
|
||||
# # record = record.replace('#' * group, '')
|
||||
|
||||
print(f'{record} {groups}')
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,6 @@
|
||||
???.### 1,1,3
|
||||
.??..??...?##. 1,1,3
|
||||
?#?#?#?#?#?#?#? 1,3,1,6
|
||||
????.#...#... 4,1,1
|
||||
????.######..#####. 1,6,5
|
||||
?###???????? 3,2,1
|
||||
@@ -0,0 +1,100 @@
|
||||
Game 1: 7 green, 14 red, 5 blue; 8 red, 4 green; 6 green, 18 red, 9 blue
|
||||
Game 2: 3 blue, 15 red, 5 green; 1 blue, 14 red, 5 green; 11 red; 4 green, 1 blue, 3 red; 4 green, 1 blue; 10 red, 1 green
|
||||
Game 3: 11 green, 3 red; 4 green, 15 blue; 14 blue, 2 red, 10 green; 1 red, 3 green, 10 blue
|
||||
Game 4: 1 green, 6 red, 11 blue; 3 blue, 12 red; 1 green, 14 red, 8 blue; 3 blue, 7 red; 8 blue, 5 red; 7 red, 1 green
|
||||
Game 5: 14 green, 3 red, 3 blue; 2 red, 1 green, 1 blue; 8 green, 3 blue, 1 red; 15 green, 8 blue, 1 red
|
||||
Game 6: 4 blue, 8 green, 5 red; 9 green, 10 blue, 7 red; 11 blue, 10 red, 7 green; 8 red, 6 blue, 9 green
|
||||
Game 7: 5 green, 11 blue, 9 red; 2 green, 6 red, 12 blue; 8 red, 4 blue, 3 green; 7 green, 8 red, 9 blue; 8 green, 5 red
|
||||
Game 8: 7 red, 12 green; 9 blue, 15 red, 8 green; 3 blue, 11 green, 6 red; 8 blue, 12 red, 5 green
|
||||
Game 9: 8 blue, 6 red, 7 green; 2 blue, 3 red, 10 green; 10 blue, 6 red, 7 green; 11 red, 7 blue, 5 green; 10 red, 11 green
|
||||
Game 10: 5 red, 14 green; 2 red, 6 blue, 15 green; 3 red, 4 blue, 7 green; 6 red, 1 green, 4 blue
|
||||
Game 11: 4 blue, 11 green, 6 red; 12 red, 1 blue, 5 green; 7 red, 1 blue; 11 red, 2 green, 3 blue; 2 blue, 6 red, 7 green
|
||||
Game 12: 1 green, 8 red, 3 blue; 3 green, 2 red; 2 blue, 5 red, 1 green
|
||||
Game 13: 2 green; 8 green, 1 blue, 12 red; 1 blue, 14 green, 2 red; 1 blue, 6 red, 6 green; 7 green, 10 red
|
||||
Game 14: 9 green, 4 red, 1 blue; 5 red, 2 green; 17 green, 1 red; 6 red, 10 green; 4 green, 3 red, 1 blue
|
||||
Game 15: 7 green, 13 blue, 4 red; 1 blue, 7 green, 9 red; 13 blue, 13 red, 7 green; 8 red, 9 blue; 9 red, 14 blue; 2 green, 7 red, 9 blue
|
||||
Game 16: 6 green, 18 blue, 6 red; 5 green, 2 blue, 2 red; 6 green, 2 red, 17 blue; 2 red, 2 green, 8 blue; 2 red, 10 blue
|
||||
Game 17: 17 red, 8 green; 4 blue, 10 green, 3 red; 8 red, 5 green, 3 blue; 12 green, 3 red
|
||||
Game 18: 6 red, 1 green, 14 blue; 1 red, 10 blue, 1 green; 1 red, 17 blue, 1 green; 5 red, 1 blue; 5 red, 18 blue; 2 red, 3 blue
|
||||
Game 19: 5 blue, 12 red; 6 blue, 3 red, 6 green; 8 blue, 6 red, 6 green; 8 green, 8 blue, 2 red; 4 green, 6 red, 6 blue; 1 green, 3 red, 13 blue
|
||||
Game 20: 7 green, 2 blue; 4 blue, 12 red, 2 green; 7 red, 2 green, 6 blue
|
||||
Game 21: 8 green, 1 red; 1 red, 9 green; 1 red, 6 green, 4 blue; 1 red, 3 green, 5 blue; 2 red, 6 green
|
||||
Game 22: 11 green, 12 red, 5 blue; 5 blue, 9 red, 11 green; 8 green, 4 red, 5 blue; 7 green, 1 blue, 1 red
|
||||
Game 23: 11 blue, 9 red, 5 green; 3 green, 3 blue; 11 blue, 9 red, 1 green; 2 red, 7 green; 4 green, 3 blue, 1 red; 5 green, 4 blue
|
||||
Game 24: 1 green, 4 blue, 9 red; 1 green, 2 blue, 11 red; 1 green, 13 red; 1 green, 2 blue, 3 red
|
||||
Game 25: 1 red, 7 green, 4 blue; 2 red, 1 green, 3 blue; 10 blue, 1 red; 7 blue, 2 red, 6 green; 7 green, 15 blue, 2 red; 14 green, 13 blue
|
||||
Game 26: 5 red, 2 blue; 9 red, 2 green, 12 blue; 15 red, 1 green, 5 blue; 1 green, 16 blue, 17 red
|
||||
Game 27: 2 green, 4 red; 4 red, 1 green; 1 blue, 3 red; 2 red
|
||||
Game 28: 3 green; 8 green, 9 red; 9 red, 3 blue, 10 green; 16 green, 4 blue, 4 red
|
||||
Game 29: 3 green, 1 red, 7 blue; 5 blue, 5 green, 2 red; 5 blue, 6 green, 2 red; 2 green, 2 red, 4 blue; 1 green, 3 red, 8 blue
|
||||
Game 30: 7 red, 3 green, 7 blue; 3 green, 10 red; 5 red, 5 blue, 1 green; 9 blue, 2 green, 7 red; 1 red, 10 blue; 10 blue, 2 red, 4 green
|
||||
Game 31: 9 green, 1 red; 9 blue, 6 red, 9 green; 17 blue, 4 green, 10 red; 19 blue, 11 green
|
||||
Game 32: 1 red, 1 blue, 6 green; 10 blue, 4 green; 1 red, 5 blue; 9 blue, 3 green
|
||||
Game 33: 4 red; 3 red; 2 red, 1 green, 1 blue; 1 green; 1 blue, 1 red
|
||||
Game 34: 2 green, 9 blue, 1 red; 5 blue, 7 green, 1 red; 2 green, 1 red, 16 blue; 1 blue, 5 green, 6 red
|
||||
Game 35: 11 red, 10 blue; 2 blue, 12 green, 12 red; 3 green, 6 red, 6 blue; 14 blue, 10 green, 1 red
|
||||
Game 36: 2 blue, 3 red, 15 green; 2 blue, 6 green, 2 red; 14 blue, 4 red, 7 green; 13 blue, 12 green, 2 red
|
||||
Game 37: 6 green, 14 blue, 7 red; 7 blue, 2 red, 6 green; 1 blue, 2 green, 6 red
|
||||
Game 38: 2 green, 15 red, 2 blue; 14 red, 1 blue; 14 red, 2 green, 12 blue
|
||||
Game 39: 5 green, 1 blue, 10 red; 4 red, 3 blue, 7 green; 2 red, 2 green, 4 blue; 10 blue, 5 green
|
||||
Game 40: 7 red, 10 green, 2 blue; 7 green, 3 red, 2 blue; 10 red, 9 blue, 7 green; 3 green, 5 blue, 10 red
|
||||
Game 41: 5 blue, 2 green, 11 red; 2 green, 18 red, 3 blue; 8 green, 10 red, 1 blue; 16 red, 13 green; 17 green, 2 blue, 17 red; 1 green, 1 blue, 9 red
|
||||
Game 42: 5 red, 2 green, 1 blue; 6 red, 2 blue; 3 red, 1 blue; 9 red, 5 blue; 1 green, 8 red, 1 blue
|
||||
Game 43: 1 red, 2 green; 12 red, 4 green, 5 blue; 4 blue, 9 red; 4 green, 10 red, 2 blue
|
||||
Game 44: 2 blue, 9 green, 3 red; 6 red, 4 blue, 4 green; 3 red, 4 blue; 5 red, 2 green, 1 blue; 4 blue, 1 green; 8 green, 1 red, 4 blue
|
||||
Game 45: 7 blue, 1 red; 2 red, 4 green, 9 blue; 3 red, 15 blue; 4 red, 4 green, 12 blue; 1 red, 18 blue
|
||||
Game 46: 4 red, 14 blue, 11 green; 5 blue, 6 red, 17 green; 10 red, 8 green, 17 blue; 7 red, 10 blue, 19 green
|
||||
Game 47: 7 blue, 3 red; 7 blue, 1 green, 2 red; 2 red, 6 blue; 1 green, 9 blue, 2 red; 3 red; 2 green, 1 blue
|
||||
Game 48: 12 red, 6 blue, 6 green; 9 green, 19 red, 1 blue; 2 blue, 12 green, 8 red
|
||||
Game 49: 1 green, 11 red, 11 blue; 10 red, 10 blue, 11 green; 4 red, 19 green, 6 blue; 11 blue, 19 green, 13 red; 9 green, 9 blue
|
||||
Game 50: 1 blue, 12 green, 4 red; 1 blue, 18 green, 1 red; 1 blue, 12 green, 3 red; 1 blue, 4 green
|
||||
Game 51: 10 red, 5 blue, 1 green; 10 red, 4 blue; 6 red, 8 blue
|
||||
Game 52: 1 blue; 5 green, 9 red; 2 blue, 1 green, 11 red; 2 blue, 13 red, 5 green; 6 green, 1 blue, 9 red
|
||||
Game 53: 8 blue, 15 red; 2 green, 4 red, 12 blue; 6 blue, 1 green, 15 red; 20 red, 12 blue; 6 red, 1 green, 2 blue
|
||||
Game 54: 5 red, 16 blue; 5 green, 3 red, 17 blue; 5 red, 3 blue, 5 green; 4 green, 6 blue, 9 red; 2 blue, 6 green, 2 red
|
||||
Game 55: 1 blue, 1 red; 1 green, 1 red, 3 blue; 4 blue, 1 green, 1 red; 5 blue; 2 blue
|
||||
Game 56: 4 red, 4 blue; 7 blue, 11 red; 1 red, 2 green, 9 blue; 4 blue, 16 red, 2 green; 1 red; 2 green, 5 blue, 1 red
|
||||
Game 57: 1 green, 8 blue; 1 red; 10 blue, 5 green; 3 blue, 4 green; 11 blue, 1 red; 4 blue, 3 green, 1 red
|
||||
Game 58: 8 green, 5 blue; 9 blue, 8 red, 5 green; 6 red, 6 blue, 9 green; 1 green, 5 blue, 2 red; 3 red, 3 green, 2 blue; 2 green, 1 red, 1 blue
|
||||
Game 59: 15 red, 4 blue, 8 green; 12 red, 6 green; 3 red
|
||||
Game 60: 14 blue, 11 red; 12 blue, 6 red; 11 blue, 6 red; 5 red, 13 blue; 15 blue; 1 green, 1 blue, 16 red
|
||||
Game 61: 5 red, 1 green; 4 red, 9 green; 1 blue, 6 green, 14 red
|
||||
Game 62: 19 red, 1 green; 1 blue, 3 red; 15 red, 1 blue; 1 blue, 3 red; 5 red, 1 green, 1 blue
|
||||
Game 63: 1 red, 3 green, 10 blue; 2 green, 1 red, 14 blue; 1 green, 5 blue, 1 red; 6 blue, 4 green, 1 red
|
||||
Game 64: 5 red, 2 green; 5 green, 2 red, 2 blue; 3 red, 3 blue, 1 green; 3 blue, 3 green, 3 red; 1 green, 3 red
|
||||
Game 65: 13 red, 2 green, 3 blue; 1 red, 2 blue, 1 green; 1 blue; 2 green, 1 red
|
||||
Game 66: 7 red, 12 blue, 6 green; 2 red, 5 green, 11 blue; 3 green, 2 blue, 2 red; 9 blue, 1 red, 2 green
|
||||
Game 67: 4 red, 3 green, 7 blue; 8 blue, 3 red; 2 red; 9 blue, 5 red, 2 green
|
||||
Game 68: 12 blue; 10 green, 5 blue; 8 blue; 9 blue, 7 red, 18 green; 5 red, 12 blue, 8 green; 8 green, 13 red, 10 blue
|
||||
Game 69: 1 green, 1 red; 2 red, 1 green, 3 blue; 1 red, 1 green, 4 blue; 1 green, 8 red
|
||||
Game 70: 12 green, 1 blue, 4 red; 8 green, 1 red; 1 blue, 8 green; 2 green, 3 red; 5 green, 4 red; 2 blue, 12 green, 1 red
|
||||
Game 71: 10 blue, 4 red, 14 green; 6 green, 7 red, 8 blue; 1 red, 1 blue, 13 green; 10 red, 6 blue, 3 green; 8 blue, 7 green, 4 red
|
||||
Game 72: 1 green; 1 blue, 12 green, 14 red; 3 blue, 7 green, 8 red; 12 red, 18 green; 13 green, 11 red, 1 blue; 2 blue, 6 green, 6 red
|
||||
Game 73: 17 red, 3 green, 15 blue; 15 blue, 2 red; 15 red, 7 blue, 4 green; 9 blue, 1 green, 18 red
|
||||
Game 74: 10 red, 2 blue; 1 blue, 7 red; 5 blue, 2 green, 2 red; 3 blue, 15 red, 3 green; 4 blue, 3 green, 13 red
|
||||
Game 75: 6 blue, 10 red; 2 green, 2 blue, 10 red; 10 green, 1 blue, 10 red; 4 blue, 6 red, 11 green
|
||||
Game 76: 10 blue, 1 red, 2 green; 6 blue, 2 green, 10 red; 3 red, 15 green, 1 blue
|
||||
Game 77: 5 green, 1 red; 2 blue, 1 green; 13 green, 2 red, 5 blue; 12 green, 1 blue, 2 red; 3 blue, 2 green, 2 red
|
||||
Game 78: 1 green, 16 red; 6 red, 1 blue, 1 green; 13 red; 12 red, 3 green; 1 blue, 7 red
|
||||
Game 79: 3 green, 7 blue; 1 red, 8 blue, 5 green; 1 red, 6 green, 7 blue; 11 green, 1 red, 7 blue; 1 blue
|
||||
Game 80: 3 green, 13 red, 8 blue; 17 red, 9 blue; 7 blue, 1 green, 2 red; 8 red, 6 blue, 3 green; 1 red, 2 blue; 2 green, 4 blue, 10 red
|
||||
Game 81: 3 red, 1 green, 7 blue; 2 green, 2 blue, 3 red; 3 red, 1 blue, 7 green; 6 green, 12 blue
|
||||
Game 82: 11 red, 3 green, 2 blue; 3 red, 1 green, 1 blue; 16 red, 1 green
|
||||
Game 83: 8 green, 3 blue, 2 red; 1 blue, 13 green, 6 red; 4 blue, 5 red, 1 green; 12 green, 4 red, 12 blue; 17 green, 7 blue, 3 red
|
||||
Game 84: 2 blue, 13 red, 5 green; 3 green, 3 blue, 19 red; 2 red, 11 green, 5 blue; 3 green, 3 blue, 15 red; 7 green, 4 blue, 11 red; 1 red, 10 green
|
||||
Game 85: 1 red, 3 blue, 4 green; 2 red, 11 green, 2 blue; 2 blue, 7 green, 1 red
|
||||
Game 86: 3 blue, 4 green, 8 red; 4 green, 2 red; 9 red, 4 blue, 1 green; 18 red, 1 blue
|
||||
Game 87: 3 red, 14 blue, 1 green; 10 blue, 1 green; 1 green, 4 red, 14 blue; 8 blue, 7 green, 4 red; 2 green, 7 red, 7 blue; 2 green, 10 blue
|
||||
Game 88: 12 green, 6 red; 6 red, 3 blue, 2 green; 4 red, 4 blue, 9 green; 3 red, 4 green, 8 blue; 1 blue, 3 red
|
||||
Game 89: 3 green, 3 red, 2 blue; 3 red, 2 green, 1 blue; 6 green, 4 blue, 12 red; 13 red, 14 blue, 1 green; 5 red; 10 red, 8 blue, 7 green
|
||||
Game 90: 7 green, 10 blue; 6 green, 1 red, 2 blue; 6 blue; 5 green, 9 blue, 1 red; 10 blue, 1 red, 6 green
|
||||
Game 91: 6 red, 2 blue; 3 blue, 3 red, 1 green; 19 blue, 7 red
|
||||
Game 92: 9 green, 3 blue; 1 red, 5 green; 13 green, 3 blue, 2 red; 1 red, 3 blue, 7 green
|
||||
Game 93: 11 red, 3 green, 11 blue; 7 green, 3 red, 10 blue; 11 green, 4 blue, 8 red; 14 green, 8 blue
|
||||
Game 94: 7 blue; 1 green, 11 blue, 2 red; 1 green, 1 red, 19 blue; 7 green, 2 red, 10 blue
|
||||
Game 95: 15 blue, 1 red, 9 green; 5 green, 1 red, 4 blue; 6 green, 17 blue; 9 blue, 11 green; 10 blue, 9 green; 9 blue, 7 green
|
||||
Game 96: 7 red, 13 blue; 6 blue, 15 red, 3 green; 1 green, 1 red, 1 blue; 9 red, 2 green, 8 blue; 5 green, 8 red, 1 blue; 6 blue, 3 green, 13 red
|
||||
Game 97: 19 blue, 10 red, 4 green; 8 red, 17 blue; 8 blue
|
||||
Game 98: 2 blue, 2 red, 4 green; 5 green, 3 blue, 2 red; 5 green, 15 blue; 15 blue, 5 green, 1 red
|
||||
Game 99: 1 blue, 2 green, 8 red; 1 blue, 7 red, 1 green; 11 red, 2 green; 1 red, 1 blue
|
||||
Game 100: 8 green; 2 red, 20 green; 12 green, 1 red, 1 blue; 4 red, 1 blue; 1 blue, 6 red
|
||||
@@ -0,0 +1,54 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
file, _ := os.Open("./input.text")
|
||||
defer file.Close()
|
||||
|
||||
scanner := bufio.NewScanner(file)
|
||||
|
||||
sum := 0
|
||||
|
||||
for scanner.Scan() {
|
||||
line := strings.Split(scanner.Text(), ":")
|
||||
|
||||
game_num, _ := strconv.Atoi(strings.Split(line[0], " ")[1])
|
||||
|
||||
draws := strings.Split(line[1], ";")
|
||||
|
||||
add := true
|
||||
|
||||
for _, draw := range draws {
|
||||
|
||||
cubes := strings.Split(draw, ",")
|
||||
for _, cube := range cubes {
|
||||
v := strings.Fields(cube)
|
||||
value, _ := strconv.Atoi(v[0])
|
||||
color := v[1]
|
||||
|
||||
if color == "red" && value > 12 {
|
||||
add = false
|
||||
}
|
||||
if color == "green" && value > 13 {
|
||||
add = false
|
||||
}
|
||||
if color == "blue" && value > 14 {
|
||||
add = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if add {
|
||||
sum += game_num
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Println("Sum of games with possible # of cubes:", sum)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
|
||||
Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
|
||||
Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
|
||||
Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
|
||||
Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green
|
||||
@@ -0,0 +1,100 @@
|
||||
Game 1: 7 green, 14 red, 5 blue; 8 red, 4 green; 6 green, 18 red, 9 blue
|
||||
Game 2: 3 blue, 15 red, 5 green; 1 blue, 14 red, 5 green; 11 red; 4 green, 1 blue, 3 red; 4 green, 1 blue; 10 red, 1 green
|
||||
Game 3: 11 green, 3 red; 4 green, 15 blue; 14 blue, 2 red, 10 green; 1 red, 3 green, 10 blue
|
||||
Game 4: 1 green, 6 red, 11 blue; 3 blue, 12 red; 1 green, 14 red, 8 blue; 3 blue, 7 red; 8 blue, 5 red; 7 red, 1 green
|
||||
Game 5: 14 green, 3 red, 3 blue; 2 red, 1 green, 1 blue; 8 green, 3 blue, 1 red; 15 green, 8 blue, 1 red
|
||||
Game 6: 4 blue, 8 green, 5 red; 9 green, 10 blue, 7 red; 11 blue, 10 red, 7 green; 8 red, 6 blue, 9 green
|
||||
Game 7: 5 green, 11 blue, 9 red; 2 green, 6 red, 12 blue; 8 red, 4 blue, 3 green; 7 green, 8 red, 9 blue; 8 green, 5 red
|
||||
Game 8: 7 red, 12 green; 9 blue, 15 red, 8 green; 3 blue, 11 green, 6 red; 8 blue, 12 red, 5 green
|
||||
Game 9: 8 blue, 6 red, 7 green; 2 blue, 3 red, 10 green; 10 blue, 6 red, 7 green; 11 red, 7 blue, 5 green; 10 red, 11 green
|
||||
Game 10: 5 red, 14 green; 2 red, 6 blue, 15 green; 3 red, 4 blue, 7 green; 6 red, 1 green, 4 blue
|
||||
Game 11: 4 blue, 11 green, 6 red; 12 red, 1 blue, 5 green; 7 red, 1 blue; 11 red, 2 green, 3 blue; 2 blue, 6 red, 7 green
|
||||
Game 12: 1 green, 8 red, 3 blue; 3 green, 2 red; 2 blue, 5 red, 1 green
|
||||
Game 13: 2 green; 8 green, 1 blue, 12 red; 1 blue, 14 green, 2 red; 1 blue, 6 red, 6 green; 7 green, 10 red
|
||||
Game 14: 9 green, 4 red, 1 blue; 5 red, 2 green; 17 green, 1 red; 6 red, 10 green; 4 green, 3 red, 1 blue
|
||||
Game 15: 7 green, 13 blue, 4 red; 1 blue, 7 green, 9 red; 13 blue, 13 red, 7 green; 8 red, 9 blue; 9 red, 14 blue; 2 green, 7 red, 9 blue
|
||||
Game 16: 6 green, 18 blue, 6 red; 5 green, 2 blue, 2 red; 6 green, 2 red, 17 blue; 2 red, 2 green, 8 blue; 2 red, 10 blue
|
||||
Game 17: 17 red, 8 green; 4 blue, 10 green, 3 red; 8 red, 5 green, 3 blue; 12 green, 3 red
|
||||
Game 18: 6 red, 1 green, 14 blue; 1 red, 10 blue, 1 green; 1 red, 17 blue, 1 green; 5 red, 1 blue; 5 red, 18 blue; 2 red, 3 blue
|
||||
Game 19: 5 blue, 12 red; 6 blue, 3 red, 6 green; 8 blue, 6 red, 6 green; 8 green, 8 blue, 2 red; 4 green, 6 red, 6 blue; 1 green, 3 red, 13 blue
|
||||
Game 20: 7 green, 2 blue; 4 blue, 12 red, 2 green; 7 red, 2 green, 6 blue
|
||||
Game 21: 8 green, 1 red; 1 red, 9 green; 1 red, 6 green, 4 blue; 1 red, 3 green, 5 blue; 2 red, 6 green
|
||||
Game 22: 11 green, 12 red, 5 blue; 5 blue, 9 red, 11 green; 8 green, 4 red, 5 blue; 7 green, 1 blue, 1 red
|
||||
Game 23: 11 blue, 9 red, 5 green; 3 green, 3 blue; 11 blue, 9 red, 1 green; 2 red, 7 green; 4 green, 3 blue, 1 red; 5 green, 4 blue
|
||||
Game 24: 1 green, 4 blue, 9 red; 1 green, 2 blue, 11 red; 1 green, 13 red; 1 green, 2 blue, 3 red
|
||||
Game 25: 1 red, 7 green, 4 blue; 2 red, 1 green, 3 blue; 10 blue, 1 red; 7 blue, 2 red, 6 green; 7 green, 15 blue, 2 red; 14 green, 13 blue
|
||||
Game 26: 5 red, 2 blue; 9 red, 2 green, 12 blue; 15 red, 1 green, 5 blue; 1 green, 16 blue, 17 red
|
||||
Game 27: 2 green, 4 red; 4 red, 1 green; 1 blue, 3 red; 2 red
|
||||
Game 28: 3 green; 8 green, 9 red; 9 red, 3 blue, 10 green; 16 green, 4 blue, 4 red
|
||||
Game 29: 3 green, 1 red, 7 blue; 5 blue, 5 green, 2 red; 5 blue, 6 green, 2 red; 2 green, 2 red, 4 blue; 1 green, 3 red, 8 blue
|
||||
Game 30: 7 red, 3 green, 7 blue; 3 green, 10 red; 5 red, 5 blue, 1 green; 9 blue, 2 green, 7 red; 1 red, 10 blue; 10 blue, 2 red, 4 green
|
||||
Game 31: 9 green, 1 red; 9 blue, 6 red, 9 green; 17 blue, 4 green, 10 red; 19 blue, 11 green
|
||||
Game 32: 1 red, 1 blue, 6 green; 10 blue, 4 green; 1 red, 5 blue; 9 blue, 3 green
|
||||
Game 33: 4 red; 3 red; 2 red, 1 green, 1 blue; 1 green; 1 blue, 1 red
|
||||
Game 34: 2 green, 9 blue, 1 red; 5 blue, 7 green, 1 red; 2 green, 1 red, 16 blue; 1 blue, 5 green, 6 red
|
||||
Game 35: 11 red, 10 blue; 2 blue, 12 green, 12 red; 3 green, 6 red, 6 blue; 14 blue, 10 green, 1 red
|
||||
Game 36: 2 blue, 3 red, 15 green; 2 blue, 6 green, 2 red; 14 blue, 4 red, 7 green; 13 blue, 12 green, 2 red
|
||||
Game 37: 6 green, 14 blue, 7 red; 7 blue, 2 red, 6 green; 1 blue, 2 green, 6 red
|
||||
Game 38: 2 green, 15 red, 2 blue; 14 red, 1 blue; 14 red, 2 green, 12 blue
|
||||
Game 39: 5 green, 1 blue, 10 red; 4 red, 3 blue, 7 green; 2 red, 2 green, 4 blue; 10 blue, 5 green
|
||||
Game 40: 7 red, 10 green, 2 blue; 7 green, 3 red, 2 blue; 10 red, 9 blue, 7 green; 3 green, 5 blue, 10 red
|
||||
Game 41: 5 blue, 2 green, 11 red; 2 green, 18 red, 3 blue; 8 green, 10 red, 1 blue; 16 red, 13 green; 17 green, 2 blue, 17 red; 1 green, 1 blue, 9 red
|
||||
Game 42: 5 red, 2 green, 1 blue; 6 red, 2 blue; 3 red, 1 blue; 9 red, 5 blue; 1 green, 8 red, 1 blue
|
||||
Game 43: 1 red, 2 green; 12 red, 4 green, 5 blue; 4 blue, 9 red; 4 green, 10 red, 2 blue
|
||||
Game 44: 2 blue, 9 green, 3 red; 6 red, 4 blue, 4 green; 3 red, 4 blue; 5 red, 2 green, 1 blue; 4 blue, 1 green; 8 green, 1 red, 4 blue
|
||||
Game 45: 7 blue, 1 red; 2 red, 4 green, 9 blue; 3 red, 15 blue; 4 red, 4 green, 12 blue; 1 red, 18 blue
|
||||
Game 46: 4 red, 14 blue, 11 green; 5 blue, 6 red, 17 green; 10 red, 8 green, 17 blue; 7 red, 10 blue, 19 green
|
||||
Game 47: 7 blue, 3 red; 7 blue, 1 green, 2 red; 2 red, 6 blue; 1 green, 9 blue, 2 red; 3 red; 2 green, 1 blue
|
||||
Game 48: 12 red, 6 blue, 6 green; 9 green, 19 red, 1 blue; 2 blue, 12 green, 8 red
|
||||
Game 49: 1 green, 11 red, 11 blue; 10 red, 10 blue, 11 green; 4 red, 19 green, 6 blue; 11 blue, 19 green, 13 red; 9 green, 9 blue
|
||||
Game 50: 1 blue, 12 green, 4 red; 1 blue, 18 green, 1 red; 1 blue, 12 green, 3 red; 1 blue, 4 green
|
||||
Game 51: 10 red, 5 blue, 1 green; 10 red, 4 blue; 6 red, 8 blue
|
||||
Game 52: 1 blue; 5 green, 9 red; 2 blue, 1 green, 11 red; 2 blue, 13 red, 5 green; 6 green, 1 blue, 9 red
|
||||
Game 53: 8 blue, 15 red; 2 green, 4 red, 12 blue; 6 blue, 1 green, 15 red; 20 red, 12 blue; 6 red, 1 green, 2 blue
|
||||
Game 54: 5 red, 16 blue; 5 green, 3 red, 17 blue; 5 red, 3 blue, 5 green; 4 green, 6 blue, 9 red; 2 blue, 6 green, 2 red
|
||||
Game 55: 1 blue, 1 red; 1 green, 1 red, 3 blue; 4 blue, 1 green, 1 red; 5 blue; 2 blue
|
||||
Game 56: 4 red, 4 blue; 7 blue, 11 red; 1 red, 2 green, 9 blue; 4 blue, 16 red, 2 green; 1 red; 2 green, 5 blue, 1 red
|
||||
Game 57: 1 green, 8 blue; 1 red; 10 blue, 5 green; 3 blue, 4 green; 11 blue, 1 red; 4 blue, 3 green, 1 red
|
||||
Game 58: 8 green, 5 blue; 9 blue, 8 red, 5 green; 6 red, 6 blue, 9 green; 1 green, 5 blue, 2 red; 3 red, 3 green, 2 blue; 2 green, 1 red, 1 blue
|
||||
Game 59: 15 red, 4 blue, 8 green; 12 red, 6 green; 3 red
|
||||
Game 60: 14 blue, 11 red; 12 blue, 6 red; 11 blue, 6 red; 5 red, 13 blue; 15 blue; 1 green, 1 blue, 16 red
|
||||
Game 61: 5 red, 1 green; 4 red, 9 green; 1 blue, 6 green, 14 red
|
||||
Game 62: 19 red, 1 green; 1 blue, 3 red; 15 red, 1 blue; 1 blue, 3 red; 5 red, 1 green, 1 blue
|
||||
Game 63: 1 red, 3 green, 10 blue; 2 green, 1 red, 14 blue; 1 green, 5 blue, 1 red; 6 blue, 4 green, 1 red
|
||||
Game 64: 5 red, 2 green; 5 green, 2 red, 2 blue; 3 red, 3 blue, 1 green; 3 blue, 3 green, 3 red; 1 green, 3 red
|
||||
Game 65: 13 red, 2 green, 3 blue; 1 red, 2 blue, 1 green; 1 blue; 2 green, 1 red
|
||||
Game 66: 7 red, 12 blue, 6 green; 2 red, 5 green, 11 blue; 3 green, 2 blue, 2 red; 9 blue, 1 red, 2 green
|
||||
Game 67: 4 red, 3 green, 7 blue; 8 blue, 3 red; 2 red; 9 blue, 5 red, 2 green
|
||||
Game 68: 12 blue; 10 green, 5 blue; 8 blue; 9 blue, 7 red, 18 green; 5 red, 12 blue, 8 green; 8 green, 13 red, 10 blue
|
||||
Game 69: 1 green, 1 red; 2 red, 1 green, 3 blue; 1 red, 1 green, 4 blue; 1 green, 8 red
|
||||
Game 70: 12 green, 1 blue, 4 red; 8 green, 1 red; 1 blue, 8 green; 2 green, 3 red; 5 green, 4 red; 2 blue, 12 green, 1 red
|
||||
Game 71: 10 blue, 4 red, 14 green; 6 green, 7 red, 8 blue; 1 red, 1 blue, 13 green; 10 red, 6 blue, 3 green; 8 blue, 7 green, 4 red
|
||||
Game 72: 1 green; 1 blue, 12 green, 14 red; 3 blue, 7 green, 8 red; 12 red, 18 green; 13 green, 11 red, 1 blue; 2 blue, 6 green, 6 red
|
||||
Game 73: 17 red, 3 green, 15 blue; 15 blue, 2 red; 15 red, 7 blue, 4 green; 9 blue, 1 green, 18 red
|
||||
Game 74: 10 red, 2 blue; 1 blue, 7 red; 5 blue, 2 green, 2 red; 3 blue, 15 red, 3 green; 4 blue, 3 green, 13 red
|
||||
Game 75: 6 blue, 10 red; 2 green, 2 blue, 10 red; 10 green, 1 blue, 10 red; 4 blue, 6 red, 11 green
|
||||
Game 76: 10 blue, 1 red, 2 green; 6 blue, 2 green, 10 red; 3 red, 15 green, 1 blue
|
||||
Game 77: 5 green, 1 red; 2 blue, 1 green; 13 green, 2 red, 5 blue; 12 green, 1 blue, 2 red; 3 blue, 2 green, 2 red
|
||||
Game 78: 1 green, 16 red; 6 red, 1 blue, 1 green; 13 red; 12 red, 3 green; 1 blue, 7 red
|
||||
Game 79: 3 green, 7 blue; 1 red, 8 blue, 5 green; 1 red, 6 green, 7 blue; 11 green, 1 red, 7 blue; 1 blue
|
||||
Game 80: 3 green, 13 red, 8 blue; 17 red, 9 blue; 7 blue, 1 green, 2 red; 8 red, 6 blue, 3 green; 1 red, 2 blue; 2 green, 4 blue, 10 red
|
||||
Game 81: 3 red, 1 green, 7 blue; 2 green, 2 blue, 3 red; 3 red, 1 blue, 7 green; 6 green, 12 blue
|
||||
Game 82: 11 red, 3 green, 2 blue; 3 red, 1 green, 1 blue; 16 red, 1 green
|
||||
Game 83: 8 green, 3 blue, 2 red; 1 blue, 13 green, 6 red; 4 blue, 5 red, 1 green; 12 green, 4 red, 12 blue; 17 green, 7 blue, 3 red
|
||||
Game 84: 2 blue, 13 red, 5 green; 3 green, 3 blue, 19 red; 2 red, 11 green, 5 blue; 3 green, 3 blue, 15 red; 7 green, 4 blue, 11 red; 1 red, 10 green
|
||||
Game 85: 1 red, 3 blue, 4 green; 2 red, 11 green, 2 blue; 2 blue, 7 green, 1 red
|
||||
Game 86: 3 blue, 4 green, 8 red; 4 green, 2 red; 9 red, 4 blue, 1 green; 18 red, 1 blue
|
||||
Game 87: 3 red, 14 blue, 1 green; 10 blue, 1 green; 1 green, 4 red, 14 blue; 8 blue, 7 green, 4 red; 2 green, 7 red, 7 blue; 2 green, 10 blue
|
||||
Game 88: 12 green, 6 red; 6 red, 3 blue, 2 green; 4 red, 4 blue, 9 green; 3 red, 4 green, 8 blue; 1 blue, 3 red
|
||||
Game 89: 3 green, 3 red, 2 blue; 3 red, 2 green, 1 blue; 6 green, 4 blue, 12 red; 13 red, 14 blue, 1 green; 5 red; 10 red, 8 blue, 7 green
|
||||
Game 90: 7 green, 10 blue; 6 green, 1 red, 2 blue; 6 blue; 5 green, 9 blue, 1 red; 10 blue, 1 red, 6 green
|
||||
Game 91: 6 red, 2 blue; 3 blue, 3 red, 1 green; 19 blue, 7 red
|
||||
Game 92: 9 green, 3 blue; 1 red, 5 green; 13 green, 3 blue, 2 red; 1 red, 3 blue, 7 green
|
||||
Game 93: 11 red, 3 green, 11 blue; 7 green, 3 red, 10 blue; 11 green, 4 blue, 8 red; 14 green, 8 blue
|
||||
Game 94: 7 blue; 1 green, 11 blue, 2 red; 1 green, 1 red, 19 blue; 7 green, 2 red, 10 blue
|
||||
Game 95: 15 blue, 1 red, 9 green; 5 green, 1 red, 4 blue; 6 green, 17 blue; 9 blue, 11 green; 10 blue, 9 green; 9 blue, 7 green
|
||||
Game 96: 7 red, 13 blue; 6 blue, 15 red, 3 green; 1 green, 1 red, 1 blue; 9 red, 2 green, 8 blue; 5 green, 8 red, 1 blue; 6 blue, 3 green, 13 red
|
||||
Game 97: 19 blue, 10 red, 4 green; 8 red, 17 blue; 8 blue
|
||||
Game 98: 2 blue, 2 red, 4 green; 5 green, 3 blue, 2 red; 5 green, 15 blue; 15 blue, 5 green, 1 red
|
||||
Game 99: 1 blue, 2 green, 8 red; 1 blue, 7 red, 1 green; 11 red, 2 green; 1 red, 1 blue
|
||||
Game 100: 8 green; 2 red, 20 green; 12 green, 1 red, 1 blue; 4 red, 1 blue; 1 blue, 6 red
|
||||
@@ -0,0 +1,52 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
file, _ := os.Open("./input.text")
|
||||
defer file.Close()
|
||||
|
||||
scanner := bufio.NewScanner(file)
|
||||
|
||||
sum := 0
|
||||
|
||||
for scanner.Scan() {
|
||||
line := strings.Split(scanner.Text(), ":")
|
||||
|
||||
draws := strings.Split(line[1], ";")
|
||||
|
||||
max_red := 0
|
||||
max_green := 0
|
||||
max_blue := 0
|
||||
|
||||
for _, draw := range draws {
|
||||
|
||||
cubes := strings.Split(draw, ",")
|
||||
for _, cube := range cubes {
|
||||
v := strings.Fields(cube)
|
||||
value, _ := strconv.Atoi(v[0])
|
||||
color := v[1]
|
||||
|
||||
if color == "red" && value > max_red {
|
||||
max_red = value
|
||||
}
|
||||
if color == "green" && value > max_green {
|
||||
max_green = value
|
||||
}
|
||||
if color == "blue" && value > max_blue {
|
||||
max_blue = value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sum += max_red * max_green * max_blue
|
||||
}
|
||||
|
||||
fmt.Println("Sum of the minimum power of all games:", sum)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
|
||||
Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
|
||||
Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
|
||||
Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
|
||||
Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green
|
||||
@@ -0,0 +1,140 @@
|
||||
...................15....904...........850.................329...................13....................................871....816....697....
|
||||
...........53.497........................%....906...610.......*.............735#..&...*......558...68...............68..*......&....*.......
|
||||
..........*....$....................132.........*..........844....875................350............*...............*..336.364...649........
|
||||
.......726.......341..................*...186...358..................*244........57.......@.........738......*.....663.................584..
|
||||
.............952.*......33......660..704............949......................518*....234.967....551........971..&.......................*...
|
||||
.......738...*....222......................706.......*..825.............474%...........*...........*.405.........779..............542...405.
|
||||
.74.........366....................192..........542.737....*760...................623/..730.....718.../.....................$17......%......
|
||||
...*126.....................%........*.504...=..*.........................................................974...............................
|
||||
........331/..901.........337..........*...461.698...............*461.....814............................*............975...............165.
|
||||
..../.........*.....................262.......................313........*........530.56.....567.......897.....*.........*.9................
|
||||
....953....355...@703..................................609..............462.......%........./...............108.557...501.../...724.........
|
||||
..............................................=.........%.......46......................533....670...............................*..%630....
|
||||
.........................91...382*204.........154..%.............+.524.995..............=.....*...........7..........692.92*56...73.........
|
||||
.685....*....70.189.......*.........................773...830/....../....*........=.........565.............464................$....738..130
|
||||
.........938..*........993..............*.................................243...340...753...........*...882...............108.647....*......
|
||||
..............762..........348.......280...............364*526...........................*........552.....=....25..682....*.........164.....
|
||||
.....948..............813../....644......62........................................#.....657......................*.........................
|
||||
......*...........................*.................$745.......739.....*...399...30............&..@...........924.117..........309..........
|
||||
...883....544.....33.........585=.428.146................288.....*..853....*...........*891.409....429..460...*..........997....*........187
|
||||
.............*818........829..........*....846..............................248.....574..................*....789.......*.....965....-..*...
|
||||
......=.....................*..........370.......850+.............313...........................573....621...............268.......58..800..
|
||||
....67....287.............481..709...............................*.......#74...................*.................965........................
|
||||
............@.291.............*.........607*....950.475..309...66..932........395..374..........155.891....472..*......774.............&....
|
||||
....207..........%..262......543..887/......711....*.......+......*............*...*........823............*...93...........377.....764.....
|
||||
.....*...968.951.......#................................$.........453...366..736.972........*.............697........*618...&...............
|
||||
....984..*...............-.......................884..23......492.....*..*................70..523.....25........$.....................370...
|
||||
..................870...187.......548#.522..458.....*..........*....956......535....../.........*.525*........197....@..*266...123.....*....
|
||||
.........501.....*..........................&.....323........257........956..*........80..946.592.................211.........*.........311.
|
||||
.....380*.....867...653..347....................*........93=...........*......515..........-...................................678..........
|
||||
..........876......&....*.......&631.950.647...631...@...........=...705..914................739..............319......713.........*97.#918.
|
||||
.....805...*..........118................-.........790....559..51........../........*.........*......550......*........./.......647.........
|
||||
......-..428.....599......813................413..................280............840.654.......91.....*...........236.......$...............
|
||||
.............=...%.......*.....77...................#.492............................................96..........@.......175....%...........
|
||||
......*427..569..........47......................999......314.....636*253.................764.................27......-..........415..386...
|
||||
...142................$................@..320........969...................882*311...............#..751...........=....649...........*......
|
||||
.........*723..993.976....638........475................=..800.......................*764.710...574....*964....831..........473......531....
|
||||
...%..486...................*....#..................................831...........375........*........................=824......21..........
|
||||
559.........................441...316................................./....................618.407.......83.......972...............91......
|
||||
......*.....25..741...................%...............*63.546$..905......27........861.756........*.......*..........*...28...57............
|
||||
.......794....*./........782...236....47...........937...........*..755....*505..............23.948.......560.532...421....*..#.........405.
|
||||
............566.................*........-850..872.......90....229...+..........978..684............225..................675.....591...*....
|
||||
.............................296..243...........+....691...................311.........$......321......@......827....$13.......$....&..530..
|
||||
.....664..422$....613.....@.........%.401/.$974.....-.........%.145....729......*........./.......106............%.......=.....611..........
|
||||
.......$.........*.......857...147*.............591........+.46..*.....=........306.67*...818.............................261....../........
|
||||
............823...785..............340.........-....564..777......456.......%....................891.................560...........642..181.
|
||||
.....394.....*................226..........423..............................539.................*............640&.............535...........
|
||||
.......@.....626..317..329....*...92........+..................374....827............*.683+....771....529.........303..........*............
|
||||
.........172.....-........*......*.....332...........288..229..+.........*.786=....468.............*....*...........*....461...249..=.......
|
||||
....974...*............901..@....130..*..............$...*..........4.573................163......429....808.464*47..231....@......964......
|
||||
........183.................582........11...............310.....774.*.....567.............*....36...........................................
|
||||
.......................939.....................*826............@.....892..........481......266.*...-253.........106.830....235......*..841..
|
||||
727.........177#.........&.......507........301..........................550..242*.....+./.....686.......@.446.*.....*.......*....894..*....
|
||||
....67...............468.....&......&..596......................817.600...............85.5.............973...$.805...513......378.......388.
|
||||
...........*247.........*.....974.........*263....329....476....*............721............723.....................................358.....
|
||||
........784.....434.....667.......................*............615.195.612...............................540#........347...........*........
|
||||
...............*.................76......121...659........@555..........-.............201......................866............628.505.509...
|
||||
.............515........../.................#....................281..%...656............*670.419.......799.......*...510.786...*.......&...
|
||||
....993.................540.373....709.............705............*...132..#........298$......*...232....*..@..878.......*....528...#.......
|
||||
....$.........615.............*..........948..........*........565................%..........465..#.....497.67....................631.......
|
||||
.........138....#....417......123...........*.......546...821...................114..=............................258.859=.380-.............
|
||||
.....734*.............../.............833..399..........................+............780...288..............117..@...................925....
|
||||
................*860..........228........*...............................956....390*........=..........%...*..........839...373......*......
|
||||
..802........369........641.............763.....154.24...............302............620..............150.403.......*.........*....647.......
|
||||
...................................&........466*.....@..................*827....530.............................129.628.....923.........=866
|
||||
..........&......&.............824.573.................669.........................$.....374..627...........698.....................759.....
|
||||
.......499....%.812.857*653...................668..........879.......974................../......*926...852.........................-....832
|
||||
...646......284..............708...369...........*808................-.......705.......@...............%.............492.462............*...
|
||||
....................959......#.......*....872..........................102....*.........80..839....996..............*.....%........83...49..
|
||||
.785............363..*.............49.......*.......667.....797....224.......586..............&....*...34..673.......650....................
|
||||
....*..*132....*.....225...................631..350..*.........*....*.............941....=.......52....*.................406...546..........
|
||||
.543............760.........305..325...330.......+.................621...........*.......63..#.......268..239...................#...........
|
||||
........658..................*............*...........735......820.....145....419...........91..489.........*......404.......*....#.........
|
||||
..........=....415+.....38$....844...+..366.............*.......*......*..............................43....945.....#.....563.205..211..183.
|
||||
......267.......................*...519.....730........836..........277...........808...........504...&................................#....
|
||||
.....*..................705/....575..........*....../..........$866.........=.......*...975......#.......183.931........%.......611.........
|
||||
.......135.......284........................246.653.972..............365..191.....376...*.....&.........*......*.........994...@.....11.....
|
||||
...440../.........*.............................*..............415.....................985..838......677.......109...................*......
|
||||
...@............224....399.727$......68#..........................$......432.....214$.....................#.................591....686......
|
||||
..........&.......................................658........143....779.+....942......$.............885....567..........$...................
|
||||
.461.......33....277.407......108..............47.*.............*...........*.......$.811............................390....................
|
||||
..........................907*.....#397..307...*....197.12.....3...738....254.85..393...............713..700..741...........176.....883.....
|
||||
..316........180...........................*.758...................-...........................................*............*...............
|
||||
....*..../........871...338..165.........683............455...701*......................540....255.......$....858........277....28....+.....
|
||||
...660.469..912...#..........%......743.........439.....-.........206......363..........*.......*.......640............................144..
|
||||
..............*.........443...............610.............803.............*.............879...658............$................189...........
|
||||
...........172......794........98..............646......................662..............................*....49.-210.523.257....*..........
|
||||
...87..662.....#.......*667....%..408..........*............220...524............=.....742..39..160....64.636..........*..*....974..378.....
|
||||
...*.....*.....42..&.............=....371*.....804.................*..#....../.240.....*........................395%..461..818.....*........
|
||||
....706.398........452....500.............406..........57*380....365.42...635.......131...........18.....538.....................403........
|
||||
..............143........*.........80............740..........................*245......784........-...........708...................&.297..
|
||||
.230...........*.......373..341...........................$438.......*.................=.............874&..959*...........192......829.#....
|
||||
...#..........476..647.....*......................................431.728..........................................50.....$.................
|
||||
........334...........*731.930......=........966........*323...................301.....%....404...............879....*372.....208.134.......
|
||||
...........*.....................163..........*......509......................%.....&..785.......................*...............*..........
|
||||
...768..329....199........................................797......*368..........873..........26.565....651.....664......111..........217...
|
||||
................*.....26.......705*76....415.............*................................749..........*..................#......545-..%....
|
||||
....-....473..517......*...............5*....449..........68........................751.......*399......401.................................
|
||||
.730......#.........240...&..65.718.87......*.....532..............-....567............*....................675.......67..463...............
|
||||
.....289#....509........200......*...*....852....................885...+....663..72..507......998.&954..213....$.....*.........672..........
|
||||
..............................403.....129........377-....................../....&.................................473...........*...........
|
||||
.........855=.........250...................961........860*916.......981..........326.........633..404................676.%566..120.........
|
||||
892...........532.............754.......866*....790..................#........819*..............*.........%.44..=......*............29......
|
||||
....@527.......*..................600............../...$568.....800.....................179..528........613.....358...949...................
|
||||
................302...807............*..895.................+.....@.....-...........................980...........................736.......
|
||||
........217...=......*............879.....+.-..........%.....793.......442.......422............209*.......&.......969....240.378...*.......
|
||||
....340*.....145...%.596....................23....703...217................372..........610.................129.......*........../.....=....
|
||||
.................790.....&............904............=............795......*.......385=...+.....88*143...............891....406.......79....
|
||||
............*749.........31..............*....318.................+.......317.................................%419.............*392.........
|
||||
....854..797......*..500...............614.1...*..............803.....451............330.159.143.598.......+......./827...............717...
|
||||
...@............924.*........................245............-.&..........*...606................*...........461............604....#....*....
|
||||
....................73....160..406.150...............933.957...................%.......419.........665..*.........-.......*.....721..573....
|
||||
....*915.........40................*...%.............*........584.......929......377....*..404.935....&..870.....93........395..............
|
||||
.781.............@...........632.......710....769.323............$.........*.........904.....*...*.....................859..................
|
||||
.....=.......................*...646............-.........................52................149...414....................*........%.........
|
||||
...51....524.625..........328...*.................................295.734......@..........................856.291.695....367..218..787..8...
|
||||
.........../.*................339........................576/.417*...........445...@........................%....................-..........
|
||||
....869.85...316.....308...............345.......749.............................264.............775..777...............................89..
|
||||
.......*...............#.........$....*..........*....../.....786.713*52.................357.......&./.........#......971....74.305....-....
|
||||
............................325..770..167..@.....265..+..883................................+...57..........312.......*........*............
|
||||
......+.....266.....788.111....*..........342........588.......939..393*717.............488....*....................401....249...255........
|
||||
.......308..*............#.....816....465..........*.....492..@.............581.........-.......397..709*.................$.....*...........
|
||||
.............511.....881...+.........+..........178..524*..............150..../..720.......843...........964....129.../......908............
|
||||
.......749.............*.526.$............800............................*.........*...500....*.../.................487..........200........
|
||||
..668......*639......932......139.726................#...51..436$..................775...*...834..874.......%..............859+......439....
|
||||
........810........................*.......805.......100..*...........999.....743......169............477...961......973............$.......
|
||||
.574...........6*262........398....204......*.....%.......525...........*.........................412..*.........376...*.@43....=......=....
|
||||
....*836....................................25...619............658.....172.......................*...408...........*........%...776..802...
|
||||
.............307.......&........537..988..............128..-.....*..........................118...327......296.......967..991...............
|
||||
.....899...$...*....788.....829......=....................559.722.......519.........385$...+..................*.323*..............*123......
|
||||
........*.930...674...........*..........447.......801..............957....................................111......767..34....556..........
|
||||
..565.644..............18.....472.........*...8........................*........258........901.................296.......*..........*.......
|
||||
....*............995=....*................649.*...151.........437%...445.747......-.........&......#......%.....*.........800....357.240....
|
||||
....476.491/.931.......121..732*940..682......975..$.....*..................+.358.............../.363....152.264........$...................
|
||||
.............=....730*..................*584...........234.........996.................*.....701........................499............649..
|
||||
......................672......@.............................958.....&.+...........983.673........233.@981........760.......................
|
||||
..942.993@......293...........939..&....@.........867..92.....*........679.........................*.............*.......27...998...........
|
||||
....#.......230.$...................36.24....809..#....*...660.....$.......748..199.-.............717...@......................../..........
|
||||
......*95..............647...$..............-.........461..........757...........*...68...............728..210*680..708......$.....246......
|
||||
...355.........*..........*.538...%..............................-...............977....209*.......................*.........141.....*......
|
||||
...............680.....670.........784........171..799.........317..........................844........166........289.................463...
|
||||
@@ -0,0 +1,83 @@
|
||||
with open("input.text", 'r') as f:
|
||||
contents = f.read().split("\n")
|
||||
|
||||
sum_of_parts = 0
|
||||
|
||||
for index, line in enumerate(contents):
|
||||
|
||||
# Find numbers
|
||||
part_numbers = []
|
||||
num: bool = False
|
||||
num_index = None
|
||||
length = 0
|
||||
for char_index, char in enumerate(line):
|
||||
if char.isnumeric():
|
||||
if not num:
|
||||
num_index = char_index
|
||||
|
||||
num = True
|
||||
length += 1
|
||||
else:
|
||||
if num:
|
||||
part_numbers.append((num_index, length, line[num_index:num_index + length]))
|
||||
num = False
|
||||
length = 0
|
||||
|
||||
if num:
|
||||
part_numbers.append((num_index, length, line[num_index:num_index + length]))
|
||||
|
||||
if part_numbers:
|
||||
print(f"index {index}, {part_numbers}")
|
||||
|
||||
# Check for symbols
|
||||
for part_index, part_length, part_number in part_numbers:
|
||||
|
||||
symbol = False
|
||||
|
||||
minus = 1 if part_index != 0 else 0
|
||||
add = 1 if part_index + length != len(line) else 0
|
||||
start_index = part_index - minus
|
||||
end_index = part_index + part_length + add
|
||||
|
||||
# Check line above
|
||||
if index != 0:
|
||||
for check_index in range(start_index, end_index):
|
||||
|
||||
check_char = contents[index - 1][check_index]
|
||||
|
||||
if check_char != "." and not check_char.isnumeric():
|
||||
sum_of_parts += int(part_number)
|
||||
print(f"Added {part_number}, symbol at ({index - 1}, {check_index}), symbol = \"{check_char}\"")
|
||||
symbol = True
|
||||
break
|
||||
if symbol:
|
||||
continue
|
||||
|
||||
# Check current line
|
||||
if start_index != part_index:
|
||||
if line[start_index] != "." and not line[start_index].isnumeric():
|
||||
sum_of_parts += int(part_number)
|
||||
print(f"Added {part_number}, symbol at ({index}, {start_index}), symbol = \"{line[start_index]}\"")
|
||||
continue
|
||||
|
||||
if end_index != part_index + length - 1:
|
||||
if line[end_index - 1] != "." and not line[end_index - 1].isnumeric():
|
||||
sum_of_parts += int(part_number)
|
||||
print(f"Added {part_number}, symbol at ({index}, {end_index - 1}), symbol = \"{line[end_index - 1]}\"")
|
||||
continue
|
||||
|
||||
# Check line bellow
|
||||
if index != (len(contents) - 1):
|
||||
for check_index in range(start_index, end_index):
|
||||
|
||||
check_char = contents[index + 1][check_index]
|
||||
|
||||
if check_char != "." and not check_char.isnumeric():
|
||||
sum_of_parts += int(part_number)
|
||||
print(f"Added {part_number}, symbol at ({index + 1}, {check_index}), symbol = \"{check_char}\"")
|
||||
symbol = True
|
||||
break
|
||||
if symbol:
|
||||
continue
|
||||
|
||||
print(f"Sum of engine parts: {sum_of_parts}")
|
||||
@@ -0,0 +1,10 @@
|
||||
467..114..
|
||||
...*......
|
||||
..35..633.
|
||||
......#...
|
||||
617*......
|
||||
.....+.58.
|
||||
..592.....
|
||||
......755.
|
||||
...$.*....
|
||||
.664.598..
|
||||
@@ -0,0 +1,140 @@
|
||||
...................15....904...........850.................329...................13....................................871....816....697....
|
||||
...........53.497........................%....906...610.......*.............735#..&...*......558...68...............68..*......&....*.......
|
||||
..........*....$....................132.........*..........844....875................350............*...............*..336.364...649........
|
||||
.......726.......341..................*...186...358..................*244........57.......@.........738......*.....663.................584..
|
||||
.............952.*......33......660..704............949......................518*....234.967....551........971..&.......................*...
|
||||
.......738...*....222......................706.......*..825.............474%...........*...........*.405.........779..............542...405.
|
||||
.74.........366....................192..........542.737....*760...................623/..730.....718.../.....................$17......%......
|
||||
...*126.....................%........*.504...=..*.........................................................974...............................
|
||||
........331/..901.........337..........*...461.698...............*461.....814............................*............975...............165.
|
||||
..../.........*.....................262.......................313........*........530.56.....567.......897.....*.........*.9................
|
||||
....953....355...@703..................................609..............462.......%........./...............108.557...501.../...724.........
|
||||
..............................................=.........%.......46......................533....670...............................*..%630....
|
||||
.........................91...382*204.........154..%.............+.524.995..............=.....*...........7..........692.92*56...73.........
|
||||
.685....*....70.189.......*.........................773...830/....../....*........=.........565.............464................$....738..130
|
||||
.........938..*........993..............*.................................243...340...753...........*...882...............108.647....*......
|
||||
..............762..........348.......280...............364*526...........................*........552.....=....25..682....*.........164.....
|
||||
.....948..............813../....644......62........................................#.....657......................*.........................
|
||||
......*...........................*.................$745.......739.....*...399...30............&..@...........924.117..........309..........
|
||||
...883....544.....33.........585=.428.146................288.....*..853....*...........*891.409....429..460...*..........997....*........187
|
||||
.............*818........829..........*....846..............................248.....574..................*....789.......*.....965....-..*...
|
||||
......=.....................*..........370.......850+.............313...........................573....621...............268.......58..800..
|
||||
....67....287.............481..709...............................*.......#74...................*.................965........................
|
||||
............@.291.............*.........607*....950.475..309...66..932........395..374..........155.891....472..*......774.............&....
|
||||
....207..........%..262......543..887/......711....*.......+......*............*...*........823............*...93...........377.....764.....
|
||||
.....*...968.951.......#................................$.........453...366..736.972........*.............697........*618...&...............
|
||||
....984..*...............-.......................884..23......492.....*..*................70..523.....25........$.....................370...
|
||||
..................870...187.......548#.522..458.....*..........*....956......535....../.........*.525*........197....@..*266...123.....*....
|
||||
.........501.....*..........................&.....323........257........956..*........80..946.592.................211.........*.........311.
|
||||
.....380*.....867...653..347....................*........93=...........*......515..........-...................................678..........
|
||||
..........876......&....*.......&631.950.647...631...@...........=...705..914................739..............319......713.........*97.#918.
|
||||
.....805...*..........118................-.........790....559..51........../........*.........*......550......*........./.......647.........
|
||||
......-..428.....599......813................413..................280............840.654.......91.....*...........236.......$...............
|
||||
.............=...%.......*.....77...................#.492............................................96..........@.......175....%...........
|
||||
......*427..569..........47......................999......314.....636*253.................764.................27......-..........415..386...
|
||||
...142................$................@..320........969...................882*311...............#..751...........=....649...........*......
|
||||
.........*723..993.976....638........475................=..800.......................*764.710...574....*964....831..........473......531....
|
||||
...%..486...................*....#..................................831...........375........*........................=824......21..........
|
||||
559.........................441...316................................./....................618.407.......83.......972...............91......
|
||||
......*.....25..741...................%...............*63.546$..905......27........861.756........*.......*..........*...28...57............
|
||||
.......794....*./........782...236....47...........937...........*..755....*505..............23.948.......560.532...421....*..#.........405.
|
||||
............566.................*........-850..872.......90....229...+..........978..684............225..................675.....591...*....
|
||||
.............................296..243...........+....691...................311.........$......321......@......827....$13.......$....&..530..
|
||||
.....664..422$....613.....@.........%.401/.$974.....-.........%.145....729......*........./.......106............%.......=.....611..........
|
||||
.......$.........*.......857...147*.............591........+.46..*.....=........306.67*...818.............................261....../........
|
||||
............823...785..............340.........-....564..777......456.......%....................891.................560...........642..181.
|
||||
.....394.....*................226..........423..............................539.................*............640&.............535...........
|
||||
.......@.....626..317..329....*...92........+..................374....827............*.683+....771....529.........303..........*............
|
||||
.........172.....-........*......*.....332...........288..229..+.........*.786=....468.............*....*...........*....461...249..=.......
|
||||
....974...*............901..@....130..*..............$...*..........4.573................163......429....808.464*47..231....@......964......
|
||||
........183.................582........11...............310.....774.*.....567.............*....36...........................................
|
||||
.......................939.....................*826............@.....892..........481......266.*...-253.........106.830....235......*..841..
|
||||
727.........177#.........&.......507........301..........................550..242*.....+./.....686.......@.446.*.....*.......*....894..*....
|
||||
....67...............468.....&......&..596......................817.600...............85.5.............973...$.805...513......378.......388.
|
||||
...........*247.........*.....974.........*263....329....476....*............721............723.....................................358.....
|
||||
........784.....434.....667.......................*............615.195.612...............................540#........347...........*........
|
||||
...............*.................76......121...659........@555..........-.............201......................866............628.505.509...
|
||||
.............515........../.................#....................281..%...656............*670.419.......799.......*...510.786...*.......&...
|
||||
....993.................540.373....709.............705............*...132..#........298$......*...232....*..@..878.......*....528...#.......
|
||||
....$.........615.............*..........948..........*........565................%..........465..#.....497.67....................631.......
|
||||
.........138....#....417......123...........*.......546...821...................114..=............................258.859=.380-.............
|
||||
.....734*.............../.............833..399..........................+............780...288..............117..@...................925....
|
||||
................*860..........228........*...............................956....390*........=..........%...*..........839...373......*......
|
||||
..802........369........641.............763.....154.24...............302............620..............150.403.......*.........*....647.......
|
||||
...................................&........466*.....@..................*827....530.............................129.628.....923.........=866
|
||||
..........&......&.............824.573.................669.........................$.....374..627...........698.....................759.....
|
||||
.......499....%.812.857*653...................668..........879.......974................../......*926...852.........................-....832
|
||||
...646......284..............708...369...........*808................-.......705.......@...............%.............492.462............*...
|
||||
....................959......#.......*....872..........................102....*.........80..839....996..............*.....%........83...49..
|
||||
.785............363..*.............49.......*.......667.....797....224.......586..............&....*...34..673.......650....................
|
||||
....*..*132....*.....225...................631..350..*.........*....*.............941....=.......52....*.................406...546..........
|
||||
.543............760.........305..325...330.......+.................621...........*.......63..#.......268..239...................#...........
|
||||
........658..................*............*...........735......820.....145....419...........91..489.........*......404.......*....#.........
|
||||
..........=....415+.....38$....844...+..366.............*.......*......*..............................43....945.....#.....563.205..211..183.
|
||||
......267.......................*...519.....730........836..........277...........808...........504...&................................#....
|
||||
.....*..................705/....575..........*....../..........$866.........=.......*...975......#.......183.931........%.......611.........
|
||||
.......135.......284........................246.653.972..............365..191.....376...*.....&.........*......*.........994...@.....11.....
|
||||
...440../.........*.............................*..............415.....................985..838......677.......109...................*......
|
||||
...@............224....399.727$......68#..........................$......432.....214$.....................#.................591....686......
|
||||
..........&.......................................658........143....779.+....942......$.............885....567..........$...................
|
||||
.461.......33....277.407......108..............47.*.............*...........*.......$.811............................390....................
|
||||
..........................907*.....#397..307...*....197.12.....3...738....254.85..393...............713..700..741...........176.....883.....
|
||||
..316........180...........................*.758...................-...........................................*............*...............
|
||||
....*..../........871...338..165.........683............455...701*......................540....255.......$....858........277....28....+.....
|
||||
...660.469..912...#..........%......743.........439.....-.........206......363..........*.......*.......640............................144..
|
||||
..............*.........443...............610.............803.............*.............879...658............$................189...........
|
||||
...........172......794........98..............646......................662..............................*....49.-210.523.257....*..........
|
||||
...87..662.....#.......*667....%..408..........*............220...524............=.....742..39..160....64.636..........*..*....974..378.....
|
||||
...*.....*.....42..&.............=....371*.....804.................*..#....../.240.....*........................395%..461..818.....*........
|
||||
....706.398........452....500.............406..........57*380....365.42...635.......131...........18.....538.....................403........
|
||||
..............143........*.........80............740..........................*245......784........-...........708...................&.297..
|
||||
.230...........*.......373..341...........................$438.......*.................=.............874&..959*...........192......829.#....
|
||||
...#..........476..647.....*......................................431.728..........................................50.....$.................
|
||||
........334...........*731.930......=........966........*323...................301.....%....404...............879....*372.....208.134.......
|
||||
...........*.....................163..........*......509......................%.....&..785.......................*...............*..........
|
||||
...768..329....199........................................797......*368..........873..........26.565....651.....664......111..........217...
|
||||
................*.....26.......705*76....415.............*................................749..........*..................#......545-..%....
|
||||
....-....473..517......*...............5*....449..........68........................751.......*399......401.................................
|
||||
.730......#.........240...&..65.718.87......*.....532..............-....567............*....................675.......67..463...............
|
||||
.....289#....509........200......*...*....852....................885...+....663..72..507......998.&954..213....$.....*.........672..........
|
||||
..............................403.....129........377-....................../....&.................................473...........*...........
|
||||
.........855=.........250...................961........860*916.......981..........326.........633..404................676.%566..120.........
|
||||
892...........532.............754.......866*....790..................#........819*..............*.........%.44..=......*............29......
|
||||
....@527.......*..................600............../...$568.....800.....................179..528........613.....358...949...................
|
||||
................302...807............*..895.................+.....@.....-...........................980...........................736.......
|
||||
........217...=......*............879.....+.-..........%.....793.......442.......422............209*.......&.......969....240.378...*.......
|
||||
....340*.....145...%.596....................23....703...217................372..........610.................129.......*........../.....=....
|
||||
.................790.....&............904............=............795......*.......385=...+.....88*143...............891....406.......79....
|
||||
............*749.........31..............*....318.................+.......317.................................%419.............*392.........
|
||||
....854..797......*..500...............614.1...*..............803.....451............330.159.143.598.......+......./827...............717...
|
||||
...@............924.*........................245............-.&..........*...606................*...........461............604....#....*....
|
||||
....................73....160..406.150...............933.957...................%.......419.........665..*.........-.......*.....721..573....
|
||||
....*915.........40................*...%.............*........584.......929......377....*..404.935....&..870.....93........395..............
|
||||
.781.............@...........632.......710....769.323............$.........*.........904.....*...*.....................859..................
|
||||
.....=.......................*...646............-.........................52................149...414....................*........%.........
|
||||
...51....524.625..........328...*.................................295.734......@..........................856.291.695....367..218..787..8...
|
||||
.........../.*................339........................576/.417*...........445...@........................%....................-..........
|
||||
....869.85...316.....308...............345.......749.............................264.............775..777...............................89..
|
||||
.......*...............#.........$....*..........*....../.....786.713*52.................357.......&./.........#......971....74.305....-....
|
||||
............................325..770..167..@.....265..+..883................................+...57..........312.......*........*............
|
||||
......+.....266.....788.111....*..........342........588.......939..393*717.............488....*....................401....249...255........
|
||||
.......308..*............#.....816....465..........*.....492..@.............581.........-.......397..709*.................$.....*...........
|
||||
.............511.....881...+.........+..........178..524*..............150..../..720.......843...........964....129.../......908............
|
||||
.......749.............*.526.$............800............................*.........*...500....*.../.................487..........200........
|
||||
..668......*639......932......139.726................#...51..436$..................775...*...834..874.......%..............859+......439....
|
||||
........810........................*.......805.......100..*...........999.....743......169............477...961......973............$.......
|
||||
.574...........6*262........398....204......*.....%.......525...........*.........................412..*.........376...*.@43....=......=....
|
||||
....*836....................................25...619............658.....172.......................*...408...........*........%...776..802...
|
||||
.............307.......&........537..988..............128..-.....*..........................118...327......296.......967..991...............
|
||||
.....899...$...*....788.....829......=....................559.722.......519.........385$...+..................*.323*..............*123......
|
||||
........*.930...674...........*..........447.......801..............957....................................111......767..34....556..........
|
||||
..565.644..............18.....472.........*...8........................*........258........901.................296.......*..........*.......
|
||||
....*............995=....*................649.*...151.........437%...445.747......-.........&......#......%.....*.........800....357.240....
|
||||
....476.491/.931.......121..732*940..682......975..$.....*..................+.358.............../.363....152.264........$...................
|
||||
.............=....730*..................*584...........234.........996.................*.....701........................499............649..
|
||||
......................672......@.............................958.....&.+...........983.673........233.@981........760.......................
|
||||
..942.993@......293...........939..&....@.........867..92.....*........679.........................*.............*.......27...998...........
|
||||
....#.......230.$...................36.24....809..#....*...660.....$.......748..199.-.............717...@......................../..........
|
||||
......*95..............647...$..............-.........461..........757...........*...68...............728..210*680..708......$.....246......
|
||||
...355.........*..........*.538...%..............................-...............977....209*.......................*.........141.....*......
|
||||
...............680.....670.........784........171..799.........317..........................844........166........289.................463...
|
||||
@@ -0,0 +1,125 @@
|
||||
with open("input.text", 'r') as f:
|
||||
contents = f.read().split("\n")
|
||||
|
||||
sum_of_parts = 0
|
||||
|
||||
"""
|
||||
{
|
||||
(1, 3) : [467, 35]
|
||||
}
|
||||
"""
|
||||
gears = {}
|
||||
|
||||
for index, line in enumerate(contents):
|
||||
|
||||
# Find numbers
|
||||
part_numbers = []
|
||||
num: bool = False
|
||||
num_index = None
|
||||
length = 0
|
||||
for char_index, char in enumerate(line):
|
||||
if char.isnumeric():
|
||||
if not num:
|
||||
num_index = char_index
|
||||
|
||||
num = True
|
||||
length += 1
|
||||
else:
|
||||
if num:
|
||||
part_numbers.append((num_index, length, line[num_index:num_index + length]))
|
||||
num = False
|
||||
length = 0
|
||||
|
||||
if num:
|
||||
part_numbers.append((num_index, length, line[num_index:num_index + length]))
|
||||
|
||||
if part_numbers:
|
||||
print(f"index {index}, {part_numbers}")
|
||||
|
||||
# Check for symbols
|
||||
for part_index, part_length, part_number in part_numbers:
|
||||
|
||||
symbol = False
|
||||
|
||||
minus = 1 if part_index != 0 else 0
|
||||
add = 1 if part_index + length != len(line) else 0
|
||||
start_index = part_index - minus
|
||||
end_index = part_index + part_length + add
|
||||
|
||||
# Check line above
|
||||
if index != 0:
|
||||
for check_index in range(start_index, end_index):
|
||||
|
||||
coords = (index - 1, check_index)
|
||||
x, y = coords
|
||||
check_char = contents[x][y]
|
||||
|
||||
if check_char == "*":
|
||||
if coords in gears:
|
||||
gears[coords].append(part_number)
|
||||
else:
|
||||
gears[coords] = [part_number]
|
||||
|
||||
symbol = True
|
||||
break
|
||||
if symbol:
|
||||
continue
|
||||
|
||||
# Check current line
|
||||
if start_index != part_index:
|
||||
if line[start_index] == "*":
|
||||
coords = (index, start_index)
|
||||
|
||||
check_char = line[start_index]
|
||||
|
||||
if check_char == "*":
|
||||
if coords in gears:
|
||||
gears[coords].append(part_number)
|
||||
else:
|
||||
gears[coords] = [part_number]
|
||||
|
||||
continue
|
||||
|
||||
if end_index != part_index + length - 1:
|
||||
if line[end_index - 1] == "*":
|
||||
coords = (index, end_index - 1)
|
||||
|
||||
check_char = line[end_index - 1]
|
||||
|
||||
if check_char == "*":
|
||||
if coords in gears:
|
||||
gears[coords].append(part_number)
|
||||
else:
|
||||
gears[coords] = [part_number]
|
||||
|
||||
continue
|
||||
|
||||
# Check line bellow
|
||||
if index != (len(contents) - 1):
|
||||
for check_index in range(start_index, end_index):
|
||||
|
||||
coords = (index + 1, check_index)
|
||||
x, y = coords
|
||||
|
||||
check_char = contents[x][y]
|
||||
|
||||
if check_char == "*":
|
||||
if coords in gears:
|
||||
gears[coords].append(part_number)
|
||||
else:
|
||||
gears[coords] = [part_number]
|
||||
|
||||
symbol = True
|
||||
break
|
||||
if symbol:
|
||||
continue
|
||||
|
||||
|
||||
sum_of_gear_ratios = 0
|
||||
for gear in gears:
|
||||
if len(gears[gear]) == 2:
|
||||
gear_ratio = int(gears[gear][0]) * int(gears[gear][1])
|
||||
print(gear_ratio)
|
||||
sum_of_gear_ratios += gear_ratio
|
||||
|
||||
print(f"Sum of gear ratios: {sum_of_gear_ratios}")
|
||||
@@ -0,0 +1,10 @@
|
||||
467..114..
|
||||
...*......
|
||||
..35..633.
|
||||
......#...
|
||||
617*......
|
||||
.....+.58.
|
||||
..592.....
|
||||
......755.
|
||||
...$.*....
|
||||
.664.598..
|
||||
@@ -0,0 +1,213 @@
|
||||
Card 1: 69 61 27 58 89 52 81 94 40 51 | 43 40 52 90 37 97 89 80 69 42 51 70 94 58 10 73 21 29 61 63 57 79 81 27 35
|
||||
Card 2: 5 75 37 76 98 32 24 83 44 50 | 80 75 91 5 33 52 31 96 83 92 46 98 55 65 48 24 44 4 32 60 88 37 76 50 77
|
||||
Card 3: 37 39 43 53 47 20 50 56 78 65 | 80 56 32 78 72 97 40 77 17 50 87 99 36 93 63 19 39 59 44 52 23 75 9 51 43
|
||||
Card 4: 6 25 31 60 2 50 89 67 82 16 | 65 89 5 67 68 53 50 6 51 25 96 32 2 16 41 60 63 90 82 30 98 31 75 14 7
|
||||
Card 5: 43 39 98 45 33 87 36 23 61 66 | 93 61 4 21 47 32 94 99 45 23 87 64 92 43 33 5 83 16 98 44 39 77 66 18 36
|
||||
Card 6: 59 6 65 20 62 3 92 79 98 24 | 80 15 28 70 24 32 93 99 91 86 95 16 90 83 11 75 19 4 48 6 78 61 20 27 7
|
||||
Card 7: 49 54 25 44 79 68 13 60 1 43 | 16 18 4 82 99 23 80 46 79 55 14 1 32 13 54 84 37 44 20 68 25 60 27 49 43
|
||||
Card 8: 52 50 19 69 28 93 32 98 97 47 | 2 40 28 47 20 60 66 98 12 19 31 14 16 75 97 49 93 69 11 52 50 87 24 32 27
|
||||
Card 9: 47 44 94 43 75 49 77 24 93 45 | 94 47 30 43 24 77 44 31 66 75 45 54 92 49 84 53 20 11 17 16 86 93 50 85 76
|
||||
Card 10: 23 39 92 16 68 30 49 59 34 90 | 85 15 25 31 92 90 47 59 11 36 68 10 96 65 16 49 18 97 9 83 28 61 4 94 46
|
||||
Card 11: 21 37 14 89 46 31 64 90 43 45 | 63 29 14 23 7 28 13 86 83 16 19 24 78 54 47 51 58 77 71 40 56 62 20 89 39
|
||||
Card 12: 69 98 97 19 70 5 62 25 55 90 | 1 35 45 25 75 61 50 99 82 96 71 74 72 76 3 70 14 57 88 27 5 94 58 32 85
|
||||
Card 13: 24 51 65 64 29 37 86 60 41 94 | 40 13 88 85 46 59 90 55 8 72 56 93 6 71 52 87 31 91 20 5 83 36 86 43 96
|
||||
Card 14: 43 76 64 80 49 48 83 14 51 54 | 1 99 54 36 80 48 49 15 43 17 51 96 83 40 76 14 41 75 84 55 63 91 64 58 9
|
||||
Card 15: 9 33 75 53 48 76 25 83 28 24 | 1 10 69 28 76 87 71 52 26 44 66 92 75 55 7 40 93 20 12 91 30 33 46 39 31
|
||||
Card 16: 55 92 85 21 81 90 47 63 34 70 | 26 2 1 87 59 69 40 58 46 43 70 17 35 71 6 63 49 13 81 11 85 94 44 96 5
|
||||
Card 17: 21 42 95 24 35 53 39 14 18 4 | 76 23 5 79 22 20 36 69 38 77 40 37 32 89 49 15 59 44 51 25 74 34 54 16 28
|
||||
Card 18: 63 21 61 65 82 69 27 74 98 58 | 51 58 86 21 90 54 45 41 71 74 83 6 42 1 35 78 31 9 55 46 11 15 63 84 82
|
||||
Card 19: 44 41 24 51 74 20 97 31 83 39 | 17 24 2 54 73 28 13 55 49 79 42 62 58 8 95 23 86 70 76 41 26 4 80 25 11
|
||||
Card 20: 83 61 55 56 96 16 95 49 65 90 | 67 75 63 37 87 54 39 19 99 81 47 49 24 84 41 13 78 40 38 64 26 34 15 72 48
|
||||
Card 21: 23 89 57 54 90 82 2 8 65 80 | 78 14 21 39 45 42 1 80 99 20 52 11 31 50 68 82 59 4 96 55 6 46 88 38 34
|
||||
Card 22: 85 6 4 41 5 35 31 19 64 17 | 83 56 96 41 16 39 70 81 67 51 74 99 1 18 43 48 5 85 29 88 30 52 69 11 61
|
||||
Card 23: 72 88 38 82 33 10 75 44 70 53 | 7 71 56 96 19 89 30 67 21 22 48 45 80 86 39 61 4 44 74 28 23 40 46 72 78
|
||||
Card 24: 75 67 13 39 63 58 43 35 49 99 | 28 46 17 95 55 2 83 18 42 91 20 78 97 51 60 81 47 69 64 57 37 77 12 61 67
|
||||
Card 25: 87 44 62 66 82 20 7 21 51 32 | 54 97 46 1 95 14 26 47 94 25 49 30 84 12 5 73 48 89 45 53 28 74 93 88 13
|
||||
Card 26: 65 6 10 66 15 26 47 62 63 68 | 5 60 71 41 68 66 53 26 6 56 38 47 90 62 63 33 81 10 15 3 16 96 83 65 20
|
||||
Card 27: 7 95 47 35 58 87 21 68 80 37 | 94 24 39 74 43 78 69 54 10 32 84 99 41 75 6 86 11 66 56 62 16 44 5 59 65
|
||||
Card 28: 95 19 21 14 59 74 27 68 32 99 | 83 35 5 41 92 59 26 57 18 55 52 32 6 23 36 54 56 50 15 48 27 89 45 53 12
|
||||
Card 29: 1 8 93 94 72 89 13 37 58 49 | 35 62 88 26 94 50 31 87 72 78 85 1 44 49 22 5 20 91 98 13 77 93 60 48 52
|
||||
Card 30: 47 94 67 27 56 25 38 52 28 32 | 22 61 56 82 58 27 32 18 33 94 79 23 62 60 76 98 67 49 77 64 11 47 40 16 42
|
||||
Card 31: 61 68 80 67 41 6 52 33 22 91 | 54 10 72 91 31 33 95 43 39 68 81 22 63 67 32 61 27 73 66 75 36 79 6 59 80
|
||||
Card 32: 62 5 57 36 87 33 53 86 82 8 | 76 32 30 5 53 57 86 56 97 77 18 33 8 82 15 71 83 17 48 90 9 43 54 88 4
|
||||
Card 33: 79 25 27 11 17 23 76 38 15 26 | 83 80 37 36 77 24 20 55 16 59 81 7 19 1 18 91 42 29 22 2 41 27 6 50 92
|
||||
Card 34: 3 8 29 57 87 88 97 12 41 95 | 29 94 44 20 34 28 76 12 95 74 22 85 31 64 91 50 1 97 35 49 98 41 92 67 25
|
||||
Card 35: 43 79 50 20 6 76 25 14 66 89 | 93 72 50 67 38 89 13 87 46 54 36 52 20 57 56 17 3 22 43 63 14 84 15 29 16
|
||||
Card 36: 68 15 59 47 30 98 89 27 5 25 | 11 8 32 72 18 74 73 48 39 53 51 88 22 90 55 40 14 44 66 12 94 71 9 13 31
|
||||
Card 37: 11 48 72 90 12 86 34 32 51 7 | 52 80 36 46 74 64 44 27 11 47 61 84 55 28 77 26 58 54 3 5 17 60 89 16 72
|
||||
Card 38: 13 97 42 79 96 69 8 57 90 48 | 84 67 52 8 20 54 21 45 69 23 28 85 92 95 40 59 87 2 50 83 14 6 16 70 39
|
||||
Card 39: 87 67 8 38 15 20 96 30 45 97 | 36 28 43 35 9 27 14 70 29 1 40 56 60 81 63 48 53 44 31 75 49 85 64 39 69
|
||||
Card 40: 63 35 33 6 58 97 91 34 67 18 | 68 61 98 66 84 20 37 41 17 50 81 14 60 78 36 9 65 21 83 2 71 79 85 7 47
|
||||
Card 41: 75 97 62 6 92 69 53 20 45 5 | 5 53 56 69 84 97 75 62 39 18 22 64 6 92 70 41 45 20 17 63 7 9 54 29 21
|
||||
Card 42: 64 21 72 62 90 50 84 28 71 37 | 71 38 64 50 42 4 65 85 91 21 55 58 10 92 90 7 17 60 84 70 37 72 28 98 62
|
||||
Card 43: 58 28 84 32 92 18 48 73 86 5 | 43 32 33 35 84 50 64 6 21 52 92 58 29 95 11 18 28 79 48 77 5 86 60 73 10
|
||||
Card 44: 30 69 44 40 5 58 22 63 65 90 | 65 68 69 43 58 5 72 90 22 63 52 78 66 15 60 88 30 12 74 44 67 40 41 38 29
|
||||
Card 45: 69 53 87 59 27 10 16 90 52 35 | 83 4 87 89 11 30 45 70 52 13 35 92 90 79 6 68 71 86 16 97 26 72 39 96 53
|
||||
Card 46: 78 8 1 64 87 6 3 7 75 82 | 48 84 56 8 89 73 31 68 64 46 40 6 41 14 78 97 91 27 95 28 47 30 37 58 75
|
||||
Card 47: 58 24 13 97 18 50 89 9 14 81 | 97 24 54 16 14 32 78 62 50 5 18 42 20 99 15 58 13 89 96 72 81 75 29 9 86
|
||||
Card 48: 87 83 32 53 5 72 86 84 65 9 | 30 89 54 53 58 13 85 81 83 39 71 5 91 65 68 82 94 42 87 24 86 29 47 32 28
|
||||
Card 49: 38 4 66 35 19 56 78 90 81 65 | 60 16 82 68 7 49 15 32 3 22 48 11 38 53 83 45 54 23 5 81 78 34 63 27 65
|
||||
Card 50: 9 48 47 87 99 6 65 2 44 75 | 75 79 55 82 44 27 42 48 51 65 16 68 3 52 30 62 84 66 87 69 8 10 86 35 72
|
||||
Card 51: 28 24 85 63 96 30 88 29 5 50 | 71 61 30 90 65 96 41 50 82 68 39 10 81 29 48 26 80 97 28 24 27 88 38 5 63
|
||||
Card 52: 86 80 90 33 19 78 13 69 89 27 | 62 54 85 88 97 64 37 31 29 6 94 69 67 51 57 58 89 13 76 55 22 96 63 66 38
|
||||
Card 53: 75 5 78 44 10 77 3 89 39 4 | 41 61 76 56 75 85 7 22 19 51 5 87 53 10 79 24 39 94 26 57 1 35 83 32 34
|
||||
Card 54: 70 80 59 16 6 99 83 37 26 8 | 62 58 16 74 35 53 94 1 80 89 61 11 86 36 83 14 8 39 43 6 92 99 18 64 79
|
||||
Card 55: 41 39 43 58 60 65 74 76 11 46 | 58 42 60 59 13 16 83 55 37 25 32 96 22 79 69 2 89 3 21 71 35 67 95 19 45
|
||||
Card 56: 10 18 89 9 63 51 81 4 49 75 | 3 32 45 68 87 65 71 55 79 89 37 64 21 53 30 62 26 6 90 51 70 74 22 10 54
|
||||
Card 57: 27 58 75 7 80 71 45 46 26 55 | 67 76 91 16 69 82 24 48 46 87 28 20 75 36 86 8 51 42 9 84 3 43 27 34 70
|
||||
Card 58: 64 55 76 63 58 66 34 27 46 62 | 79 22 69 33 1 81 4 76 36 40 88 39 2 47 89 48 29 77 93 67 41 10 95 19 63
|
||||
Card 59: 62 1 42 32 48 12 94 36 33 86 | 71 41 46 96 12 55 10 38 15 43 1 60 67 2 30 89 37 98 19 18 69 25 50 20 77
|
||||
Card 60: 11 14 6 57 55 62 88 19 24 26 | 45 58 88 83 51 36 46 32 85 17 61 33 31 2 91 9 78 39 81 20 87 86 64 66 49
|
||||
Card 61: 9 28 27 33 53 71 38 63 55 60 | 26 77 83 57 75 50 3 68 31 52 24 94 40 18 8 80 70 5 25 72 47 44 45 89 19
|
||||
Card 62: 47 64 33 74 26 82 21 30 69 39 | 29 68 65 37 60 58 17 48 75 91 2 9 16 31 46 49 97 57 94 40 34 13 11 43 39
|
||||
Card 63: 1 16 10 67 73 48 66 78 55 32 | 31 54 78 79 42 34 81 55 37 63 29 73 90 48 11 77 67 14 46 19 16 66 89 53 32
|
||||
Card 64: 59 33 71 69 84 2 53 95 28 52 | 85 82 66 79 45 71 33 10 30 84 52 19 94 54 28 41 61 59 6 69 53 97 38 2 49
|
||||
Card 65: 17 46 40 23 93 76 45 2 43 32 | 17 32 23 2 52 7 15 77 20 39 46 64 99 59 98 89 43 40 93 4 45 11 72 76 13
|
||||
Card 66: 58 9 28 19 90 80 77 11 81 20 | 44 51 39 20 63 6 11 88 61 27 90 53 62 70 34 42 28 24 78 16 81 65 9 31 15
|
||||
Card 67: 88 42 78 9 26 43 54 95 8 40 | 58 54 10 43 60 36 40 42 95 63 4 88 82 50 38 26 8 99 31 74 13 46 91 61 44
|
||||
Card 68: 32 95 6 83 30 14 38 15 87 70 | 79 15 64 45 99 70 17 38 87 93 83 53 14 77 85 32 19 95 29 6 7 61 90 30 67
|
||||
Card 69: 76 15 92 22 48 46 42 39 84 32 | 51 26 1 9 2 73 17 94 6 62 92 77 32 90 43 48 81 22 88 58 78 46 79 98 15
|
||||
Card 70: 62 90 81 15 8 3 72 93 65 32 | 57 62 3 80 26 67 10 72 54 36 98 29 17 90 93 32 49 48 76 8 12 31 65 81 15
|
||||
Card 71: 74 46 75 14 56 20 83 28 35 61 | 57 61 75 59 54 55 56 32 71 4 18 60 72 94 39 86 30 50 48 41 7 14 77 73 85
|
||||
Card 72: 47 63 42 84 87 78 21 56 97 26 | 87 40 78 1 48 7 26 63 42 37 30 97 65 84 14 93 85 39 47 11 50 71 21 28 56
|
||||
Card 73: 20 56 88 38 50 74 76 69 63 17 | 73 47 87 89 98 18 33 14 3 78 72 39 77 97 74 80 81 51 88 59 46 2 70 69 20
|
||||
Card 74: 44 74 4 59 77 99 66 81 8 6 | 75 88 25 73 74 86 16 8 99 17 50 22 83 35 67 3 77 5 46 34 68 80 6 23 54
|
||||
Card 75: 58 25 36 26 80 12 88 51 98 71 | 71 66 77 83 51 61 23 98 33 53 18 75 43 20 26 92 70 90 25 94 86 12 34 36 22
|
||||
Card 76: 14 79 44 82 59 75 43 88 12 52 | 11 30 26 74 82 91 72 79 35 69 52 24 13 23 3 22 78 38 43 10 14 53 76 66 90
|
||||
Card 77: 65 79 38 39 3 18 89 51 9 41 | 5 87 13 45 86 85 72 7 92 22 36 69 67 82 40 73 83 15 34 59 68 57 31 84 71
|
||||
Card 78: 67 89 71 15 39 66 29 97 11 38 | 4 95 21 74 29 43 51 65 31 91 98 39 71 13 93 88 64 47 40 76 58 6 92 80 81
|
||||
Card 79: 8 60 27 44 15 52 91 99 35 47 | 97 1 35 81 53 79 16 23 52 77 11 56 2 85 21 96 46 83 5 37 49 93 13 76 69
|
||||
Card 80: 1 37 16 40 6 48 66 26 90 12 | 87 23 24 5 67 80 20 53 95 66 93 85 7 34 32 52 92 61 9 27 41 35 36 57 38
|
||||
Card 81: 72 39 83 5 69 43 73 92 88 78 | 77 74 68 78 9 75 50 65 8 14 35 96 64 80 58 6 4 46 57 61 66 85 48 40 34
|
||||
Card 82: 38 2 71 61 46 97 8 84 43 24 | 91 50 76 58 17 11 66 60 65 16 44 70 96 20 37 94 30 99 6 69 32 29 81 49 48
|
||||
Card 83: 50 89 48 66 96 97 28 5 12 76 | 89 93 79 68 16 48 44 42 28 41 83 50 97 96 76 82 15 57 10 66 5 12 74 38 4
|
||||
Card 84: 9 71 98 81 59 30 99 45 80 48 | 6 17 31 35 88 57 10 81 77 70 58 21 34 63 51 84 74 37 64 80 29 16 3 11 76
|
||||
Card 85: 36 86 69 83 56 51 19 67 65 10 | 35 3 55 38 90 59 82 2 32 10 17 36 52 69 83 65 13 92 97 99 48 30 87 68 70
|
||||
Card 86: 6 96 82 83 89 31 91 20 28 5 | 20 11 84 45 50 81 23 56 24 28 1 53 2 57 54 64 3 94 96 43 6 26 91 77 66
|
||||
Card 87: 84 22 38 2 94 23 76 64 29 42 | 13 99 48 23 62 82 38 91 31 88 14 43 66 94 36 64 49 85 26 97 71 39 22 68 60
|
||||
Card 88: 69 25 81 63 86 79 1 64 76 38 | 85 81 63 6 69 50 16 65 54 25 27 38 84 76 7 64 79 12 86 88 70 94 39 1 20
|
||||
Card 89: 7 43 74 93 60 24 33 53 97 35 | 62 51 93 86 81 71 63 2 13 99 66 83 97 37 10 77 55 27 73 92 67 19 33 88 96
|
||||
Card 90: 2 78 5 23 69 72 93 86 55 24 | 92 38 66 85 34 52 83 24 31 6 25 13 33 30 17 7 81 15 16 9 21 53 94 2 77
|
||||
Card 91: 34 21 58 13 99 32 61 65 49 30 | 50 73 18 84 99 53 21 61 94 22 26 93 30 68 34 65 58 72 77 32 49 11 13 39 9
|
||||
Card 92: 15 67 55 79 9 88 33 7 94 49 | 20 94 87 58 9 35 93 7 67 21 15 57 30 56 88 85 5 13 60 83 2 55 38 28 6
|
||||
Card 93: 16 11 80 5 33 23 96 21 56 94 | 1 37 85 94 72 42 66 16 10 70 86 77 33 21 55 11 6 45 96 29 90 14 80 48 64
|
||||
Card 94: 2 57 51 10 3 70 63 60 1 40 | 67 80 96 98 52 74 97 33 92 88 19 62 43 73 55 3 1 20 95 99 12 90 17 24 56
|
||||
Card 95: 80 18 73 50 2 3 83 65 33 26 | 7 78 28 4 2 19 14 29 61 81 17 38 57 89 11 20 5 12 13 10 24 96 75 25 55
|
||||
Card 96: 98 53 54 50 20 34 28 96 59 88 | 52 41 53 29 40 15 88 93 30 76 97 81 73 17 12 70 6 63 27 32 64 48 69 96 44
|
||||
Card 97: 66 82 79 74 75 71 29 32 96 50 | 62 46 76 30 21 50 98 17 32 75 87 96 41 42 79 73 45 92 51 91 78 35 27 72 74
|
||||
Card 98: 93 39 91 70 97 33 57 69 53 73 | 38 71 33 25 52 26 75 94 93 42 17 82 7 27 47 89 18 11 20 91 40 31 55 19 4
|
||||
Card 99: 93 31 61 29 77 60 66 92 3 10 | 55 63 56 4 61 33 60 85 45 48 78 27 25 36 42 93 20 67 49 21 7 83 65 13 71
|
||||
Card 100: 21 86 19 62 53 34 88 42 71 47 | 74 7 79 85 22 60 76 10 40 62 50 92 20 24 12 42 15 31 56 90 44 72 34 11 95
|
||||
Card 101: 8 68 64 72 98 60 56 69 57 25 | 24 5 95 77 89 58 39 63 80 48 53 66 38 61 31 3 43 1 16 71 52 82 19 14 51
|
||||
Card 102: 47 39 45 40 54 93 87 26 33 67 | 95 80 98 3 24 53 96 9 90 13 35 21 86 88 63 55 1 42 25 56 32 60 34 40 77
|
||||
Card 103: 64 18 52 28 82 54 31 49 66 44 | 4 78 40 73 32 99 33 6 29 46 11 25 47 36 14 97 79 61 63 50 55 26 30 58 77
|
||||
Card 104: 95 84 89 87 57 53 12 43 58 1 | 59 45 57 58 39 61 52 81 43 40 23 86 1 97 95 55 89 84 87 6 17 85 53 12 28
|
||||
Card 105: 98 81 56 52 37 26 46 39 88 36 | 4 34 88 32 5 73 98 26 39 77 93 42 62 82 41 81 56 1 12 33 46 36 14 52 37
|
||||
Card 106: 97 98 42 95 14 87 41 46 44 27 | 5 82 46 66 87 41 51 55 13 27 7 44 31 97 77 10 14 90 98 94 95 12 79 42 35
|
||||
Card 107: 15 30 60 32 25 73 77 63 85 81 | 16 86 56 41 20 51 25 52 73 40 74 32 15 61 99 34 60 85 77 30 5 27 63 35 81
|
||||
Card 108: 65 59 24 72 54 66 14 81 67 31 | 94 92 83 67 50 19 61 6 42 55 60 97 22 18 24 40 86 43 72 56 5 75 63 45 90
|
||||
Card 109: 90 87 3 17 80 96 36 93 34 79 | 51 11 29 96 13 66 70 99 72 67 64 42 37 30 55 98 35 12 15 84 5 10 57 19 49
|
||||
Card 110: 57 82 85 42 23 76 70 64 88 21 | 65 32 76 81 7 43 23 52 55 14 70 58 27 82 48 64 85 47 57 16 46 97 68 21 45
|
||||
Card 111: 50 62 66 33 93 43 56 70 77 35 | 94 79 19 16 35 41 78 32 91 4 14 3 13 48 63 36 75 98 64 69 27 96 77 51 74
|
||||
Card 112: 6 36 83 73 59 48 65 12 29 92 | 12 36 82 52 8 35 88 69 9 28 89 39 87 20 22 67 27 63 75 73 70 58 31 78 79
|
||||
Card 113: 25 10 29 67 87 32 54 92 62 43 | 65 19 67 75 79 29 8 73 62 97 82 87 25 18 32 93 49 5 66 27 68 42 43 11 46
|
||||
Card 114: 29 44 96 86 64 37 4 71 94 98 | 5 27 55 76 33 59 68 77 3 96 15 1 46 20 35 61 53 83 78 69 99 97 34 30 25
|
||||
Card 115: 32 90 91 88 39 66 37 35 12 21 | 85 82 71 37 87 22 72 17 35 9 58 95 64 12 33 90 68 66 15 43 4 7 91 8 84
|
||||
Card 116: 75 50 66 77 51 36 98 23 97 28 | 4 66 44 20 35 76 51 83 58 89 91 87 75 27 10 47 1 60 97 90 77 45 63 59 36
|
||||
Card 117: 85 44 56 82 39 64 30 88 79 20 | 71 88 53 27 36 85 13 11 38 91 77 19 3 99 23 73 39 44 24 45 32 15 58 79 56
|
||||
Card 118: 80 41 82 32 1 52 91 40 66 11 | 72 3 4 29 77 87 36 40 16 46 66 30 92 76 98 49 85 7 32 28 60 86 52 95 83
|
||||
Card 119: 50 66 77 26 2 49 9 25 58 81 | 80 49 50 55 16 56 20 42 31 99 69 26 28 85 66 65 70 90 84 53 40 19 60 12 38
|
||||
Card 120: 48 9 95 85 16 70 81 61 57 92 | 2 58 66 10 34 54 7 94 16 14 25 74 92 49 88 13 57 26 99 97 70 75 65 19 17
|
||||
Card 121: 50 76 20 25 53 17 2 78 85 86 | 14 40 78 89 93 48 1 28 11 4 54 71 5 69 85 61 38 94 66 64 98 95 30 67 23
|
||||
Card 122: 62 92 40 16 25 82 64 87 52 53 | 5 19 25 48 38 42 1 99 51 79 2 78 75 57 81 56 70 47 59 91 90 6 9 24 15
|
||||
Card 123: 50 91 29 69 41 73 44 51 13 26 | 66 55 22 6 17 71 1 3 67 24 88 79 65 64 60 34 7 90 78 72 28 83 82 74 10
|
||||
Card 124: 61 77 51 39 73 4 6 25 53 91 | 54 88 26 11 3 79 10 86 23 49 66 21 47 85 5 2 98 7 1 60 55 13 94 34 62
|
||||
Card 125: 31 67 93 63 21 28 12 85 39 57 | 69 46 22 59 55 75 11 97 70 1 94 14 81 96 79 44 18 36 85 34 56 48 30 72 15
|
||||
Card 126: 31 89 5 98 63 36 40 48 91 12 | 91 42 6 47 51 94 48 83 5 77 98 8 11 50 29 9 36 54 89 40 12 63 31 34 73
|
||||
Card 127: 41 88 97 87 13 80 74 49 24 6 | 43 66 62 47 36 87 6 88 24 49 96 56 25 79 8 76 23 97 41 42 80 89 13 73 74
|
||||
Card 128: 7 6 3 99 56 40 80 27 23 43 | 34 64 97 67 3 78 69 43 57 98 96 4 6 94 62 48 23 68 8 1 58 73 75 65 16
|
||||
Card 129: 46 80 39 32 35 41 61 93 57 47 | 40 63 93 89 61 4 45 46 25 96 80 39 35 14 62 95 49 32 47 2 41 99 57 82 44
|
||||
Card 130: 90 10 79 84 88 76 59 18 62 11 | 79 11 53 97 92 5 88 52 23 60 62 64 86 84 14 20 98 91 10 28 24 29 87 65 3
|
||||
Card 131: 95 50 11 76 61 4 2 8 42 47 | 40 15 46 61 8 2 29 97 65 50 19 83 76 95 59 82 48 57 43 72 42 25 31 47 53
|
||||
Card 132: 49 86 99 81 13 98 69 32 89 18 | 89 84 65 58 32 15 96 49 1 18 22 13 98 99 6 81 46 50 88 78 3 11 69 74 86
|
||||
Card 133: 18 56 75 7 48 40 38 22 10 90 | 10 42 61 18 91 38 12 67 72 54 51 22 86 77 81 87 75 34 89 97 35 6 96 7 62
|
||||
Card 134: 67 66 99 61 98 32 6 82 86 9 | 12 8 33 87 82 66 98 78 68 24 59 80 6 44 32 49 9 2 97 65 86 71 99 61 67
|
||||
Card 135: 24 59 92 68 44 20 30 8 40 77 | 28 72 51 38 58 40 30 24 21 77 92 82 59 18 50 7 19 44 20 68 91 8 32 88 94
|
||||
Card 136: 27 10 70 96 29 69 37 63 86 65 | 28 27 8 34 29 82 78 56 22 30 3 19 63 88 67 74 75 4 91 41 35 65 7 14 66
|
||||
Card 137: 74 70 86 34 89 37 73 23 29 85 | 16 65 58 88 8 5 11 26 39 91 51 31 19 78 92 87 36 34 80 94 42 81 38 40 93
|
||||
Card 138: 71 35 5 13 69 8 88 11 76 31 | 69 42 5 59 76 54 37 11 39 9 12 73 66 13 71 89 56 26 28 77 2 31 1 4 57
|
||||
Card 139: 10 50 78 91 55 61 81 19 44 59 | 97 98 39 52 56 28 94 24 3 54 45 82 14 17 5 16 27 99 37 38 26 31 53 9 35
|
||||
Card 140: 17 93 15 73 45 20 43 50 2 52 | 64 21 15 57 77 90 2 61 22 8 91 39 93 82 62 5 47 30 41 80 58 1 17 25 48
|
||||
Card 141: 52 66 4 8 87 11 14 76 23 24 | 3 55 29 16 26 61 12 43 89 15 56 24 5 36 85 62 90 75 65 71 53 45 38 50 54
|
||||
Card 142: 57 35 91 73 66 67 64 63 92 18 | 96 58 44 37 19 41 72 54 52 31 88 20 45 68 42 21 2 59 62 53 70 63 77 57 69
|
||||
Card 143: 88 70 69 13 18 97 64 89 40 29 | 74 98 30 5 85 12 38 62 66 33 36 17 71 9 97 22 47 79 39 60 89 13 83 77 8
|
||||
Card 144: 14 35 52 8 75 43 62 33 36 70 | 13 95 71 64 6 48 74 84 61 24 89 77 17 58 87 75 76 43 28 54 3 83 99 67 12
|
||||
Card 145: 53 88 65 42 72 92 43 14 3 90 | 21 19 33 59 84 61 96 41 20 31 88 71 38 72 79 48 58 55 62 36 23 11 30 18 70
|
||||
Card 146: 68 28 58 96 42 32 22 90 19 47 | 84 25 39 96 67 26 29 24 9 62 1 14 46 11 77 81 61 82 60 80 78 52 31 98 49
|
||||
Card 147: 81 85 76 67 4 63 25 97 57 27 | 2 26 43 9 56 59 29 10 13 45 35 60 86 65 15 46 19 5 79 8 44 1 6 20 21
|
||||
Card 148: 90 41 37 66 94 87 84 14 9 29 | 94 47 5 10 23 38 61 87 55 22 75 97 37 29 30 9 18 84 69 41 11 73 43 45 14
|
||||
Card 149: 84 30 17 21 47 26 81 68 57 40 | 86 78 70 5 54 40 34 38 47 72 62 56 53 7 10 37 73 92 46 61 41 74 68 23 63
|
||||
Card 150: 83 21 33 53 37 57 66 29 41 6 | 20 61 75 89 59 60 41 83 21 29 30 57 66 58 37 76 90 96 53 69 33 17 12 95 6
|
||||
Card 151: 12 5 52 36 3 29 69 6 82 27 | 82 12 27 44 50 15 76 28 29 52 57 36 73 3 34 5 94 37 6 92 84 9 10 98 69
|
||||
Card 152: 82 62 80 30 37 68 41 89 12 5 | 60 32 64 57 41 74 89 16 72 20 26 6 91 18 52 68 62 55 5 30 82 1 37 80 12
|
||||
Card 153: 97 28 55 92 70 83 58 44 67 40 | 24 58 55 88 92 40 6 83 12 70 10 22 44 76 82 97 4 98 65 28 5 32 7 67 74
|
||||
Card 154: 31 50 70 87 43 26 55 30 14 54 | 43 72 90 20 10 13 91 54 75 39 26 70 17 87 22 60 29 1 27 69 14 31 50 67 55
|
||||
Card 155: 21 4 25 52 3 16 98 43 72 81 | 87 4 21 43 90 67 39 36 13 64 6 25 29 16 83 84 5 98 9 81 78 1 74 12 96
|
||||
Card 156: 77 46 21 67 59 78 63 30 45 48 | 48 35 17 62 44 25 34 67 23 13 63 81 99 29 93 84 73 96 86 90 88 30 60 85 21
|
||||
Card 157: 43 32 99 39 58 3 38 81 79 41 | 79 41 34 8 99 80 70 43 51 38 29 68 32 83 58 2 6 36 63 95 81 67 3 28 10
|
||||
Card 158: 43 68 57 98 30 58 47 40 12 93 | 91 62 48 6 52 16 72 34 28 85 81 94 26 4 99 30 71 44 80 65 40 60 58 18 49
|
||||
Card 159: 62 30 18 57 61 68 65 98 10 56 | 98 32 29 1 15 77 55 10 13 30 80 93 38 86 70 99 97 19 85 33 17 21 48 47 89
|
||||
Card 160: 30 47 79 28 57 77 73 75 35 40 | 98 25 96 11 15 34 19 35 6 38 1 91 29 57 61 22 69 12 40 21 41 17 27 39 56
|
||||
Card 161: 62 58 10 14 73 95 77 97 47 70 | 15 46 1 36 3 66 27 77 49 45 94 65 23 61 76 8 91 42 82 13 85 67 92 68 53
|
||||
Card 162: 47 24 44 73 3 10 30 98 5 29 | 75 99 37 41 60 43 13 67 74 23 82 40 35 64 77 25 4 9 58 56 8 7 85 70 66
|
||||
Card 163: 10 17 99 41 6 14 81 23 5 84 | 95 11 99 62 53 23 8 73 48 42 96 47 39 94 56 30 58 63 22 66 33 26 35 5 43
|
||||
Card 164: 71 32 31 15 73 3 70 91 61 18 | 3 16 77 70 33 94 62 40 88 32 90 98 66 49 86 68 95 7 53 97 96 28 4 75 35
|
||||
Card 165: 61 74 1 76 17 22 19 83 5 96 | 83 5 47 29 52 40 94 32 70 95 67 84 56 31 18 62 42 9 53 36 57 48 64 15 85
|
||||
Card 166: 84 96 57 6 48 13 42 12 19 99 | 67 29 25 81 77 69 63 56 8 27 80 62 94 30 78 10 45 49 20 95 50 66 61 6 24
|
||||
Card 167: 21 41 29 39 24 98 68 40 7 78 | 44 19 53 13 17 4 2 64 87 60 1 51 10 35 94 52 25 75 92 95 80 67 82 42 86
|
||||
Card 168: 18 72 92 63 3 38 82 65 85 61 | 53 14 92 63 74 75 97 56 85 82 30 4 42 34 18 61 72 65 20 47 43 3 38 39 40
|
||||
Card 169: 98 91 13 27 52 51 36 82 80 78 | 78 42 51 62 36 38 4 95 82 17 91 27 12 98 76 13 84 52 80 32 39 50 48 19 2
|
||||
Card 170: 94 67 3 32 73 84 11 47 23 90 | 94 84 66 73 32 31 23 18 93 29 58 81 95 16 46 53 89 4 11 44 49 67 90 82 40
|
||||
Card 171: 2 55 5 19 59 73 29 65 12 23 | 33 75 5 53 90 95 68 73 29 71 11 45 72 54 59 12 55 85 56 19 17 24 8 92 2
|
||||
Card 172: 74 43 65 15 59 37 11 83 20 85 | 59 30 36 97 78 65 88 20 96 11 51 22 93 63 94 28 3 90 68 95 73 43 13 74 85
|
||||
Card 173: 53 46 64 33 65 55 8 81 1 36 | 12 22 78 35 57 96 36 3 27 29 52 80 2 79 8 76 93 54 1 24 48 32 94 14 64
|
||||
Card 174: 20 38 12 24 28 39 18 59 75 94 | 95 48 91 36 56 63 62 46 67 4 32 97 39 66 93 55 50 34 5 85 29 76 45 54 7
|
||||
Card 175: 26 96 12 74 65 57 51 18 83 75 | 26 89 74 83 65 12 58 88 92 22 8 39 18 51 34 96 75 44 94 35 30 90 69 57 23
|
||||
Card 176: 48 64 15 96 42 33 88 27 50 86 | 36 85 60 68 93 63 33 17 28 70 24 50 96 38 54 53 72 90 41 86 74 88 75 64 48
|
||||
Card 177: 66 27 35 76 89 90 31 26 20 95 | 51 94 62 77 31 5 16 20 30 86 75 42 23 11 69 24 87 76 27 60 80 46 43 57 90
|
||||
Card 178: 83 38 10 89 18 80 1 67 63 7 | 37 28 46 84 94 89 38 21 24 68 25 92 60 34 58 54 76 55 11 19 85 33 93 15 8
|
||||
Card 179: 59 82 88 8 21 16 55 2 56 45 | 2 26 73 81 90 5 13 55 21 82 69 8 22 99 36 68 53 88 86 56 16 7 45 87 28
|
||||
Card 180: 95 5 4 34 30 73 98 89 6 37 | 7 28 72 6 95 37 68 4 34 98 82 73 84 8 65 5 89 57 15 42 56 45 69 11 74
|
||||
Card 181: 85 69 79 50 37 34 11 84 5 89 | 4 35 99 48 21 97 93 25 8 37 47 79 34 16 76 26 55 67 50 75 63 15 58 84 5
|
||||
Card 182: 70 10 57 74 60 93 9 41 79 32 | 19 18 96 8 49 2 50 94 93 4 23 89 11 39 38 97 58 56 82 21 13 28 65 47 29
|
||||
Card 183: 53 70 11 25 1 37 32 4 78 45 | 23 54 83 35 11 41 1 47 18 60 36 71 10 64 95 49 69 32 45 46 61 9 4 52 25
|
||||
Card 184: 71 31 19 43 12 93 30 56 17 27 | 61 20 92 50 33 17 51 89 45 24 39 64 23 18 52 2 41 46 63 84 88 7 99 27 78
|
||||
Card 185: 44 55 78 43 18 33 69 81 82 9 | 39 57 42 79 76 67 58 1 26 63 54 82 70 22 66 55 15 38 74 96 46 53 51 28 99
|
||||
Card 186: 25 76 9 33 59 42 82 6 79 4 | 10 50 20 18 93 95 62 40 22 70 48 16 75 15 49 81 64 94 6 21 73 80 78 77 83
|
||||
Card 187: 43 33 83 89 36 31 86 22 13 14 | 3 78 63 34 8 38 23 16 81 80 54 1 95 92 60 24 82 49 44 68 62 46 66 97 28
|
||||
Card 188: 81 6 49 46 11 77 99 82 84 51 | 36 45 18 87 48 35 86 7 83 31 38 61 92 98 70 78 74 59 63 66 15 85 47 96 1
|
||||
Card 189: 50 43 3 38 20 80 40 70 82 74 | 29 55 1 2 45 97 59 49 60 79 88 90 94 57 12 24 47 61 5 52 95 75 63 48 32
|
||||
Card 190: 22 66 97 81 70 24 53 76 17 35 | 92 59 1 36 97 70 34 77 69 55 17 81 62 67 71 91 58 24 76 87 45 30 33 35 22
|
||||
Card 191: 20 65 9 10 98 71 60 83 51 34 | 68 51 10 26 20 4 56 24 34 9 65 83 60 55 5 27 8 43 71 98 14 21 32 48 64
|
||||
Card 192: 92 77 16 8 1 87 51 14 89 76 | 13 10 60 19 93 97 16 11 51 47 76 30 91 24 14 89 77 35 8 28 87 21 92 1 22
|
||||
Card 193: 53 24 36 45 60 18 35 25 12 28 | 98 29 92 35 52 99 12 45 74 18 28 30 70 68 55 24 25 77 81 36 72 20 53 50 60
|
||||
Card 194: 50 83 40 8 87 28 79 27 44 91 | 37 80 88 17 90 40 67 87 20 76 77 52 68 1 55 35 14 61 4 96 75 83 10 71 8
|
||||
Card 195: 6 41 29 40 96 49 9 55 51 18 | 69 30 77 83 47 52 59 55 70 10 92 19 85 11 86 42 53 38 35 90 51 46 80 91 84
|
||||
Card 196: 92 29 86 97 9 30 87 6 15 4 | 18 46 50 63 30 14 6 82 3 53 55 26 29 86 85 70 4 89 90 24 10 35 27 9 20
|
||||
Card 197: 80 1 81 94 98 75 58 9 19 10 | 26 37 57 58 22 1 19 94 10 87 70 5 95 40 53 81 89 93 8 80 86 9 36 75 98
|
||||
Card 198: 29 41 51 44 7 84 65 62 20 74 | 74 5 72 62 41 88 23 49 66 97 31 84 18 51 20 10 29 19 44 7 1 60 40 78 30
|
||||
Card 199: 20 2 3 95 63 60 10 81 87 90 | 60 54 3 61 38 77 42 32 62 82 90 35 9 81 2 20 87 63 8 65 95 19 30 10 85
|
||||
Card 200: 80 76 17 57 36 9 70 65 1 13 | 88 50 96 87 77 36 14 70 86 29 68 90 93 3 25 65 74 83 78 62 9 69 47 22 8
|
||||
Card 201: 19 43 79 93 31 72 66 7 18 55 | 72 20 71 43 57 19 53 83 47 35 37 67 13 31 74 81 76 18 44 55 93 97 26 84 11
|
||||
Card 202: 26 65 71 57 14 86 49 66 1 23 | 27 41 16 51 82 72 13 55 14 21 69 62 15 46 63 78 22 31 30 57 76 45 3 71 86
|
||||
Card 203: 53 43 69 4 76 74 73 11 34 88 | 46 68 63 19 55 64 88 51 33 15 17 57 53 42 76 66 80 34 11 69 73 96 59 74 16
|
||||
Card 204: 9 6 64 82 79 1 73 68 39 57 | 92 82 49 53 84 4 69 20 30 13 16 1 26 76 60 57 91 65 24 12 34 56 33 38 59
|
||||
Card 205: 45 6 76 94 78 35 95 20 85 90 | 89 94 28 15 48 87 56 32 40 88 21 33 51 53 54 67 64 9 17 78 6 57 12 98 95
|
||||
Card 206: 32 94 53 98 84 82 48 45 8 25 | 84 4 25 97 12 93 35 60 42 80 61 62 18 8 32 17 94 23 63 53 31 3 48 43 20
|
||||
Card 207: 40 18 52 70 55 29 49 43 15 20 | 38 39 78 70 35 81 34 29 51 55 17 43 52 64 16 21 69 27 47 88 2 99 18 54 3
|
||||
Card 208: 9 67 74 14 59 41 84 60 73 86 | 87 16 27 86 50 7 30 77 64 76 73 71 99 92 23 82 2 5 55 57 40 47 45 72 21
|
||||
Card 209: 45 50 11 39 28 93 77 92 41 18 | 32 6 56 34 15 87 48 64 41 30 3 46 42 21 44 72 59 29 25 77 83 66 5 12 11
|
||||
Card 210: 34 74 60 33 14 25 27 98 54 75 | 90 79 69 27 70 4 40 93 66 62 65 3 8 42 34 92 53 98 56 89 57 13 52 38 30
|
||||
Card 211: 20 21 98 93 33 65 13 48 81 53 | 19 82 78 95 77 54 89 61 58 74 39 43 1 64 73 11 72 7 32 9 17 46 8 84 86
|
||||
Card 212: 46 82 24 14 63 38 94 70 79 91 | 23 83 87 4 48 81 40 13 84 68 22 65 45 11 88 75 98 1 15 56 64 44 35 7 3
|
||||
Card 213: 79 84 12 86 58 10 11 24 32 26 | 52 94 65 29 89 7 76 80 31 21 78 37 66 69 13 41 93 73 96 16 92 44 62 3 95
|
||||
@@ -0,0 +1,41 @@
|
||||
use std::fs;
|
||||
|
||||
|
||||
fn main() {
|
||||
let file_path = "./input.text";
|
||||
|
||||
let contents = fs::read_to_string(file_path)
|
||||
.unwrap();
|
||||
|
||||
let mut sum_of_points = 0;
|
||||
for line in contents.lines()
|
||||
{
|
||||
let line_halves: Vec<&str> = line.split(" | ").collect();
|
||||
|
||||
let first_half: Vec<&str> = line_halves[0].split(": ").collect();
|
||||
|
||||
let winning_numbers: Vec<&str> = first_half[1].split(" ").filter(|num| !num.is_empty()).collect();
|
||||
|
||||
let my_numbers = line_halves[1].split(" ").filter(|num| !num.is_empty());
|
||||
|
||||
let mut points = 0;
|
||||
for number in my_numbers
|
||||
{
|
||||
if winning_numbers.contains(&number)
|
||||
{
|
||||
if points == 0
|
||||
{
|
||||
points = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
points *= 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sum_of_points += points;
|
||||
}
|
||||
|
||||
println!("Sum of points on cards: {sum_of_points}");
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53
|
||||
Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
|
||||
Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1
|
||||
Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83
|
||||
Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
|
||||
Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11
|
||||
@@ -0,0 +1,213 @@
|
||||
Card 1: 69 61 27 58 89 52 81 94 40 51 | 43 40 52 90 37 97 89 80 69 42 51 70 94 58 10 73 21 29 61 63 57 79 81 27 35
|
||||
Card 2: 5 75 37 76 98 32 24 83 44 50 | 80 75 91 5 33 52 31 96 83 92 46 98 55 65 48 24 44 4 32 60 88 37 76 50 77
|
||||
Card 3: 37 39 43 53 47 20 50 56 78 65 | 80 56 32 78 72 97 40 77 17 50 87 99 36 93 63 19 39 59 44 52 23 75 9 51 43
|
||||
Card 4: 6 25 31 60 2 50 89 67 82 16 | 65 89 5 67 68 53 50 6 51 25 96 32 2 16 41 60 63 90 82 30 98 31 75 14 7
|
||||
Card 5: 43 39 98 45 33 87 36 23 61 66 | 93 61 4 21 47 32 94 99 45 23 87 64 92 43 33 5 83 16 98 44 39 77 66 18 36
|
||||
Card 6: 59 6 65 20 62 3 92 79 98 24 | 80 15 28 70 24 32 93 99 91 86 95 16 90 83 11 75 19 4 48 6 78 61 20 27 7
|
||||
Card 7: 49 54 25 44 79 68 13 60 1 43 | 16 18 4 82 99 23 80 46 79 55 14 1 32 13 54 84 37 44 20 68 25 60 27 49 43
|
||||
Card 8: 52 50 19 69 28 93 32 98 97 47 | 2 40 28 47 20 60 66 98 12 19 31 14 16 75 97 49 93 69 11 52 50 87 24 32 27
|
||||
Card 9: 47 44 94 43 75 49 77 24 93 45 | 94 47 30 43 24 77 44 31 66 75 45 54 92 49 84 53 20 11 17 16 86 93 50 85 76
|
||||
Card 10: 23 39 92 16 68 30 49 59 34 90 | 85 15 25 31 92 90 47 59 11 36 68 10 96 65 16 49 18 97 9 83 28 61 4 94 46
|
||||
Card 11: 21 37 14 89 46 31 64 90 43 45 | 63 29 14 23 7 28 13 86 83 16 19 24 78 54 47 51 58 77 71 40 56 62 20 89 39
|
||||
Card 12: 69 98 97 19 70 5 62 25 55 90 | 1 35 45 25 75 61 50 99 82 96 71 74 72 76 3 70 14 57 88 27 5 94 58 32 85
|
||||
Card 13: 24 51 65 64 29 37 86 60 41 94 | 40 13 88 85 46 59 90 55 8 72 56 93 6 71 52 87 31 91 20 5 83 36 86 43 96
|
||||
Card 14: 43 76 64 80 49 48 83 14 51 54 | 1 99 54 36 80 48 49 15 43 17 51 96 83 40 76 14 41 75 84 55 63 91 64 58 9
|
||||
Card 15: 9 33 75 53 48 76 25 83 28 24 | 1 10 69 28 76 87 71 52 26 44 66 92 75 55 7 40 93 20 12 91 30 33 46 39 31
|
||||
Card 16: 55 92 85 21 81 90 47 63 34 70 | 26 2 1 87 59 69 40 58 46 43 70 17 35 71 6 63 49 13 81 11 85 94 44 96 5
|
||||
Card 17: 21 42 95 24 35 53 39 14 18 4 | 76 23 5 79 22 20 36 69 38 77 40 37 32 89 49 15 59 44 51 25 74 34 54 16 28
|
||||
Card 18: 63 21 61 65 82 69 27 74 98 58 | 51 58 86 21 90 54 45 41 71 74 83 6 42 1 35 78 31 9 55 46 11 15 63 84 82
|
||||
Card 19: 44 41 24 51 74 20 97 31 83 39 | 17 24 2 54 73 28 13 55 49 79 42 62 58 8 95 23 86 70 76 41 26 4 80 25 11
|
||||
Card 20: 83 61 55 56 96 16 95 49 65 90 | 67 75 63 37 87 54 39 19 99 81 47 49 24 84 41 13 78 40 38 64 26 34 15 72 48
|
||||
Card 21: 23 89 57 54 90 82 2 8 65 80 | 78 14 21 39 45 42 1 80 99 20 52 11 31 50 68 82 59 4 96 55 6 46 88 38 34
|
||||
Card 22: 85 6 4 41 5 35 31 19 64 17 | 83 56 96 41 16 39 70 81 67 51 74 99 1 18 43 48 5 85 29 88 30 52 69 11 61
|
||||
Card 23: 72 88 38 82 33 10 75 44 70 53 | 7 71 56 96 19 89 30 67 21 22 48 45 80 86 39 61 4 44 74 28 23 40 46 72 78
|
||||
Card 24: 75 67 13 39 63 58 43 35 49 99 | 28 46 17 95 55 2 83 18 42 91 20 78 97 51 60 81 47 69 64 57 37 77 12 61 67
|
||||
Card 25: 87 44 62 66 82 20 7 21 51 32 | 54 97 46 1 95 14 26 47 94 25 49 30 84 12 5 73 48 89 45 53 28 74 93 88 13
|
||||
Card 26: 65 6 10 66 15 26 47 62 63 68 | 5 60 71 41 68 66 53 26 6 56 38 47 90 62 63 33 81 10 15 3 16 96 83 65 20
|
||||
Card 27: 7 95 47 35 58 87 21 68 80 37 | 94 24 39 74 43 78 69 54 10 32 84 99 41 75 6 86 11 66 56 62 16 44 5 59 65
|
||||
Card 28: 95 19 21 14 59 74 27 68 32 99 | 83 35 5 41 92 59 26 57 18 55 52 32 6 23 36 54 56 50 15 48 27 89 45 53 12
|
||||
Card 29: 1 8 93 94 72 89 13 37 58 49 | 35 62 88 26 94 50 31 87 72 78 85 1 44 49 22 5 20 91 98 13 77 93 60 48 52
|
||||
Card 30: 47 94 67 27 56 25 38 52 28 32 | 22 61 56 82 58 27 32 18 33 94 79 23 62 60 76 98 67 49 77 64 11 47 40 16 42
|
||||
Card 31: 61 68 80 67 41 6 52 33 22 91 | 54 10 72 91 31 33 95 43 39 68 81 22 63 67 32 61 27 73 66 75 36 79 6 59 80
|
||||
Card 32: 62 5 57 36 87 33 53 86 82 8 | 76 32 30 5 53 57 86 56 97 77 18 33 8 82 15 71 83 17 48 90 9 43 54 88 4
|
||||
Card 33: 79 25 27 11 17 23 76 38 15 26 | 83 80 37 36 77 24 20 55 16 59 81 7 19 1 18 91 42 29 22 2 41 27 6 50 92
|
||||
Card 34: 3 8 29 57 87 88 97 12 41 95 | 29 94 44 20 34 28 76 12 95 74 22 85 31 64 91 50 1 97 35 49 98 41 92 67 25
|
||||
Card 35: 43 79 50 20 6 76 25 14 66 89 | 93 72 50 67 38 89 13 87 46 54 36 52 20 57 56 17 3 22 43 63 14 84 15 29 16
|
||||
Card 36: 68 15 59 47 30 98 89 27 5 25 | 11 8 32 72 18 74 73 48 39 53 51 88 22 90 55 40 14 44 66 12 94 71 9 13 31
|
||||
Card 37: 11 48 72 90 12 86 34 32 51 7 | 52 80 36 46 74 64 44 27 11 47 61 84 55 28 77 26 58 54 3 5 17 60 89 16 72
|
||||
Card 38: 13 97 42 79 96 69 8 57 90 48 | 84 67 52 8 20 54 21 45 69 23 28 85 92 95 40 59 87 2 50 83 14 6 16 70 39
|
||||
Card 39: 87 67 8 38 15 20 96 30 45 97 | 36 28 43 35 9 27 14 70 29 1 40 56 60 81 63 48 53 44 31 75 49 85 64 39 69
|
||||
Card 40: 63 35 33 6 58 97 91 34 67 18 | 68 61 98 66 84 20 37 41 17 50 81 14 60 78 36 9 65 21 83 2 71 79 85 7 47
|
||||
Card 41: 75 97 62 6 92 69 53 20 45 5 | 5 53 56 69 84 97 75 62 39 18 22 64 6 92 70 41 45 20 17 63 7 9 54 29 21
|
||||
Card 42: 64 21 72 62 90 50 84 28 71 37 | 71 38 64 50 42 4 65 85 91 21 55 58 10 92 90 7 17 60 84 70 37 72 28 98 62
|
||||
Card 43: 58 28 84 32 92 18 48 73 86 5 | 43 32 33 35 84 50 64 6 21 52 92 58 29 95 11 18 28 79 48 77 5 86 60 73 10
|
||||
Card 44: 30 69 44 40 5 58 22 63 65 90 | 65 68 69 43 58 5 72 90 22 63 52 78 66 15 60 88 30 12 74 44 67 40 41 38 29
|
||||
Card 45: 69 53 87 59 27 10 16 90 52 35 | 83 4 87 89 11 30 45 70 52 13 35 92 90 79 6 68 71 86 16 97 26 72 39 96 53
|
||||
Card 46: 78 8 1 64 87 6 3 7 75 82 | 48 84 56 8 89 73 31 68 64 46 40 6 41 14 78 97 91 27 95 28 47 30 37 58 75
|
||||
Card 47: 58 24 13 97 18 50 89 9 14 81 | 97 24 54 16 14 32 78 62 50 5 18 42 20 99 15 58 13 89 96 72 81 75 29 9 86
|
||||
Card 48: 87 83 32 53 5 72 86 84 65 9 | 30 89 54 53 58 13 85 81 83 39 71 5 91 65 68 82 94 42 87 24 86 29 47 32 28
|
||||
Card 49: 38 4 66 35 19 56 78 90 81 65 | 60 16 82 68 7 49 15 32 3 22 48 11 38 53 83 45 54 23 5 81 78 34 63 27 65
|
||||
Card 50: 9 48 47 87 99 6 65 2 44 75 | 75 79 55 82 44 27 42 48 51 65 16 68 3 52 30 62 84 66 87 69 8 10 86 35 72
|
||||
Card 51: 28 24 85 63 96 30 88 29 5 50 | 71 61 30 90 65 96 41 50 82 68 39 10 81 29 48 26 80 97 28 24 27 88 38 5 63
|
||||
Card 52: 86 80 90 33 19 78 13 69 89 27 | 62 54 85 88 97 64 37 31 29 6 94 69 67 51 57 58 89 13 76 55 22 96 63 66 38
|
||||
Card 53: 75 5 78 44 10 77 3 89 39 4 | 41 61 76 56 75 85 7 22 19 51 5 87 53 10 79 24 39 94 26 57 1 35 83 32 34
|
||||
Card 54: 70 80 59 16 6 99 83 37 26 8 | 62 58 16 74 35 53 94 1 80 89 61 11 86 36 83 14 8 39 43 6 92 99 18 64 79
|
||||
Card 55: 41 39 43 58 60 65 74 76 11 46 | 58 42 60 59 13 16 83 55 37 25 32 96 22 79 69 2 89 3 21 71 35 67 95 19 45
|
||||
Card 56: 10 18 89 9 63 51 81 4 49 75 | 3 32 45 68 87 65 71 55 79 89 37 64 21 53 30 62 26 6 90 51 70 74 22 10 54
|
||||
Card 57: 27 58 75 7 80 71 45 46 26 55 | 67 76 91 16 69 82 24 48 46 87 28 20 75 36 86 8 51 42 9 84 3 43 27 34 70
|
||||
Card 58: 64 55 76 63 58 66 34 27 46 62 | 79 22 69 33 1 81 4 76 36 40 88 39 2 47 89 48 29 77 93 67 41 10 95 19 63
|
||||
Card 59: 62 1 42 32 48 12 94 36 33 86 | 71 41 46 96 12 55 10 38 15 43 1 60 67 2 30 89 37 98 19 18 69 25 50 20 77
|
||||
Card 60: 11 14 6 57 55 62 88 19 24 26 | 45 58 88 83 51 36 46 32 85 17 61 33 31 2 91 9 78 39 81 20 87 86 64 66 49
|
||||
Card 61: 9 28 27 33 53 71 38 63 55 60 | 26 77 83 57 75 50 3 68 31 52 24 94 40 18 8 80 70 5 25 72 47 44 45 89 19
|
||||
Card 62: 47 64 33 74 26 82 21 30 69 39 | 29 68 65 37 60 58 17 48 75 91 2 9 16 31 46 49 97 57 94 40 34 13 11 43 39
|
||||
Card 63: 1 16 10 67 73 48 66 78 55 32 | 31 54 78 79 42 34 81 55 37 63 29 73 90 48 11 77 67 14 46 19 16 66 89 53 32
|
||||
Card 64: 59 33 71 69 84 2 53 95 28 52 | 85 82 66 79 45 71 33 10 30 84 52 19 94 54 28 41 61 59 6 69 53 97 38 2 49
|
||||
Card 65: 17 46 40 23 93 76 45 2 43 32 | 17 32 23 2 52 7 15 77 20 39 46 64 99 59 98 89 43 40 93 4 45 11 72 76 13
|
||||
Card 66: 58 9 28 19 90 80 77 11 81 20 | 44 51 39 20 63 6 11 88 61 27 90 53 62 70 34 42 28 24 78 16 81 65 9 31 15
|
||||
Card 67: 88 42 78 9 26 43 54 95 8 40 | 58 54 10 43 60 36 40 42 95 63 4 88 82 50 38 26 8 99 31 74 13 46 91 61 44
|
||||
Card 68: 32 95 6 83 30 14 38 15 87 70 | 79 15 64 45 99 70 17 38 87 93 83 53 14 77 85 32 19 95 29 6 7 61 90 30 67
|
||||
Card 69: 76 15 92 22 48 46 42 39 84 32 | 51 26 1 9 2 73 17 94 6 62 92 77 32 90 43 48 81 22 88 58 78 46 79 98 15
|
||||
Card 70: 62 90 81 15 8 3 72 93 65 32 | 57 62 3 80 26 67 10 72 54 36 98 29 17 90 93 32 49 48 76 8 12 31 65 81 15
|
||||
Card 71: 74 46 75 14 56 20 83 28 35 61 | 57 61 75 59 54 55 56 32 71 4 18 60 72 94 39 86 30 50 48 41 7 14 77 73 85
|
||||
Card 72: 47 63 42 84 87 78 21 56 97 26 | 87 40 78 1 48 7 26 63 42 37 30 97 65 84 14 93 85 39 47 11 50 71 21 28 56
|
||||
Card 73: 20 56 88 38 50 74 76 69 63 17 | 73 47 87 89 98 18 33 14 3 78 72 39 77 97 74 80 81 51 88 59 46 2 70 69 20
|
||||
Card 74: 44 74 4 59 77 99 66 81 8 6 | 75 88 25 73 74 86 16 8 99 17 50 22 83 35 67 3 77 5 46 34 68 80 6 23 54
|
||||
Card 75: 58 25 36 26 80 12 88 51 98 71 | 71 66 77 83 51 61 23 98 33 53 18 75 43 20 26 92 70 90 25 94 86 12 34 36 22
|
||||
Card 76: 14 79 44 82 59 75 43 88 12 52 | 11 30 26 74 82 91 72 79 35 69 52 24 13 23 3 22 78 38 43 10 14 53 76 66 90
|
||||
Card 77: 65 79 38 39 3 18 89 51 9 41 | 5 87 13 45 86 85 72 7 92 22 36 69 67 82 40 73 83 15 34 59 68 57 31 84 71
|
||||
Card 78: 67 89 71 15 39 66 29 97 11 38 | 4 95 21 74 29 43 51 65 31 91 98 39 71 13 93 88 64 47 40 76 58 6 92 80 81
|
||||
Card 79: 8 60 27 44 15 52 91 99 35 47 | 97 1 35 81 53 79 16 23 52 77 11 56 2 85 21 96 46 83 5 37 49 93 13 76 69
|
||||
Card 80: 1 37 16 40 6 48 66 26 90 12 | 87 23 24 5 67 80 20 53 95 66 93 85 7 34 32 52 92 61 9 27 41 35 36 57 38
|
||||
Card 81: 72 39 83 5 69 43 73 92 88 78 | 77 74 68 78 9 75 50 65 8 14 35 96 64 80 58 6 4 46 57 61 66 85 48 40 34
|
||||
Card 82: 38 2 71 61 46 97 8 84 43 24 | 91 50 76 58 17 11 66 60 65 16 44 70 96 20 37 94 30 99 6 69 32 29 81 49 48
|
||||
Card 83: 50 89 48 66 96 97 28 5 12 76 | 89 93 79 68 16 48 44 42 28 41 83 50 97 96 76 82 15 57 10 66 5 12 74 38 4
|
||||
Card 84: 9 71 98 81 59 30 99 45 80 48 | 6 17 31 35 88 57 10 81 77 70 58 21 34 63 51 84 74 37 64 80 29 16 3 11 76
|
||||
Card 85: 36 86 69 83 56 51 19 67 65 10 | 35 3 55 38 90 59 82 2 32 10 17 36 52 69 83 65 13 92 97 99 48 30 87 68 70
|
||||
Card 86: 6 96 82 83 89 31 91 20 28 5 | 20 11 84 45 50 81 23 56 24 28 1 53 2 57 54 64 3 94 96 43 6 26 91 77 66
|
||||
Card 87: 84 22 38 2 94 23 76 64 29 42 | 13 99 48 23 62 82 38 91 31 88 14 43 66 94 36 64 49 85 26 97 71 39 22 68 60
|
||||
Card 88: 69 25 81 63 86 79 1 64 76 38 | 85 81 63 6 69 50 16 65 54 25 27 38 84 76 7 64 79 12 86 88 70 94 39 1 20
|
||||
Card 89: 7 43 74 93 60 24 33 53 97 35 | 62 51 93 86 81 71 63 2 13 99 66 83 97 37 10 77 55 27 73 92 67 19 33 88 96
|
||||
Card 90: 2 78 5 23 69 72 93 86 55 24 | 92 38 66 85 34 52 83 24 31 6 25 13 33 30 17 7 81 15 16 9 21 53 94 2 77
|
||||
Card 91: 34 21 58 13 99 32 61 65 49 30 | 50 73 18 84 99 53 21 61 94 22 26 93 30 68 34 65 58 72 77 32 49 11 13 39 9
|
||||
Card 92: 15 67 55 79 9 88 33 7 94 49 | 20 94 87 58 9 35 93 7 67 21 15 57 30 56 88 85 5 13 60 83 2 55 38 28 6
|
||||
Card 93: 16 11 80 5 33 23 96 21 56 94 | 1 37 85 94 72 42 66 16 10 70 86 77 33 21 55 11 6 45 96 29 90 14 80 48 64
|
||||
Card 94: 2 57 51 10 3 70 63 60 1 40 | 67 80 96 98 52 74 97 33 92 88 19 62 43 73 55 3 1 20 95 99 12 90 17 24 56
|
||||
Card 95: 80 18 73 50 2 3 83 65 33 26 | 7 78 28 4 2 19 14 29 61 81 17 38 57 89 11 20 5 12 13 10 24 96 75 25 55
|
||||
Card 96: 98 53 54 50 20 34 28 96 59 88 | 52 41 53 29 40 15 88 93 30 76 97 81 73 17 12 70 6 63 27 32 64 48 69 96 44
|
||||
Card 97: 66 82 79 74 75 71 29 32 96 50 | 62 46 76 30 21 50 98 17 32 75 87 96 41 42 79 73 45 92 51 91 78 35 27 72 74
|
||||
Card 98: 93 39 91 70 97 33 57 69 53 73 | 38 71 33 25 52 26 75 94 93 42 17 82 7 27 47 89 18 11 20 91 40 31 55 19 4
|
||||
Card 99: 93 31 61 29 77 60 66 92 3 10 | 55 63 56 4 61 33 60 85 45 48 78 27 25 36 42 93 20 67 49 21 7 83 65 13 71
|
||||
Card 100: 21 86 19 62 53 34 88 42 71 47 | 74 7 79 85 22 60 76 10 40 62 50 92 20 24 12 42 15 31 56 90 44 72 34 11 95
|
||||
Card 101: 8 68 64 72 98 60 56 69 57 25 | 24 5 95 77 89 58 39 63 80 48 53 66 38 61 31 3 43 1 16 71 52 82 19 14 51
|
||||
Card 102: 47 39 45 40 54 93 87 26 33 67 | 95 80 98 3 24 53 96 9 90 13 35 21 86 88 63 55 1 42 25 56 32 60 34 40 77
|
||||
Card 103: 64 18 52 28 82 54 31 49 66 44 | 4 78 40 73 32 99 33 6 29 46 11 25 47 36 14 97 79 61 63 50 55 26 30 58 77
|
||||
Card 104: 95 84 89 87 57 53 12 43 58 1 | 59 45 57 58 39 61 52 81 43 40 23 86 1 97 95 55 89 84 87 6 17 85 53 12 28
|
||||
Card 105: 98 81 56 52 37 26 46 39 88 36 | 4 34 88 32 5 73 98 26 39 77 93 42 62 82 41 81 56 1 12 33 46 36 14 52 37
|
||||
Card 106: 97 98 42 95 14 87 41 46 44 27 | 5 82 46 66 87 41 51 55 13 27 7 44 31 97 77 10 14 90 98 94 95 12 79 42 35
|
||||
Card 107: 15 30 60 32 25 73 77 63 85 81 | 16 86 56 41 20 51 25 52 73 40 74 32 15 61 99 34 60 85 77 30 5 27 63 35 81
|
||||
Card 108: 65 59 24 72 54 66 14 81 67 31 | 94 92 83 67 50 19 61 6 42 55 60 97 22 18 24 40 86 43 72 56 5 75 63 45 90
|
||||
Card 109: 90 87 3 17 80 96 36 93 34 79 | 51 11 29 96 13 66 70 99 72 67 64 42 37 30 55 98 35 12 15 84 5 10 57 19 49
|
||||
Card 110: 57 82 85 42 23 76 70 64 88 21 | 65 32 76 81 7 43 23 52 55 14 70 58 27 82 48 64 85 47 57 16 46 97 68 21 45
|
||||
Card 111: 50 62 66 33 93 43 56 70 77 35 | 94 79 19 16 35 41 78 32 91 4 14 3 13 48 63 36 75 98 64 69 27 96 77 51 74
|
||||
Card 112: 6 36 83 73 59 48 65 12 29 92 | 12 36 82 52 8 35 88 69 9 28 89 39 87 20 22 67 27 63 75 73 70 58 31 78 79
|
||||
Card 113: 25 10 29 67 87 32 54 92 62 43 | 65 19 67 75 79 29 8 73 62 97 82 87 25 18 32 93 49 5 66 27 68 42 43 11 46
|
||||
Card 114: 29 44 96 86 64 37 4 71 94 98 | 5 27 55 76 33 59 68 77 3 96 15 1 46 20 35 61 53 83 78 69 99 97 34 30 25
|
||||
Card 115: 32 90 91 88 39 66 37 35 12 21 | 85 82 71 37 87 22 72 17 35 9 58 95 64 12 33 90 68 66 15 43 4 7 91 8 84
|
||||
Card 116: 75 50 66 77 51 36 98 23 97 28 | 4 66 44 20 35 76 51 83 58 89 91 87 75 27 10 47 1 60 97 90 77 45 63 59 36
|
||||
Card 117: 85 44 56 82 39 64 30 88 79 20 | 71 88 53 27 36 85 13 11 38 91 77 19 3 99 23 73 39 44 24 45 32 15 58 79 56
|
||||
Card 118: 80 41 82 32 1 52 91 40 66 11 | 72 3 4 29 77 87 36 40 16 46 66 30 92 76 98 49 85 7 32 28 60 86 52 95 83
|
||||
Card 119: 50 66 77 26 2 49 9 25 58 81 | 80 49 50 55 16 56 20 42 31 99 69 26 28 85 66 65 70 90 84 53 40 19 60 12 38
|
||||
Card 120: 48 9 95 85 16 70 81 61 57 92 | 2 58 66 10 34 54 7 94 16 14 25 74 92 49 88 13 57 26 99 97 70 75 65 19 17
|
||||
Card 121: 50 76 20 25 53 17 2 78 85 86 | 14 40 78 89 93 48 1 28 11 4 54 71 5 69 85 61 38 94 66 64 98 95 30 67 23
|
||||
Card 122: 62 92 40 16 25 82 64 87 52 53 | 5 19 25 48 38 42 1 99 51 79 2 78 75 57 81 56 70 47 59 91 90 6 9 24 15
|
||||
Card 123: 50 91 29 69 41 73 44 51 13 26 | 66 55 22 6 17 71 1 3 67 24 88 79 65 64 60 34 7 90 78 72 28 83 82 74 10
|
||||
Card 124: 61 77 51 39 73 4 6 25 53 91 | 54 88 26 11 3 79 10 86 23 49 66 21 47 85 5 2 98 7 1 60 55 13 94 34 62
|
||||
Card 125: 31 67 93 63 21 28 12 85 39 57 | 69 46 22 59 55 75 11 97 70 1 94 14 81 96 79 44 18 36 85 34 56 48 30 72 15
|
||||
Card 126: 31 89 5 98 63 36 40 48 91 12 | 91 42 6 47 51 94 48 83 5 77 98 8 11 50 29 9 36 54 89 40 12 63 31 34 73
|
||||
Card 127: 41 88 97 87 13 80 74 49 24 6 | 43 66 62 47 36 87 6 88 24 49 96 56 25 79 8 76 23 97 41 42 80 89 13 73 74
|
||||
Card 128: 7 6 3 99 56 40 80 27 23 43 | 34 64 97 67 3 78 69 43 57 98 96 4 6 94 62 48 23 68 8 1 58 73 75 65 16
|
||||
Card 129: 46 80 39 32 35 41 61 93 57 47 | 40 63 93 89 61 4 45 46 25 96 80 39 35 14 62 95 49 32 47 2 41 99 57 82 44
|
||||
Card 130: 90 10 79 84 88 76 59 18 62 11 | 79 11 53 97 92 5 88 52 23 60 62 64 86 84 14 20 98 91 10 28 24 29 87 65 3
|
||||
Card 131: 95 50 11 76 61 4 2 8 42 47 | 40 15 46 61 8 2 29 97 65 50 19 83 76 95 59 82 48 57 43 72 42 25 31 47 53
|
||||
Card 132: 49 86 99 81 13 98 69 32 89 18 | 89 84 65 58 32 15 96 49 1 18 22 13 98 99 6 81 46 50 88 78 3 11 69 74 86
|
||||
Card 133: 18 56 75 7 48 40 38 22 10 90 | 10 42 61 18 91 38 12 67 72 54 51 22 86 77 81 87 75 34 89 97 35 6 96 7 62
|
||||
Card 134: 67 66 99 61 98 32 6 82 86 9 | 12 8 33 87 82 66 98 78 68 24 59 80 6 44 32 49 9 2 97 65 86 71 99 61 67
|
||||
Card 135: 24 59 92 68 44 20 30 8 40 77 | 28 72 51 38 58 40 30 24 21 77 92 82 59 18 50 7 19 44 20 68 91 8 32 88 94
|
||||
Card 136: 27 10 70 96 29 69 37 63 86 65 | 28 27 8 34 29 82 78 56 22 30 3 19 63 88 67 74 75 4 91 41 35 65 7 14 66
|
||||
Card 137: 74 70 86 34 89 37 73 23 29 85 | 16 65 58 88 8 5 11 26 39 91 51 31 19 78 92 87 36 34 80 94 42 81 38 40 93
|
||||
Card 138: 71 35 5 13 69 8 88 11 76 31 | 69 42 5 59 76 54 37 11 39 9 12 73 66 13 71 89 56 26 28 77 2 31 1 4 57
|
||||
Card 139: 10 50 78 91 55 61 81 19 44 59 | 97 98 39 52 56 28 94 24 3 54 45 82 14 17 5 16 27 99 37 38 26 31 53 9 35
|
||||
Card 140: 17 93 15 73 45 20 43 50 2 52 | 64 21 15 57 77 90 2 61 22 8 91 39 93 82 62 5 47 30 41 80 58 1 17 25 48
|
||||
Card 141: 52 66 4 8 87 11 14 76 23 24 | 3 55 29 16 26 61 12 43 89 15 56 24 5 36 85 62 90 75 65 71 53 45 38 50 54
|
||||
Card 142: 57 35 91 73 66 67 64 63 92 18 | 96 58 44 37 19 41 72 54 52 31 88 20 45 68 42 21 2 59 62 53 70 63 77 57 69
|
||||
Card 143: 88 70 69 13 18 97 64 89 40 29 | 74 98 30 5 85 12 38 62 66 33 36 17 71 9 97 22 47 79 39 60 89 13 83 77 8
|
||||
Card 144: 14 35 52 8 75 43 62 33 36 70 | 13 95 71 64 6 48 74 84 61 24 89 77 17 58 87 75 76 43 28 54 3 83 99 67 12
|
||||
Card 145: 53 88 65 42 72 92 43 14 3 90 | 21 19 33 59 84 61 96 41 20 31 88 71 38 72 79 48 58 55 62 36 23 11 30 18 70
|
||||
Card 146: 68 28 58 96 42 32 22 90 19 47 | 84 25 39 96 67 26 29 24 9 62 1 14 46 11 77 81 61 82 60 80 78 52 31 98 49
|
||||
Card 147: 81 85 76 67 4 63 25 97 57 27 | 2 26 43 9 56 59 29 10 13 45 35 60 86 65 15 46 19 5 79 8 44 1 6 20 21
|
||||
Card 148: 90 41 37 66 94 87 84 14 9 29 | 94 47 5 10 23 38 61 87 55 22 75 97 37 29 30 9 18 84 69 41 11 73 43 45 14
|
||||
Card 149: 84 30 17 21 47 26 81 68 57 40 | 86 78 70 5 54 40 34 38 47 72 62 56 53 7 10 37 73 92 46 61 41 74 68 23 63
|
||||
Card 150: 83 21 33 53 37 57 66 29 41 6 | 20 61 75 89 59 60 41 83 21 29 30 57 66 58 37 76 90 96 53 69 33 17 12 95 6
|
||||
Card 151: 12 5 52 36 3 29 69 6 82 27 | 82 12 27 44 50 15 76 28 29 52 57 36 73 3 34 5 94 37 6 92 84 9 10 98 69
|
||||
Card 152: 82 62 80 30 37 68 41 89 12 5 | 60 32 64 57 41 74 89 16 72 20 26 6 91 18 52 68 62 55 5 30 82 1 37 80 12
|
||||
Card 153: 97 28 55 92 70 83 58 44 67 40 | 24 58 55 88 92 40 6 83 12 70 10 22 44 76 82 97 4 98 65 28 5 32 7 67 74
|
||||
Card 154: 31 50 70 87 43 26 55 30 14 54 | 43 72 90 20 10 13 91 54 75 39 26 70 17 87 22 60 29 1 27 69 14 31 50 67 55
|
||||
Card 155: 21 4 25 52 3 16 98 43 72 81 | 87 4 21 43 90 67 39 36 13 64 6 25 29 16 83 84 5 98 9 81 78 1 74 12 96
|
||||
Card 156: 77 46 21 67 59 78 63 30 45 48 | 48 35 17 62 44 25 34 67 23 13 63 81 99 29 93 84 73 96 86 90 88 30 60 85 21
|
||||
Card 157: 43 32 99 39 58 3 38 81 79 41 | 79 41 34 8 99 80 70 43 51 38 29 68 32 83 58 2 6 36 63 95 81 67 3 28 10
|
||||
Card 158: 43 68 57 98 30 58 47 40 12 93 | 91 62 48 6 52 16 72 34 28 85 81 94 26 4 99 30 71 44 80 65 40 60 58 18 49
|
||||
Card 159: 62 30 18 57 61 68 65 98 10 56 | 98 32 29 1 15 77 55 10 13 30 80 93 38 86 70 99 97 19 85 33 17 21 48 47 89
|
||||
Card 160: 30 47 79 28 57 77 73 75 35 40 | 98 25 96 11 15 34 19 35 6 38 1 91 29 57 61 22 69 12 40 21 41 17 27 39 56
|
||||
Card 161: 62 58 10 14 73 95 77 97 47 70 | 15 46 1 36 3 66 27 77 49 45 94 65 23 61 76 8 91 42 82 13 85 67 92 68 53
|
||||
Card 162: 47 24 44 73 3 10 30 98 5 29 | 75 99 37 41 60 43 13 67 74 23 82 40 35 64 77 25 4 9 58 56 8 7 85 70 66
|
||||
Card 163: 10 17 99 41 6 14 81 23 5 84 | 95 11 99 62 53 23 8 73 48 42 96 47 39 94 56 30 58 63 22 66 33 26 35 5 43
|
||||
Card 164: 71 32 31 15 73 3 70 91 61 18 | 3 16 77 70 33 94 62 40 88 32 90 98 66 49 86 68 95 7 53 97 96 28 4 75 35
|
||||
Card 165: 61 74 1 76 17 22 19 83 5 96 | 83 5 47 29 52 40 94 32 70 95 67 84 56 31 18 62 42 9 53 36 57 48 64 15 85
|
||||
Card 166: 84 96 57 6 48 13 42 12 19 99 | 67 29 25 81 77 69 63 56 8 27 80 62 94 30 78 10 45 49 20 95 50 66 61 6 24
|
||||
Card 167: 21 41 29 39 24 98 68 40 7 78 | 44 19 53 13 17 4 2 64 87 60 1 51 10 35 94 52 25 75 92 95 80 67 82 42 86
|
||||
Card 168: 18 72 92 63 3 38 82 65 85 61 | 53 14 92 63 74 75 97 56 85 82 30 4 42 34 18 61 72 65 20 47 43 3 38 39 40
|
||||
Card 169: 98 91 13 27 52 51 36 82 80 78 | 78 42 51 62 36 38 4 95 82 17 91 27 12 98 76 13 84 52 80 32 39 50 48 19 2
|
||||
Card 170: 94 67 3 32 73 84 11 47 23 90 | 94 84 66 73 32 31 23 18 93 29 58 81 95 16 46 53 89 4 11 44 49 67 90 82 40
|
||||
Card 171: 2 55 5 19 59 73 29 65 12 23 | 33 75 5 53 90 95 68 73 29 71 11 45 72 54 59 12 55 85 56 19 17 24 8 92 2
|
||||
Card 172: 74 43 65 15 59 37 11 83 20 85 | 59 30 36 97 78 65 88 20 96 11 51 22 93 63 94 28 3 90 68 95 73 43 13 74 85
|
||||
Card 173: 53 46 64 33 65 55 8 81 1 36 | 12 22 78 35 57 96 36 3 27 29 52 80 2 79 8 76 93 54 1 24 48 32 94 14 64
|
||||
Card 174: 20 38 12 24 28 39 18 59 75 94 | 95 48 91 36 56 63 62 46 67 4 32 97 39 66 93 55 50 34 5 85 29 76 45 54 7
|
||||
Card 175: 26 96 12 74 65 57 51 18 83 75 | 26 89 74 83 65 12 58 88 92 22 8 39 18 51 34 96 75 44 94 35 30 90 69 57 23
|
||||
Card 176: 48 64 15 96 42 33 88 27 50 86 | 36 85 60 68 93 63 33 17 28 70 24 50 96 38 54 53 72 90 41 86 74 88 75 64 48
|
||||
Card 177: 66 27 35 76 89 90 31 26 20 95 | 51 94 62 77 31 5 16 20 30 86 75 42 23 11 69 24 87 76 27 60 80 46 43 57 90
|
||||
Card 178: 83 38 10 89 18 80 1 67 63 7 | 37 28 46 84 94 89 38 21 24 68 25 92 60 34 58 54 76 55 11 19 85 33 93 15 8
|
||||
Card 179: 59 82 88 8 21 16 55 2 56 45 | 2 26 73 81 90 5 13 55 21 82 69 8 22 99 36 68 53 88 86 56 16 7 45 87 28
|
||||
Card 180: 95 5 4 34 30 73 98 89 6 37 | 7 28 72 6 95 37 68 4 34 98 82 73 84 8 65 5 89 57 15 42 56 45 69 11 74
|
||||
Card 181: 85 69 79 50 37 34 11 84 5 89 | 4 35 99 48 21 97 93 25 8 37 47 79 34 16 76 26 55 67 50 75 63 15 58 84 5
|
||||
Card 182: 70 10 57 74 60 93 9 41 79 32 | 19 18 96 8 49 2 50 94 93 4 23 89 11 39 38 97 58 56 82 21 13 28 65 47 29
|
||||
Card 183: 53 70 11 25 1 37 32 4 78 45 | 23 54 83 35 11 41 1 47 18 60 36 71 10 64 95 49 69 32 45 46 61 9 4 52 25
|
||||
Card 184: 71 31 19 43 12 93 30 56 17 27 | 61 20 92 50 33 17 51 89 45 24 39 64 23 18 52 2 41 46 63 84 88 7 99 27 78
|
||||
Card 185: 44 55 78 43 18 33 69 81 82 9 | 39 57 42 79 76 67 58 1 26 63 54 82 70 22 66 55 15 38 74 96 46 53 51 28 99
|
||||
Card 186: 25 76 9 33 59 42 82 6 79 4 | 10 50 20 18 93 95 62 40 22 70 48 16 75 15 49 81 64 94 6 21 73 80 78 77 83
|
||||
Card 187: 43 33 83 89 36 31 86 22 13 14 | 3 78 63 34 8 38 23 16 81 80 54 1 95 92 60 24 82 49 44 68 62 46 66 97 28
|
||||
Card 188: 81 6 49 46 11 77 99 82 84 51 | 36 45 18 87 48 35 86 7 83 31 38 61 92 98 70 78 74 59 63 66 15 85 47 96 1
|
||||
Card 189: 50 43 3 38 20 80 40 70 82 74 | 29 55 1 2 45 97 59 49 60 79 88 90 94 57 12 24 47 61 5 52 95 75 63 48 32
|
||||
Card 190: 22 66 97 81 70 24 53 76 17 35 | 92 59 1 36 97 70 34 77 69 55 17 81 62 67 71 91 58 24 76 87 45 30 33 35 22
|
||||
Card 191: 20 65 9 10 98 71 60 83 51 34 | 68 51 10 26 20 4 56 24 34 9 65 83 60 55 5 27 8 43 71 98 14 21 32 48 64
|
||||
Card 192: 92 77 16 8 1 87 51 14 89 76 | 13 10 60 19 93 97 16 11 51 47 76 30 91 24 14 89 77 35 8 28 87 21 92 1 22
|
||||
Card 193: 53 24 36 45 60 18 35 25 12 28 | 98 29 92 35 52 99 12 45 74 18 28 30 70 68 55 24 25 77 81 36 72 20 53 50 60
|
||||
Card 194: 50 83 40 8 87 28 79 27 44 91 | 37 80 88 17 90 40 67 87 20 76 77 52 68 1 55 35 14 61 4 96 75 83 10 71 8
|
||||
Card 195: 6 41 29 40 96 49 9 55 51 18 | 69 30 77 83 47 52 59 55 70 10 92 19 85 11 86 42 53 38 35 90 51 46 80 91 84
|
||||
Card 196: 92 29 86 97 9 30 87 6 15 4 | 18 46 50 63 30 14 6 82 3 53 55 26 29 86 85 70 4 89 90 24 10 35 27 9 20
|
||||
Card 197: 80 1 81 94 98 75 58 9 19 10 | 26 37 57 58 22 1 19 94 10 87 70 5 95 40 53 81 89 93 8 80 86 9 36 75 98
|
||||
Card 198: 29 41 51 44 7 84 65 62 20 74 | 74 5 72 62 41 88 23 49 66 97 31 84 18 51 20 10 29 19 44 7 1 60 40 78 30
|
||||
Card 199: 20 2 3 95 63 60 10 81 87 90 | 60 54 3 61 38 77 42 32 62 82 90 35 9 81 2 20 87 63 8 65 95 19 30 10 85
|
||||
Card 200: 80 76 17 57 36 9 70 65 1 13 | 88 50 96 87 77 36 14 70 86 29 68 90 93 3 25 65 74 83 78 62 9 69 47 22 8
|
||||
Card 201: 19 43 79 93 31 72 66 7 18 55 | 72 20 71 43 57 19 53 83 47 35 37 67 13 31 74 81 76 18 44 55 93 97 26 84 11
|
||||
Card 202: 26 65 71 57 14 86 49 66 1 23 | 27 41 16 51 82 72 13 55 14 21 69 62 15 46 63 78 22 31 30 57 76 45 3 71 86
|
||||
Card 203: 53 43 69 4 76 74 73 11 34 88 | 46 68 63 19 55 64 88 51 33 15 17 57 53 42 76 66 80 34 11 69 73 96 59 74 16
|
||||
Card 204: 9 6 64 82 79 1 73 68 39 57 | 92 82 49 53 84 4 69 20 30 13 16 1 26 76 60 57 91 65 24 12 34 56 33 38 59
|
||||
Card 205: 45 6 76 94 78 35 95 20 85 90 | 89 94 28 15 48 87 56 32 40 88 21 33 51 53 54 67 64 9 17 78 6 57 12 98 95
|
||||
Card 206: 32 94 53 98 84 82 48 45 8 25 | 84 4 25 97 12 93 35 60 42 80 61 62 18 8 32 17 94 23 63 53 31 3 48 43 20
|
||||
Card 207: 40 18 52 70 55 29 49 43 15 20 | 38 39 78 70 35 81 34 29 51 55 17 43 52 64 16 21 69 27 47 88 2 99 18 54 3
|
||||
Card 208: 9 67 74 14 59 41 84 60 73 86 | 87 16 27 86 50 7 30 77 64 76 73 71 99 92 23 82 2 5 55 57 40 47 45 72 21
|
||||
Card 209: 45 50 11 39 28 93 77 92 41 18 | 32 6 56 34 15 87 48 64 41 30 3 46 42 21 44 72 59 29 25 77 83 66 5 12 11
|
||||
Card 210: 34 74 60 33 14 25 27 98 54 75 | 90 79 69 27 70 4 40 93 66 62 65 3 8 42 34 92 53 98 56 89 57 13 52 38 30
|
||||
Card 211: 20 21 98 93 33 65 13 48 81 53 | 19 82 78 95 77 54 89 61 58 74 39 43 1 64 73 11 72 7 32 9 17 46 8 84 86
|
||||
Card 212: 46 82 24 14 63 38 94 70 79 91 | 23 83 87 4 48 81 40 13 84 68 22 65 45 11 88 75 98 1 15 56 64 44 35 7 3
|
||||
Card 213: 79 84 12 86 58 10 11 24 32 26 | 52 94 65 29 89 7 76 80 31 21 78 37 66 69 13 41 93 73 96 16 92 44 62 3 95
|
||||
@@ -0,0 +1,65 @@
|
||||
use std::{fs, vec};
|
||||
|
||||
const FILE_PATH: &str = "./input.text";
|
||||
|
||||
fn process_line(line: &str) -> i32
|
||||
{
|
||||
let mut cards_won = 0;
|
||||
|
||||
// Line processing
|
||||
let line_halves: Vec<&str> = line.split(" | ").collect();
|
||||
|
||||
let first_half: Vec<&str> = line_halves[0].split(": ").collect();
|
||||
|
||||
let winning_numbers: Vec<&str> = first_half[1].split(" ").filter(|num| !num.is_empty()).collect();
|
||||
|
||||
let my_numbers = line_halves[1].split(" ").filter(|num| !num.is_empty());
|
||||
|
||||
for number in my_numbers
|
||||
{
|
||||
if winning_numbers.contains(&number)
|
||||
{
|
||||
cards_won += 1;
|
||||
}
|
||||
}
|
||||
|
||||
return cards_won;
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let contents = fs::read_to_string(FILE_PATH)
|
||||
.unwrap();
|
||||
|
||||
let lines: Vec<&str> = contents.lines().collect();
|
||||
|
||||
let mut cards_won_sum: i64 = 0;
|
||||
let mut card_values: Vec<(usize, i32)> = Vec::new();
|
||||
|
||||
for index in 0..lines.len()
|
||||
{
|
||||
let mut temp_vec = vec![(index, process_line(lines[index]))];
|
||||
card_values.append(&mut temp_vec);
|
||||
|
||||
}
|
||||
|
||||
let mut cards_won: Vec<(usize, i32)> = card_values.clone();
|
||||
|
||||
while !cards_won.is_empty()
|
||||
{
|
||||
let mut temp_cards_won: Vec<(usize, i32)> = Vec::new();
|
||||
for (index, cards_won_value) in cards_won.clone()
|
||||
{
|
||||
cards_won_sum += 1;
|
||||
for i in (index + 1)..(index + 1 + cards_won_value as usize)
|
||||
{
|
||||
let mut temp_vec: Vec<(usize, i32)> = vec![(i, card_values[i].1)];
|
||||
temp_cards_won.append(&mut temp_vec);
|
||||
}
|
||||
}
|
||||
|
||||
cards_won = temp_cards_won;
|
||||
}
|
||||
|
||||
|
||||
println!("Total cards won: {cards_won_sum}");
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53
|
||||
Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
|
||||
Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1
|
||||
Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83
|
||||
Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
|
||||
Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11
|
||||
@@ -0,0 +1,243 @@
|
||||
seeds: 1514493331 295250933 3793791524 105394212 828589016 654882197 658370118 49359719 4055197159 59237418 314462259 268880047 2249227634 74967914 2370414906 38444198 3291001718 85800943 2102534948 5923540
|
||||
|
||||
seed-to-soil map:
|
||||
3352941879 1247490906 129850502
|
||||
1738919961 2189748071 56658550
|
||||
1795578511 292133467 518088747
|
||||
1519757661 1666834550 130335907
|
||||
1650093568 133993362 88826393
|
||||
2813914030 2262539545 40894545
|
||||
2698412916 2661705133 115501114
|
||||
2854808575 810222214 437268692
|
||||
410530961 1545057218 121777332
|
||||
0 242661076 10731898
|
||||
532308293 2303434090 61476099
|
||||
3292077267 1797170457 2282798
|
||||
2313667258 0 133993362
|
||||
2447660620 2410952837 250752296
|
||||
3294360065 253392974 38740493
|
||||
10731898 1377341408 167715810
|
||||
1457582089 2364910189 46042648
|
||||
593784392 3009289500 824592362
|
||||
3333100558 222819755 19841321
|
||||
1418376754 1799453255 39205335
|
||||
1503624737 2246406621 16132924
|
||||
178447708 2777206247 232083253
|
||||
3482792381 1838658590 351089481
|
||||
|
||||
soil-to-fertilizer map:
|
||||
3513795976 4258851234 36116062
|
||||
3393453635 4148223693 110627541
|
||||
3504081176 3494735450 6350258
|
||||
2671742993 3596285367 235915393
|
||||
991290653 256764866 25867175
|
||||
2907658386 3330719253 68855819
|
||||
3336496635 4091266693 56957000
|
||||
3161141476 2536943456 80523019
|
||||
1961696534 304660310 29551079
|
||||
812996514 1560772632 178294139
|
||||
1562163347 2321959023 78904062
|
||||
31289107 1039870587 339682886
|
||||
1520029818 1928417376 42133529
|
||||
3510431434 3832200760 3364542
|
||||
3549912038 3272523584 58195669
|
||||
0 149071717 31289107
|
||||
3608107707 3501085708 5732766
|
||||
503523937 1739066771 189350605
|
||||
3071674583 3506818474 89466893
|
||||
3241664495 3996434553 94832140
|
||||
1708133363 454333361 253563171
|
||||
3813493721 3097084118 175439466
|
||||
1991247613 1970550905 351408118
|
||||
3613840473 2897430870 199653248
|
||||
2536943456 2762631333 134799537
|
||||
1641067409 244319429 12445437
|
||||
3994753216 3913095788 83338765
|
||||
2976514205 3399575072 95160378
|
||||
1354883134 0 143118415
|
||||
1349131883 2400863085 5751251
|
||||
1498001549 282632041 22028269
|
||||
2342655731 180360824 63958605
|
||||
370971993 1379553473 126598642
|
||||
4149802438 2617466475 145164858
|
||||
1017157828 707896532 331974055
|
||||
692874542 334211389 120121972
|
||||
497570635 143118415 5953302
|
||||
3988933187 3907275759 5820029
|
||||
4078091981 3835565302 71710457
|
||||
1653512846 1506152115 54620517
|
||||
|
||||
fertilizer-to-water map:
|
||||
3053686523 2028998994 1241280773
|
||||
1492748555 1562401968 269616514
|
||||
554432178 1000324407 562077561
|
||||
2944878746 3270279767 108807777
|
||||
2501520804 3379087544 52288887
|
||||
1762365069 20686928 69653413
|
||||
2028998994 3431376431 472521810
|
||||
1431309984 814973200 3653900
|
||||
409832614 0 20686928
|
||||
430519542 818627100 123912636
|
||||
1116509739 500172955 314800245
|
||||
2553809691 3903898241 391069055
|
||||
0 90340341 409832614
|
||||
1434963884 942539736 57784671
|
||||
|
||||
water-to-light map:
|
||||
2774754469 1598606098 15160294
|
||||
3832622498 1469118874 129487224
|
||||
4125818569 3997047227 169148727
|
||||
1108418694 1130695768 196125912
|
||||
637654660 517892123 26551592
|
||||
2519230072 3399515763 135968347
|
||||
2751000257 3126996880 23754212
|
||||
861800165 884077239 88532605
|
||||
1469118874 2566660966 63929427
|
||||
2789914763 3150751092 63425583
|
||||
2853340346 2561960449 4700517
|
||||
1692681911 3397592997 1922766
|
||||
2858040863 1773257241 287341147
|
||||
2655198419 2851614649 15098309
|
||||
950332770 972609844 158085924
|
||||
591049922 471287385 46604738
|
||||
3482333989 3849276196 108901632
|
||||
1694604677 1613766392 159490849
|
||||
3591235621 3958177828 38869399
|
||||
3630105020 4166195954 128771342
|
||||
3205039781 3535484110 277294208
|
||||
2706794606 2060598388 44205651
|
||||
386607659 544443715 110595292
|
||||
3962109722 2540862463 21097986
|
||||
697311924 0 92263281
|
||||
558450415 404456802 11447837
|
||||
2409200012 3214176675 110030060
|
||||
569898252 862925569 21151670
|
||||
1354525884 415904639 55382746
|
||||
789575205 790700609 72224960
|
||||
3832262624 2690248164 359874
|
||||
163757080 181606223 222850579
|
||||
1533048301 2967363270 159633610
|
||||
497202951 784452458 6248151
|
||||
2670296728 3812778318 36497878
|
||||
3145382010 2630590393 59657771
|
||||
1854095526 2104804039 436058424
|
||||
0 655039007 74414138
|
||||
2390804262 2690608038 18395750
|
||||
1304544606 1326821680 49981278
|
||||
3758876362 3324206735 73386262
|
||||
664206252 1376802958 33105672
|
||||
74414138 92263281 89342942
|
||||
3983207708 2709003788 142610861
|
||||
503451102 729453145 54999313
|
||||
2290153950 2866712958 100650312
|
||||
|
||||
light-to-temperature map:
|
||||
2054128675 422374783 216418447
|
||||
3729049939 3132111492 565917357
|
||||
524183620 1261361039 34450583
|
||||
723901655 638793230 74616934
|
||||
304496246 795175951 115896188
|
||||
1128506994 1008723417 50927515
|
||||
958650763 2074746732 3056214
|
||||
0 1224918384 36442655
|
||||
558634203 1059650932 165267452
|
||||
2052385426 713410164 1743249
|
||||
833053864 1953862956 120883776
|
||||
36442655 715153413 80022538
|
||||
1455705971 1506174459 386316618
|
||||
1842022589 1295811622 210362837
|
||||
2270547122 2077802946 24477429
|
||||
116465193 2102280375 188031053
|
||||
1179434509 945607414 63116003
|
||||
798518589 911072139 34535275
|
||||
3373647615 3893335786 195498774
|
||||
3696979816 3698028849 32070123
|
||||
1242550512 1892491077 43410067
|
||||
3051130577 2566857633 322517038
|
||||
3002478931 3844684140 48651646
|
||||
2311039190 3730098972 114585168
|
||||
2425624358 2311039190 187630064
|
||||
2819387158 2889374671 183091773
|
||||
1285960579 103791186 85466201
|
||||
1371426780 338095592 84279191
|
||||
1110545182 1935901144 17961812
|
||||
953937640 2290311428 4713123
|
||||
420392434 0 103791186
|
||||
961706977 189257387 148838205
|
||||
3637334768 3072466444 59645048
|
||||
3569146389 2498669254 68188379
|
||||
2613254422 4088834560 206132736
|
||||
|
||||
temperature-to-humidity map:
|
||||
2032423062 2486277941 26281270
|
||||
333062067 2316624216 6051173
|
||||
1716048249 1385455997 91409968
|
||||
460397469 2512559211 69041956
|
||||
25538975 668468772 15388105
|
||||
2090913379 324344034 71221218
|
||||
2804805674 3018690414 130533369
|
||||
529439425 908821722 476634275
|
||||
1106765273 448560048 219908724
|
||||
2162134597 1476865965 445565302
|
||||
0 395565252 25538975
|
||||
4004204691 4019550481 43244121
|
||||
2058704332 0 32209047
|
||||
1516375281 2116951248 199672968
|
||||
3888833667 2764269134 115371024
|
||||
40927080 32209047 292134987
|
||||
1490276549 2581601167 26098732
|
||||
1360818538 2322675389 129458011
|
||||
1006073700 2043715496 73235752
|
||||
1079309452 421104227 27455821
|
||||
1807458217 683856877 224964845
|
||||
339113240 1922431267 121284229
|
||||
4155917040 2879640158 139050256
|
||||
2764269134 4171262830 40536540
|
||||
4047448812 4062794602 108468228
|
||||
2935339043 3149223783 870326698
|
||||
1326673997 2452133400 34144541
|
||||
3805665741 4211799370 83167926
|
||||
|
||||
humidity-to-location map:
|
||||
3928575650 3147563455 98804874
|
||||
2357899446 2418187254 26586982
|
||||
449562184 2261875136 59054833
|
||||
308294839 60287808 141267345
|
||||
1872062279 1591999301 10857495
|
||||
1227084719 574109504 259895254
|
||||
1980177059 1765508840 13399403
|
||||
1162615704 1941046629 64469015
|
||||
2384486428 2654234915 114059261
|
||||
702311863 1515542756 40659242
|
||||
1993576462 2005515644 256359492
|
||||
3047301127 3246368329 27789688
|
||||
650396000 1713592977 51915863
|
||||
3701335066 3862068622 181049310
|
||||
1122863338 1673840611 39752366
|
||||
3075090815 4174917460 120049836
|
||||
3882384376 2778717800 46191274
|
||||
1626219043 201555153 245843236
|
||||
4027380524 3325898523 267586772
|
||||
3417979817 4043117932 13866284
|
||||
3281454033 2925002624 18592540
|
||||
110359150 1556201998 35797303
|
||||
2558833497 2444774236 209460679
|
||||
508617017 834004758 141778983
|
||||
1574315753 975783741 51903290
|
||||
2249935954 1027687031 107963492
|
||||
0 463750354 110359150
|
||||
2778717800 3593485295 268583327
|
||||
3195140651 2824909074 86313382
|
||||
3445626269 2943595164 203968291
|
||||
3324037823 4080975466 93941994
|
||||
742971105 1135650523 379892233
|
||||
146156453 1778908243 39038597
|
||||
3300046573 4056984216 23991250
|
||||
1503331938 1602856796 70983815
|
||||
185195050 1817946840 123099789
|
||||
3649594560 3274158017 21920411
|
||||
1486979973 447398389 16351965
|
||||
3671514971 3296078428 29820095
|
||||
2498545689 0 60287808
|
||||
3431846101 2911222456 13780168
|
||||
1882919774 2320929969 97257285
|
||||
@@ -0,0 +1,98 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type ConversionRange struct {
|
||||
source_start int
|
||||
source_end int
|
||||
target_start int
|
||||
target_end int
|
||||
translate int
|
||||
}
|
||||
|
||||
func convert(c *ConversionRange, num int) int {
|
||||
if num >= c.source_start && num <= c.source_end {
|
||||
return num + c.translate
|
||||
} else {
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
||||
func print(c ConversionRange) {
|
||||
fmt.Println()
|
||||
}
|
||||
|
||||
func main() {
|
||||
file, _ := os.Open("./test.text")
|
||||
defer file.Close()
|
||||
|
||||
scanner := bufio.NewScanner(file)
|
||||
var seed_to_soil []*ConversionRange
|
||||
|
||||
// Parse file
|
||||
index := 0
|
||||
s_to_s_mapping := false
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
|
||||
// Get starting seeds
|
||||
|
||||
if index == 0 {
|
||||
seeds_list := strings.Split(line, ": ")[1]
|
||||
seeds_value_list := strings.Split(seeds_list, " ")
|
||||
|
||||
var seeds []int
|
||||
|
||||
for _, seed := range seeds_value_list {
|
||||
seed_value, _ := strconv.Atoi(seed)
|
||||
seeds = append(seeds, seed_value)
|
||||
}
|
||||
|
||||
fmt.Println("Seeds: ", seeds)
|
||||
}
|
||||
|
||||
if line == "seed-to-soil map:" {
|
||||
s_to_s_mapping = true
|
||||
continue
|
||||
}
|
||||
|
||||
if s_to_s_mapping {
|
||||
if line == "" {
|
||||
s_to_s_mapping = false
|
||||
for _, r := range seed_to_soil {
|
||||
print(r)
|
||||
}
|
||||
continue
|
||||
} else {
|
||||
var r_values []int
|
||||
range_strings := strings.Split(line, " ")
|
||||
for _, r := range range_strings {
|
||||
r_value, _ := strconv.Atoi(r)
|
||||
r_values = append(r_values, r_value)
|
||||
}
|
||||
|
||||
var temp *ConversionRange
|
||||
temp = new(ConversionRange)
|
||||
|
||||
temp.target_start = r_values[0]
|
||||
temp.source_start = r_values[1]
|
||||
length := r_values[2]
|
||||
|
||||
temp.target_end = temp.target_start + length
|
||||
temp.source_end = temp.source_start + length
|
||||
temp.translate = temp.target_start - temp.target_end
|
||||
|
||||
seed_to_soil = append(seed_to_soil, temp)
|
||||
}
|
||||
}
|
||||
|
||||
index++
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
#!/bin/python3.12
|
||||
|
||||
FILE_PATH = "input.text"
|
||||
|
||||
class ConversionRange:
|
||||
target_start : int
|
||||
target_end : int
|
||||
source_start : int
|
||||
source_end : int
|
||||
translate : int
|
||||
|
||||
def __init__(self, target_start : int, source_start : int, length : int):
|
||||
self.target_start = target_start
|
||||
self.source_start = source_start
|
||||
self.target_end = self.target_start + length
|
||||
self.source_end = self.source_start + length
|
||||
self.translate = self.target_start - self.source_start
|
||||
|
||||
def __str__(self):
|
||||
print(f"Target start: {self.target_start}")
|
||||
print(f"Source start: {self.source_start}")
|
||||
print(f"Translate: {self.translate}")
|
||||
return ""
|
||||
|
||||
|
||||
|
||||
class Conversion:
|
||||
ranges : list[ConversionRange]
|
||||
|
||||
def __init__(self):
|
||||
self.ranges = []
|
||||
pass
|
||||
|
||||
def convert(self, num : int) -> int:
|
||||
for r in self.ranges:
|
||||
if num >= r.source_start and num <= r.source_end:
|
||||
return num + r.translate
|
||||
return num
|
||||
|
||||
|
||||
def main() -> None:
|
||||
with open(FILE_PATH, 'r') as f:
|
||||
contents = f.read().split('\n')
|
||||
|
||||
# Setup
|
||||
seeds: list[int] = []
|
||||
maps: dict[str, Conversion] = {}
|
||||
maps["seed-to-soil"] = Conversion()
|
||||
maps["soil-to-fertilizer"] = Conversion()
|
||||
maps["fertilizer-to-water"] = Conversion()
|
||||
maps["water-to-light"] = Conversion()
|
||||
maps["light-to-temperature"] = Conversion()
|
||||
maps["temperature-to-humidity"] = Conversion()
|
||||
maps["humidity-to-location"] = Conversion()
|
||||
|
||||
current_conversion: str = ""
|
||||
|
||||
# Parse the file
|
||||
for index, line in enumerate(contents):
|
||||
if index == 0:
|
||||
seeds_list: list[str] = line.split(": ")[1].split()
|
||||
for seed in seeds_list:
|
||||
seeds.append(int(seed))
|
||||
print(f"Seeds: {seeds}")
|
||||
continue
|
||||
|
||||
if not line:
|
||||
continue
|
||||
|
||||
if not line[0].isdigit():
|
||||
current_conversion = line[:-5]
|
||||
print(f"Current conversion: {current_conversion}")
|
||||
continue
|
||||
|
||||
nums: list[int] = list(map(lambda x: int(x), line.split()))
|
||||
|
||||
temp = ConversionRange(nums[0], nums[1], nums[2])
|
||||
print(temp)
|
||||
maps[current_conversion].ranges.append(temp)
|
||||
|
||||
# Convert the seeds
|
||||
lowest_location: float = float('inf')
|
||||
for seed in seeds:
|
||||
temp = seed
|
||||
for key, value in maps.items():
|
||||
print(f"Mapping {temp} with {key}")
|
||||
temp = value.convert(temp)
|
||||
|
||||
if temp < lowest_location:
|
||||
lowest_location = temp
|
||||
print(f"Location: {temp}")
|
||||
|
||||
print(f"Lowest location: {lowest_location}")
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
seeds: 79 14 55 13
|
||||
|
||||
seed-to-soil map:
|
||||
50 98 2
|
||||
52 50 48
|
||||
|
||||
soil-to-fertilizer map:
|
||||
0 15 37
|
||||
37 52 2
|
||||
39 0 15
|
||||
|
||||
fertilizer-to-water map:
|
||||
49 53 8
|
||||
0 11 42
|
||||
42 0 7
|
||||
57 7 4
|
||||
|
||||
water-to-light map:
|
||||
88 18 7
|
||||
18 25 70
|
||||
|
||||
light-to-temperature map:
|
||||
45 77 23
|
||||
81 45 19
|
||||
68 64 13
|
||||
|
||||
temperature-to-humidity map:
|
||||
0 69 1
|
||||
1 0 69
|
||||
|
||||
humidity-to-location map:
|
||||
60 56 37
|
||||
56 93 4
|
||||
@@ -0,0 +1,243 @@
|
||||
seeds: 1514493331 295250933 3793791524 105394212 828589016 654882197 658370118 49359719 4055197159 59237418 314462259 268880047 2249227634 74967914 2370414906 38444198 3291001718 85800943 2102534948 5923540
|
||||
|
||||
seed-to-soil map:
|
||||
3352941879 1247490906 129850502
|
||||
1738919961 2189748071 56658550
|
||||
1795578511 292133467 518088747
|
||||
1519757661 1666834550 130335907
|
||||
1650093568 133993362 88826393
|
||||
2813914030 2262539545 40894545
|
||||
2698412916 2661705133 115501114
|
||||
2854808575 810222214 437268692
|
||||
410530961 1545057218 121777332
|
||||
0 242661076 10731898
|
||||
532308293 2303434090 61476099
|
||||
3292077267 1797170457 2282798
|
||||
2313667258 0 133993362
|
||||
2447660620 2410952837 250752296
|
||||
3294360065 253392974 38740493
|
||||
10731898 1377341408 167715810
|
||||
1457582089 2364910189 46042648
|
||||
593784392 3009289500 824592362
|
||||
3333100558 222819755 19841321
|
||||
1418376754 1799453255 39205335
|
||||
1503624737 2246406621 16132924
|
||||
178447708 2777206247 232083253
|
||||
3482792381 1838658590 351089481
|
||||
|
||||
soil-to-fertilizer map:
|
||||
3513795976 4258851234 36116062
|
||||
3393453635 4148223693 110627541
|
||||
3504081176 3494735450 6350258
|
||||
2671742993 3596285367 235915393
|
||||
991290653 256764866 25867175
|
||||
2907658386 3330719253 68855819
|
||||
3336496635 4091266693 56957000
|
||||
3161141476 2536943456 80523019
|
||||
1961696534 304660310 29551079
|
||||
812996514 1560772632 178294139
|
||||
1562163347 2321959023 78904062
|
||||
31289107 1039870587 339682886
|
||||
1520029818 1928417376 42133529
|
||||
3510431434 3832200760 3364542
|
||||
3549912038 3272523584 58195669
|
||||
0 149071717 31289107
|
||||
3608107707 3501085708 5732766
|
||||
503523937 1739066771 189350605
|
||||
3071674583 3506818474 89466893
|
||||
3241664495 3996434553 94832140
|
||||
1708133363 454333361 253563171
|
||||
3813493721 3097084118 175439466
|
||||
1991247613 1970550905 351408118
|
||||
3613840473 2897430870 199653248
|
||||
2536943456 2762631333 134799537
|
||||
1641067409 244319429 12445437
|
||||
3994753216 3913095788 83338765
|
||||
2976514205 3399575072 95160378
|
||||
1354883134 0 143118415
|
||||
1349131883 2400863085 5751251
|
||||
1498001549 282632041 22028269
|
||||
2342655731 180360824 63958605
|
||||
370971993 1379553473 126598642
|
||||
4149802438 2617466475 145164858
|
||||
1017157828 707896532 331974055
|
||||
692874542 334211389 120121972
|
||||
497570635 143118415 5953302
|
||||
3988933187 3907275759 5820029
|
||||
4078091981 3835565302 71710457
|
||||
1653512846 1506152115 54620517
|
||||
|
||||
fertilizer-to-water map:
|
||||
3053686523 2028998994 1241280773
|
||||
1492748555 1562401968 269616514
|
||||
554432178 1000324407 562077561
|
||||
2944878746 3270279767 108807777
|
||||
2501520804 3379087544 52288887
|
||||
1762365069 20686928 69653413
|
||||
2028998994 3431376431 472521810
|
||||
1431309984 814973200 3653900
|
||||
409832614 0 20686928
|
||||
430519542 818627100 123912636
|
||||
1116509739 500172955 314800245
|
||||
2553809691 3903898241 391069055
|
||||
0 90340341 409832614
|
||||
1434963884 942539736 57784671
|
||||
|
||||
water-to-light map:
|
||||
2774754469 1598606098 15160294
|
||||
3832622498 1469118874 129487224
|
||||
4125818569 3997047227 169148727
|
||||
1108418694 1130695768 196125912
|
||||
637654660 517892123 26551592
|
||||
2519230072 3399515763 135968347
|
||||
2751000257 3126996880 23754212
|
||||
861800165 884077239 88532605
|
||||
1469118874 2566660966 63929427
|
||||
2789914763 3150751092 63425583
|
||||
2853340346 2561960449 4700517
|
||||
1692681911 3397592997 1922766
|
||||
2858040863 1773257241 287341147
|
||||
2655198419 2851614649 15098309
|
||||
950332770 972609844 158085924
|
||||
591049922 471287385 46604738
|
||||
3482333989 3849276196 108901632
|
||||
1694604677 1613766392 159490849
|
||||
3591235621 3958177828 38869399
|
||||
3630105020 4166195954 128771342
|
||||
3205039781 3535484110 277294208
|
||||
2706794606 2060598388 44205651
|
||||
386607659 544443715 110595292
|
||||
3962109722 2540862463 21097986
|
||||
697311924 0 92263281
|
||||
558450415 404456802 11447837
|
||||
2409200012 3214176675 110030060
|
||||
569898252 862925569 21151670
|
||||
1354525884 415904639 55382746
|
||||
789575205 790700609 72224960
|
||||
3832262624 2690248164 359874
|
||||
163757080 181606223 222850579
|
||||
1533048301 2967363270 159633610
|
||||
497202951 784452458 6248151
|
||||
2670296728 3812778318 36497878
|
||||
3145382010 2630590393 59657771
|
||||
1854095526 2104804039 436058424
|
||||
0 655039007 74414138
|
||||
2390804262 2690608038 18395750
|
||||
1304544606 1326821680 49981278
|
||||
3758876362 3324206735 73386262
|
||||
664206252 1376802958 33105672
|
||||
74414138 92263281 89342942
|
||||
3983207708 2709003788 142610861
|
||||
503451102 729453145 54999313
|
||||
2290153950 2866712958 100650312
|
||||
|
||||
light-to-temperature map:
|
||||
2054128675 422374783 216418447
|
||||
3729049939 3132111492 565917357
|
||||
524183620 1261361039 34450583
|
||||
723901655 638793230 74616934
|
||||
304496246 795175951 115896188
|
||||
1128506994 1008723417 50927515
|
||||
958650763 2074746732 3056214
|
||||
0 1224918384 36442655
|
||||
558634203 1059650932 165267452
|
||||
2052385426 713410164 1743249
|
||||
833053864 1953862956 120883776
|
||||
36442655 715153413 80022538
|
||||
1455705971 1506174459 386316618
|
||||
1842022589 1295811622 210362837
|
||||
2270547122 2077802946 24477429
|
||||
116465193 2102280375 188031053
|
||||
1179434509 945607414 63116003
|
||||
798518589 911072139 34535275
|
||||
3373647615 3893335786 195498774
|
||||
3696979816 3698028849 32070123
|
||||
1242550512 1892491077 43410067
|
||||
3051130577 2566857633 322517038
|
||||
3002478931 3844684140 48651646
|
||||
2311039190 3730098972 114585168
|
||||
2425624358 2311039190 187630064
|
||||
2819387158 2889374671 183091773
|
||||
1285960579 103791186 85466201
|
||||
1371426780 338095592 84279191
|
||||
1110545182 1935901144 17961812
|
||||
953937640 2290311428 4713123
|
||||
420392434 0 103791186
|
||||
961706977 189257387 148838205
|
||||
3637334768 3072466444 59645048
|
||||
3569146389 2498669254 68188379
|
||||
2613254422 4088834560 206132736
|
||||
|
||||
temperature-to-humidity map:
|
||||
2032423062 2486277941 26281270
|
||||
333062067 2316624216 6051173
|
||||
1716048249 1385455997 91409968
|
||||
460397469 2512559211 69041956
|
||||
25538975 668468772 15388105
|
||||
2090913379 324344034 71221218
|
||||
2804805674 3018690414 130533369
|
||||
529439425 908821722 476634275
|
||||
1106765273 448560048 219908724
|
||||
2162134597 1476865965 445565302
|
||||
0 395565252 25538975
|
||||
4004204691 4019550481 43244121
|
||||
2058704332 0 32209047
|
||||
1516375281 2116951248 199672968
|
||||
3888833667 2764269134 115371024
|
||||
40927080 32209047 292134987
|
||||
1490276549 2581601167 26098732
|
||||
1360818538 2322675389 129458011
|
||||
1006073700 2043715496 73235752
|
||||
1079309452 421104227 27455821
|
||||
1807458217 683856877 224964845
|
||||
339113240 1922431267 121284229
|
||||
4155917040 2879640158 139050256
|
||||
2764269134 4171262830 40536540
|
||||
4047448812 4062794602 108468228
|
||||
2935339043 3149223783 870326698
|
||||
1326673997 2452133400 34144541
|
||||
3805665741 4211799370 83167926
|
||||
|
||||
humidity-to-location map:
|
||||
3928575650 3147563455 98804874
|
||||
2357899446 2418187254 26586982
|
||||
449562184 2261875136 59054833
|
||||
308294839 60287808 141267345
|
||||
1872062279 1591999301 10857495
|
||||
1227084719 574109504 259895254
|
||||
1980177059 1765508840 13399403
|
||||
1162615704 1941046629 64469015
|
||||
2384486428 2654234915 114059261
|
||||
702311863 1515542756 40659242
|
||||
1993576462 2005515644 256359492
|
||||
3047301127 3246368329 27789688
|
||||
650396000 1713592977 51915863
|
||||
3701335066 3862068622 181049310
|
||||
1122863338 1673840611 39752366
|
||||
3075090815 4174917460 120049836
|
||||
3882384376 2778717800 46191274
|
||||
1626219043 201555153 245843236
|
||||
4027380524 3325898523 267586772
|
||||
3417979817 4043117932 13866284
|
||||
3281454033 2925002624 18592540
|
||||
110359150 1556201998 35797303
|
||||
2558833497 2444774236 209460679
|
||||
508617017 834004758 141778983
|
||||
1574315753 975783741 51903290
|
||||
2249935954 1027687031 107963492
|
||||
0 463750354 110359150
|
||||
2778717800 3593485295 268583327
|
||||
3195140651 2824909074 86313382
|
||||
3445626269 2943595164 203968291
|
||||
3324037823 4080975466 93941994
|
||||
742971105 1135650523 379892233
|
||||
146156453 1778908243 39038597
|
||||
3300046573 4056984216 23991250
|
||||
1503331938 1602856796 70983815
|
||||
185195050 1817946840 123099789
|
||||
3649594560 3274158017 21920411
|
||||
1486979973 447398389 16351965
|
||||
3671514971 3296078428 29820095
|
||||
2498545689 0 60287808
|
||||
3431846101 2911222456 13780168
|
||||
1882919774 2320929969 97257285
|
||||
@@ -0,0 +1,151 @@
|
||||
#!/bin/python3.12
|
||||
|
||||
FILE_PATH = "input.text"
|
||||
|
||||
class ConversionRange:
|
||||
target_start : int
|
||||
target_end : int
|
||||
source_start : int
|
||||
source_end : int
|
||||
translate : int
|
||||
|
||||
def __init__(self, target_start : int, source_start : int, length : int):
|
||||
self.target_start = target_start
|
||||
self.source_start = source_start
|
||||
self.target_end = self.target_start + length
|
||||
self.source_end = self.source_start + length
|
||||
self.translate = self.target_start - self.source_start
|
||||
|
||||
def __str__(self):
|
||||
print(f"Target start: {self.target_start}")
|
||||
print(f"Source start: {self.source_start}")
|
||||
print(f"Translate: {self.translate}")
|
||||
return ""
|
||||
|
||||
|
||||
"""
|
||||
{
|
||||
(79, 93) : {
|
||||
(79, 93) : {
|
||||
(52, 99) : {
|
||||
(52, 53) : {
|
||||
(37, 38) : {
|
||||
|
||||
}
|
||||
},
|
||||
(54, 99) : {
|
||||
(54, 99) : {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
"""
|
||||
class Conversion:
|
||||
start : int
|
||||
end : int
|
||||
ranges : list
|
||||
|
||||
def __init__(self, start : int, end : int):
|
||||
self.start = start
|
||||
self.end = end
|
||||
self.ranges = []
|
||||
|
||||
def __contains__(self, r) -> bool:
|
||||
if r.start >= self.start and r.end <= self.end:
|
||||
return True
|
||||
return False
|
||||
|
||||
def add_range(self, range) -> None:
|
||||
self.ranges.append(range)
|
||||
|
||||
def convert(self, num : int) -> int:
|
||||
for r in self.ranges:
|
||||
if num >= r.source_start and num <= r.source_end:
|
||||
return num + r.translate
|
||||
return num
|
||||
|
||||
def convert_range(self, range : tuple[int, int]) -> list:
|
||||
start, end: int = range
|
||||
|
||||
results: list = []
|
||||
|
||||
result: list = [None, None]
|
||||
for r in self.ranges:
|
||||
if r.source_start >= start:
|
||||
|
||||
result[0] = r.target_start
|
||||
|
||||
if r.source_end <= end:
|
||||
result[1] = r.target_end
|
||||
|
||||
if result[0] and result[1]:
|
||||
results.append(result)
|
||||
result = []
|
||||
|
||||
def main() -> None:
|
||||
with open(FILE_PATH, 'r') as f:
|
||||
contents = f.read().split('\n')
|
||||
|
||||
# Setup
|
||||
seeds: list[int] = []
|
||||
maps: dict[str, Conversion] = {}
|
||||
maps["seed-to-soil"] = Conversion()
|
||||
maps["soil-to-fertilizer"] = Conversion()
|
||||
maps["fertilizer-to-water"] = Conversion()
|
||||
maps["water-to-light"] = Conversion()
|
||||
maps["light-to-temperature"] = Conversion()
|
||||
maps["temperature-to-humidity"] = Conversion()
|
||||
maps["humidity-to-location"] = Conversion()
|
||||
|
||||
current_conversion: str = ""
|
||||
|
||||
# Parse the file
|
||||
for index, line in enumerate(contents):
|
||||
if index == 0:
|
||||
seeds_list: list[str] = line.split(": ")[1].split()
|
||||
for seed in seeds_list:
|
||||
seeds.append(int(seed))
|
||||
print(f"Seeds: {seeds}")
|
||||
continue
|
||||
|
||||
if not line:
|
||||
continue
|
||||
|
||||
if not line[0].isdigit():
|
||||
current_conversion = line[:-5]
|
||||
print(f"Current conversion: {current_conversion}")
|
||||
continue
|
||||
|
||||
nums: list[int] = list(map(lambda x: int(x), line.split()))
|
||||
|
||||
temp = ConversionRange(nums[0], nums[1], nums[2])
|
||||
print(temp)
|
||||
maps[current_conversion].ranges.append(temp)
|
||||
|
||||
# Convert the seeds
|
||||
lowest_location: float = float('inf')
|
||||
for seed in seeds:
|
||||
temp = seed
|
||||
for key, value in maps.items():
|
||||
print(f"Mapping {temp} with {key}")
|
||||
temp = value.convert(temp)
|
||||
|
||||
if temp < lowest_location:
|
||||
lowest_location = temp
|
||||
print(f"Location: {temp}")
|
||||
|
||||
print(f"Lowest location: {lowest_location}")
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
class Range:
|
||||
start: int
|
||||
end: int
|
||||
|
||||
def __init__(self, s: int, e: int):
|
||||
self.start = s
|
||||
self.end = e
|
||||
|
||||
def contains(self, key) -> tuple | None:
|
||||
start, end = (key.start, key.end)
|
||||
|
||||
if start > self.end or end <= self.start:
|
||||
return None
|
||||
|
||||
start_value = start if self.start <= start and start <= self.end else self.start
|
||||
end_value = end if self.end >= end and end >= self.start else self.end
|
||||
|
||||
return Range(start_value, end_value)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f'({self.start}, {self.end})'
|
||||
|
||||
|
||||
|
||||
r = Range(1, 5)
|
||||
r2 = Range(2, 3)
|
||||
|
||||
print(r.contains(r2))
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
seeds: 79 14 55 13
|
||||
|
||||
seed-to-soil map:
|
||||
50 98 2
|
||||
52 50 48
|
||||
|
||||
soil-to-fertilizer map:
|
||||
0 15 37
|
||||
37 52 2
|
||||
39 0 15
|
||||
|
||||
fertilizer-to-water map:
|
||||
49 53 8
|
||||
0 11 42
|
||||
42 0 7
|
||||
57 7 4
|
||||
|
||||
water-to-light map:
|
||||
88 18 7
|
||||
18 25 70
|
||||
|
||||
light-to-temperature map:
|
||||
45 77 23
|
||||
81 45 19
|
||||
68 64 13
|
||||
|
||||
temperature-to-humidity map:
|
||||
0 69 1
|
||||
1 0 69
|
||||
|
||||
humidity-to-location map:
|
||||
60 56 37
|
||||
56 93 4
|
||||
@@ -0,0 +1,2 @@
|
||||
Time: 51 69 98 78
|
||||
Distance: 377 1171 1224 1505
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
FILE_PATH = "input.text"
|
||||
|
||||
def main() -> None:
|
||||
with open(FILE_PATH, 'r') as f:
|
||||
lines = f.readlines()
|
||||
|
||||
race_times: list[int] = list(map(lambda x: int(x), lines[0].split()[1:]))
|
||||
race_record_distances: list[int] = list(map(lambda x: int(x), lines[1].split()[1:]))
|
||||
|
||||
win_combinations: list[int] = []
|
||||
for index, time in enumerate(race_times):
|
||||
|
||||
wins: int = 0
|
||||
|
||||
for v in range(1, time):
|
||||
|
||||
time_left: int = time - v
|
||||
distance: int = v * time_left
|
||||
|
||||
if distance > race_record_distances[index]:
|
||||
wins += 1
|
||||
|
||||
win_combinations.append(wins)
|
||||
|
||||
product: int = win_combinations[0]
|
||||
for combo in win_combinations[1:]:
|
||||
product *= combo
|
||||
|
||||
print(f"Product of combinations: {product}")
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
Time: 7 15 30
|
||||
Distance: 9 40 200
|
||||
@@ -0,0 +1,2 @@
|
||||
Time: 51 69 98 78
|
||||
Distance: 377 1171 1224 1505
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
FILE_PATH = "input.text"
|
||||
|
||||
def main() -> None:
|
||||
with open(FILE_PATH, 'r') as f:
|
||||
lines = f.readlines()
|
||||
|
||||
race_time: int = int(''.join(list(map(lambda x: x if x != " " else "", lines[0][5:]))))
|
||||
race_record_distance: int = int(''.join(list(map(lambda x: x if x != " " else "", lines[1][10:]))))
|
||||
|
||||
win_combinations: int = 0
|
||||
for v in range(1, race_time):
|
||||
|
||||
time_left: int = race_time - v
|
||||
distance: int = v * time_left
|
||||
|
||||
if distance > race_record_distance:
|
||||
win_combinations += 1
|
||||
|
||||
|
||||
print(f"Win combinations: {win_combinations}")
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
Time: 7 15 30
|
||||
Distance: 9 40 200
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,1000 @@
|
||||
486AA 252
|
||||
24544 330
|
||||
33TTT 540
|
||||
242K2 966
|
||||
334A4 877
|
||||
3632J 651
|
||||
22K55 378
|
||||
9J656 695
|
||||
Q7478 933
|
||||
5K266 279
|
||||
AK9J8 840
|
||||
6JQ9J 697
|
||||
47JT6 545
|
||||
777K2 400
|
||||
QTTTT 115
|
||||
6J554 121
|
||||
KJAKA 677
|
||||
KKK8Q 372
|
||||
3K8A6 428
|
||||
6JTJJ 249
|
||||
2626J 909
|
||||
Q47Q9 859
|
||||
QQQKT 116
|
||||
AQAA6 200
|
||||
K88Q8 542
|
||||
TTT4T 826
|
||||
8K56A 619
|
||||
55J27 637
|
||||
TTT37 513
|
||||
62362 254
|
||||
J383K 329
|
||||
4Q89J 682
|
||||
6TQ75 222
|
||||
Q4298 774
|
||||
A3AA3 263
|
||||
86672 866
|
||||
5A5AJ 606
|
||||
K6K79 27
|
||||
88AJJ 514
|
||||
QJ725 961
|
||||
77727 509
|
||||
8T9JT 582
|
||||
6Q464 98
|
||||
75887 995
|
||||
69TT9 624
|
||||
8327K 377
|
||||
TT444 561
|
||||
9K89K 204
|
||||
JQAQ5 393
|
||||
TTTJT 331
|
||||
3T8Q2 588
|
||||
JKKKK 572
|
||||
AT5TT 810
|
||||
AJ552 162
|
||||
Q2A23 258
|
||||
688QA 816
|
||||
4T555 183
|
||||
K4342 461
|
||||
A9929 369
|
||||
7J969 730
|
||||
8KAQ9 825
|
||||
KK47K 170
|
||||
4Q4JJ 150
|
||||
444Q4 964
|
||||
A7A77 251
|
||||
999JT 186
|
||||
8A88A 325
|
||||
2623K 135
|
||||
3Q767 913
|
||||
99989 855
|
||||
4444A 556
|
||||
6J757 383
|
||||
77788 75
|
||||
57A24 185
|
||||
Q3QK3 627
|
||||
6A855 982
|
||||
6KQ23 399
|
||||
TT49T 630
|
||||
6AAAJ 443
|
||||
76K8K 940
|
||||
Q8888 747
|
||||
AK48T 250
|
||||
22A22 506
|
||||
TT547 538
|
||||
Q5J2A 11
|
||||
546A3 137
|
||||
A38Q2 753
|
||||
TK3K2 881
|
||||
22627 771
|
||||
Q67AK 298
|
||||
J2262 782
|
||||
2QAQ2 5
|
||||
JTK7K 625
|
||||
A3337 766
|
||||
6JQ45 924
|
||||
A9999 544
|
||||
45444 716
|
||||
K7777 673
|
||||
6QT4T 541
|
||||
T4222 811
|
||||
T8888 799
|
||||
QQQJQ 426
|
||||
5858J 886
|
||||
77A77 897
|
||||
QJ866 448
|
||||
48J43 73
|
||||
2Q4J7 432
|
||||
66K66 787
|
||||
69A4K 114
|
||||
T6792 685
|
||||
79A99 306
|
||||
KK9K9 860
|
||||
96666 992
|
||||
85858 558
|
||||
Q2AT4 308
|
||||
Q9QQ5 496
|
||||
8AAJA 271
|
||||
T3TJK 919
|
||||
2836J 662
|
||||
78878 431
|
||||
88887 184
|
||||
J3QQ8 609
|
||||
T4JTT 778
|
||||
AJ533 30
|
||||
3TT4J 349
|
||||
J6282 925
|
||||
6Q874 82
|
||||
AKK24 832
|
||||
3QJ33 65
|
||||
65522 288
|
||||
22Q22 749
|
||||
J8K84 497
|
||||
A343Q 794
|
||||
38J53 314
|
||||
886Q8 613
|
||||
7Q568 899
|
||||
AQAKK 990
|
||||
3978J 438
|
||||
39K6J 468
|
||||
8428J 466
|
||||
TJ4T7 776
|
||||
73825 726
|
||||
AK53Q 683
|
||||
6J434 206
|
||||
68Q84 64
|
||||
8KTTJ 505
|
||||
JJ77J 773
|
||||
73355 13
|
||||
QQJ36 441
|
||||
J6KA5 980
|
||||
Q7A88 718
|
||||
46646 449
|
||||
JQ994 460
|
||||
Q54A7 675
|
||||
A7TQT 195
|
||||
3887K 219
|
||||
J277T 16
|
||||
98J29 486
|
||||
TA777 375
|
||||
687QQ 462
|
||||
KQKQK 687
|
||||
KTT28 322
|
||||
TT3TT 181
|
||||
K4444 125
|
||||
Q8QTT 286
|
||||
JT5TQ 410
|
||||
5AA65 935
|
||||
3QTJ3 638
|
||||
5T4Q9 10
|
||||
JK3T3 595
|
||||
2A9AA 362
|
||||
A58AA 145
|
||||
94KK9 310
|
||||
88Q2Q 482
|
||||
3985A 244
|
||||
6AA96 711
|
||||
Q7337 34
|
||||
8828J 356
|
||||
7379J 903
|
||||
28288 83
|
||||
K22K2 923
|
||||
K5J25 767
|
||||
22992 500
|
||||
66787 786
|
||||
9746J 661
|
||||
765T9 31
|
||||
9J9J6 285
|
||||
6348T 264
|
||||
562J9 280
|
||||
998QQ 192
|
||||
99559 751
|
||||
999T9 817
|
||||
J5TT5 715
|
||||
37722 820
|
||||
595K5 435
|
||||
8A5A8 187
|
||||
59858 139
|
||||
42Q5Q 212
|
||||
KQQQQ 15
|
||||
5QQQQ 929
|
||||
Q777J 631
|
||||
66TTT 455
|
||||
56226 689
|
||||
73373 887
|
||||
K32T3 665
|
||||
3A36A 447
|
||||
QAAJ8 143
|
||||
84448 324
|
||||
T4344 759
|
||||
9J99Q 371
|
||||
98989 309
|
||||
72T46 717
|
||||
QQ5KT 821
|
||||
8T64A 236
|
||||
A2AA2 918
|
||||
52775 907
|
||||
7T7T7 211
|
||||
6Q782 535
|
||||
75A36 12
|
||||
Q9Q62 274
|
||||
T2463 752
|
||||
797J9 471
|
||||
K7KK7 414
|
||||
444K3 917
|
||||
4QQAQ 586
|
||||
59J64 895
|
||||
6K6J6 142
|
||||
6T464 366
|
||||
3K5AA 465
|
||||
3QQ4Q 769
|
||||
K5533 941
|
||||
T2299 39
|
||||
333TJ 597
|
||||
AA8AA 975
|
||||
9J4KK 198
|
||||
6QQ44 554
|
||||
44469 433
|
||||
264AQ 628
|
||||
9986J 178
|
||||
786J7 894
|
||||
86866 656
|
||||
5J555 156
|
||||
QTJQK 858
|
||||
A84AA 526
|
||||
32J37 132
|
||||
4666Q 427
|
||||
894QT 472
|
||||
7K469 1000
|
||||
9J77J 888
|
||||
95559 478
|
||||
44553 600
|
||||
K9J9K 37
|
||||
96979 814
|
||||
99393 148
|
||||
A99AA 88
|
||||
953TQ 708
|
||||
6KTQ3 437
|
||||
KKAJK 358
|
||||
72292 439
|
||||
63362 599
|
||||
5J88J 639
|
||||
74444 604
|
||||
6Q6J3 698
|
||||
TAA66 843
|
||||
9QQJ9 168
|
||||
TT8TT 381
|
||||
JJTA2 960
|
||||
36363 423
|
||||
455J8 602
|
||||
8A543 223
|
||||
Q8T42 884
|
||||
8A888 227
|
||||
AQAA5 872
|
||||
6K525 364
|
||||
58KA9 62
|
||||
33277 296
|
||||
KAKKA 386
|
||||
665T8 259
|
||||
KJKQK 593
|
||||
36355 85
|
||||
5KK47 926
|
||||
35539 17
|
||||
66466 19
|
||||
A979Q 589
|
||||
54888 218
|
||||
477JT 574
|
||||
66634 105
|
||||
76T25 161
|
||||
2739J 883
|
||||
J3433 808
|
||||
7J7J3 436
|
||||
7252T 721
|
||||
6QA2J 18
|
||||
2T373 334
|
||||
39393 770
|
||||
39969 262
|
||||
79T99 833
|
||||
2794Q 14
|
||||
9AK36 996
|
||||
JQ4QQ 579
|
||||
TJ53A 757
|
||||
JA7AA 302
|
||||
K3333 159
|
||||
4K4KA 424
|
||||
26T62 988
|
||||
A4582 571
|
||||
59999 841
|
||||
9999J 959
|
||||
882Q2 220
|
||||
74777 484
|
||||
48T53 179
|
||||
9T947 269
|
||||
8J62A 113
|
||||
88KAA 837
|
||||
5J2JQ 319
|
||||
9K499 904
|
||||
282A2 756
|
||||
78K63 801
|
||||
2A5A5 539
|
||||
Q6QJK 171
|
||||
55535 492
|
||||
7J775 323
|
||||
62626 291
|
||||
88883 459
|
||||
69336 196
|
||||
TTA4T 921
|
||||
6236T 667
|
||||
58K58 475
|
||||
68KK8 201
|
||||
55559 875
|
||||
26AAA 616
|
||||
4JT59 90
|
||||
T3333 831
|
||||
4A359 394
|
||||
53325 914
|
||||
T5886 268
|
||||
22T44 729
|
||||
34443 21
|
||||
TA72K 71
|
||||
KTJQJ 979
|
||||
4TT5T 790
|
||||
38983 949
|
||||
975T2 493
|
||||
AJ2KK 303
|
||||
85J75 367
|
||||
T44A4 694
|
||||
6346T 368
|
||||
83383 134
|
||||
639J2 126
|
||||
2435A 77
|
||||
6K972 741
|
||||
5TA55 622
|
||||
5TT66 567
|
||||
99949 193
|
||||
KJ973 357
|
||||
5QT38 225
|
||||
73A7A 748
|
||||
43555 233
|
||||
3A46J 335
|
||||
72272 154
|
||||
A3832 660
|
||||
74774 997
|
||||
96QAK 405
|
||||
4A844 305
|
||||
3J3J3 517
|
||||
K5KKK 720
|
||||
QQT7T 727
|
||||
55282 487
|
||||
523Q4 99
|
||||
55585 912
|
||||
QJK65 796
|
||||
222AJ 734
|
||||
TTKTT 235
|
||||
QK67J 245
|
||||
4A4JA 182
|
||||
9TAAT 84
|
||||
79K43 353
|
||||
AAQAJ 149
|
||||
8A8AA 587
|
||||
TA5J9 952
|
||||
58888 237
|
||||
79Q25 658
|
||||
258KT 512
|
||||
424T4 502
|
||||
6J666 485
|
||||
5555A 457
|
||||
7A523 809
|
||||
K5K66 188
|
||||
ATKKT 981
|
||||
33Q66 594
|
||||
75A88 987
|
||||
6J677 91
|
||||
68688 864
|
||||
QQ33Q 635
|
||||
22427 755
|
||||
AJK83 153
|
||||
42Q8K 802
|
||||
AJT8J 650
|
||||
5AK6A 691
|
||||
979K5 253
|
||||
5K45K 653
|
||||
AA459 93
|
||||
T2T8J 838
|
||||
49947 479
|
||||
7Q799 647
|
||||
J4524 208
|
||||
66K6K 943
|
||||
53232 902
|
||||
JJQQQ 869
|
||||
64K4K 534
|
||||
77799 406
|
||||
77J7J 844
|
||||
A75QK 971
|
||||
865A2 26
|
||||
KJ4AA 885
|
||||
TA856 835
|
||||
84A78 703
|
||||
J9696 92
|
||||
J28K2 891
|
||||
KKAAT 546
|
||||
K2592 531
|
||||
AA96A 676
|
||||
73KT7 793
|
||||
66JJ6 719
|
||||
99379 578
|
||||
8Q685 739
|
||||
QQQT9 282
|
||||
JJ4J4 420
|
||||
66969 106
|
||||
A7AQQ 850
|
||||
9K526 311
|
||||
AQ8TJ 246
|
||||
462K2 706
|
||||
656J6 504
|
||||
TQQ57 172
|
||||
77Q37 416
|
||||
5857Q 857
|
||||
QQQ3J 265
|
||||
44J84 354
|
||||
TT537 991
|
||||
QAT29 213
|
||||
8A9JA 823
|
||||
684Q2 275
|
||||
54T92 946
|
||||
5K55K 283
|
||||
94732 986
|
||||
55565 700
|
||||
6JA66 893
|
||||
3K33K 865
|
||||
JKKTK 641
|
||||
99636 984
|
||||
333T9 396
|
||||
24J25 828
|
||||
33AJ3 939
|
||||
J7J87 347
|
||||
84884 577
|
||||
3J366 666
|
||||
QQ4Q4 70
|
||||
KQ562 806
|
||||
95275 9
|
||||
86KKA 95
|
||||
7K67K 868
|
||||
TAATA 668
|
||||
7JK9J 614
|
||||
855J3 138
|
||||
59496 360
|
||||
66272 422
|
||||
7927A 255
|
||||
644J4 970
|
||||
3K33Q 284
|
||||
2T44J 346
|
||||
66626 775
|
||||
622AA 450
|
||||
JJJ8J 97
|
||||
T73T2 848
|
||||
26686 480
|
||||
8K58A 710
|
||||
5A55A 852
|
||||
34683 701
|
||||
2J827 834
|
||||
ATAAA 772
|
||||
9444J 853
|
||||
J2828 805
|
||||
JJ369 215
|
||||
J2962 849
|
||||
T7TTT 216
|
||||
9T23K 788
|
||||
T8759 38
|
||||
9777J 768
|
||||
934KQ 141
|
||||
K7A7J 738
|
||||
QQAAQ 446
|
||||
9J93T 524
|
||||
JAJAA 272
|
||||
22322 445
|
||||
6T699 340
|
||||
99939 203
|
||||
A5525 528
|
||||
7QKA2 754
|
||||
5J558 873
|
||||
JJJJJ 147
|
||||
24244 626
|
||||
JJJ2J 972
|
||||
JAAAA 740
|
||||
55QQQ 607
|
||||
44K45 804
|
||||
KKQKT 822
|
||||
J9A5A 905
|
||||
4A85T 892
|
||||
J3333 199
|
||||
KTA9T 798
|
||||
33393 294
|
||||
TJ986 692
|
||||
56J4T 510
|
||||
967J7 160
|
||||
JQQ33 59
|
||||
Q744Q 779
|
||||
2K8AK 87
|
||||
JJ852 189
|
||||
4K77Q 365
|
||||
42222 702
|
||||
A2272 792
|
||||
88949 874
|
||||
TKT9K 879
|
||||
Q59Q7 41
|
||||
TAT9T 477
|
||||
K4J4T 533
|
||||
2T2Q2 861
|
||||
K6JQ6 569
|
||||
JTT22 947
|
||||
2J64A 555
|
||||
K6TTQ 898
|
||||
AJJQ7 967
|
||||
QQ444 566
|
||||
TTT7Q 313
|
||||
K488T 977
|
||||
45992 723
|
||||
38Q33 495
|
||||
6T75J 927
|
||||
J323A 100
|
||||
QQQ77 395
|
||||
88799 746
|
||||
KK9KK 295
|
||||
JJ833 781
|
||||
87A2K 384
|
||||
AQ66A 61
|
||||
856Q2 191
|
||||
5765K 167
|
||||
J24TJ 591
|
||||
362QJ 640
|
||||
2JT43 654
|
||||
438J5 217
|
||||
73299 999
|
||||
33K2K 915
|
||||
2952T 300
|
||||
8666T 764
|
||||
22332 644
|
||||
3T9AA 307
|
||||
79877 575
|
||||
TJ6T7 516
|
||||
T6TJ6 163
|
||||
6T6J6 659
|
||||
4K426 511
|
||||
777A4 131
|
||||
44494 289
|
||||
QJ82J 690
|
||||
Q22Q6 760
|
||||
55527 529
|
||||
559A5 791
|
||||
KKQAK 704
|
||||
KA938 621
|
||||
KAK9A 934
|
||||
2J992 123
|
||||
QQ2QQ 994
|
||||
3TT5T 763
|
||||
6KKKK 3
|
||||
4254K 398
|
||||
J2442 522
|
||||
39J37 549
|
||||
64444 714
|
||||
KQ7Q9 226
|
||||
79T79 328
|
||||
TK3J6 20
|
||||
J5T95 762
|
||||
83882 474
|
||||
97777 916
|
||||
AT673 570
|
||||
2A333 998
|
||||
7J77K 146
|
||||
686QQ 518
|
||||
5T77T 671
|
||||
TQ2QQ 281
|
||||
J4444 784
|
||||
JK46T 118
|
||||
797QT 379
|
||||
48776 130
|
||||
484K4 173
|
||||
JK794 72
|
||||
7QQ6Q 725
|
||||
3KT24 209
|
||||
4J545 581
|
||||
63T6Q 339
|
||||
88AKQ 812
|
||||
99A89 101
|
||||
QQ799 55
|
||||
4Q8QK 610
|
||||
864J9 370
|
||||
4QJQT 107
|
||||
644QJ 669
|
||||
A3AAA 780
|
||||
9A8AT 950
|
||||
54342 25
|
||||
43433 164
|
||||
58554 559
|
||||
84887 50
|
||||
K9KKT 341
|
||||
T3JA9 104
|
||||
57T57 453
|
||||
J4JQ5 592
|
||||
KJJA5 688
|
||||
J8898 374
|
||||
59772 646
|
||||
K66QK 696
|
||||
T2T44 440
|
||||
Q7AJ3 120
|
||||
Q7777 532
|
||||
997KQ 292
|
||||
A4AAA 931
|
||||
K4KTJ 451
|
||||
4JAT8 655
|
||||
Q77Q3 169
|
||||
QTTQQ 618
|
||||
68ATK 257
|
||||
AJ4AA 948
|
||||
26636 603
|
||||
3J656 382
|
||||
4A6AT 936
|
||||
54555 846
|
||||
J3289 338
|
||||
66556 900
|
||||
J5A9J 112
|
||||
55T5T 735
|
||||
K6484 634
|
||||
444KK 862
|
||||
K6K6K 205
|
||||
K55KJ 842
|
||||
Q27QT 652
|
||||
73777 901
|
||||
949J9 4
|
||||
J26K3 889
|
||||
2AJK9 79
|
||||
22227 584
|
||||
54T9A 42
|
||||
995A5 736
|
||||
6QT48 452
|
||||
K6324 363
|
||||
7Q832 807
|
||||
6K633 951
|
||||
JKK7K 387
|
||||
2TK73 678
|
||||
T4JJT 552
|
||||
66665 908
|
||||
77877 232
|
||||
J88J8 789
|
||||
A8AA2 320
|
||||
92832 490
|
||||
44399 355
|
||||
AT953 750
|
||||
5A755 388
|
||||
KJ945 312
|
||||
JAA88 119
|
||||
QK9QK 521
|
||||
7T2T7 871
|
||||
6K4T9 583
|
||||
5AAAA 978
|
||||
T2JT4 174
|
||||
7J447 361
|
||||
8QJ8A 470
|
||||
T5263 43
|
||||
3K3KK 63
|
||||
88284 57
|
||||
48A72 722
|
||||
4T562 190
|
||||
6TT96 2
|
||||
3Q5QQ 221
|
||||
42744 401
|
||||
88442 345
|
||||
Q3Q22 686
|
||||
69Q28 177
|
||||
J33JQ 839
|
||||
833QA 392
|
||||
J8838 598
|
||||
QQK75 376
|
||||
8888J 413
|
||||
QQQQ6 488
|
||||
Q6Q6Q 127
|
||||
9T9JJ 158
|
||||
355TK 827
|
||||
4QAAA 765
|
||||
T7QJ7 498
|
||||
445T4 911
|
||||
AA2AA 337
|
||||
33733 672
|
||||
92KK4 958
|
||||
KJ746 231
|
||||
3632A 22
|
||||
3K45A 348
|
||||
T7673 938
|
||||
39J99 803
|
||||
Q8T72 58
|
||||
77444 49
|
||||
44AQ5 7
|
||||
657A4 663
|
||||
QAQQQ 580
|
||||
974TK 643
|
||||
2TJJ2 273
|
||||
89993 342
|
||||
TT333 590
|
||||
J88JT 920
|
||||
AQ2K6 240
|
||||
68644 229
|
||||
92A9J 391
|
||||
444AA 962
|
||||
48Q4Q 473
|
||||
Q3Q33 133
|
||||
7Q233 373
|
||||
2J2J2 878
|
||||
9J488 954
|
||||
AJ979 944
|
||||
8T3J8 352
|
||||
J87Q3 56
|
||||
QQ3KQ 224
|
||||
3K597 267
|
||||
9J2TQ 830
|
||||
J7444 36
|
||||
55757 605
|
||||
56556 732
|
||||
KA6QJ 290
|
||||
7T95A 955
|
||||
39344 434
|
||||
72T39 256
|
||||
3A333 102
|
||||
4K8A6 507
|
||||
55K9T 657
|
||||
622JT 24
|
||||
6J766 151
|
||||
9J9A9 238
|
||||
866J6 464
|
||||
6KJK6 851
|
||||
4T4T8 543
|
||||
KJA3K 248
|
||||
A4J86 537
|
||||
T8QJ8 454
|
||||
A93AA 421
|
||||
JJJQQ 863
|
||||
284K4 620
|
||||
9J978 67
|
||||
K7675 536
|
||||
TT7TA 287
|
||||
TJ92A 343
|
||||
4QT44 276
|
||||
7777T 78
|
||||
2QT26 444
|
||||
85558 230
|
||||
9A9A9 731
|
||||
Q5225 501
|
||||
22TQT 425
|
||||
555J6 930
|
||||
Q333A 563
|
||||
45844 202
|
||||
QA472 679
|
||||
7TJ77 442
|
||||
Q7222 122
|
||||
JK6JK 397
|
||||
99K9J 417
|
||||
44434 615
|
||||
J75A7 633
|
||||
AA2KA 728
|
||||
2Q22Q 68
|
||||
J55J5 359
|
||||
J4555 415
|
||||
66823 649
|
||||
JK3K3 896
|
||||
773J5 74
|
||||
T6777 28
|
||||
K9925 53
|
||||
K2KTK 611
|
||||
KKK44 89
|
||||
J3KKK 129
|
||||
TK8JA 109
|
||||
K3339 525
|
||||
Q59QJ 928
|
||||
J8TTT 402
|
||||
77757 612
|
||||
KKKK7 155
|
||||
85A59 197
|
||||
KQQK5 350
|
||||
6776K 301
|
||||
KKK55 910
|
||||
AQAQA 407
|
||||
92299 693
|
||||
9A779 175
|
||||
Q6A27 968
|
||||
85QQ8 761
|
||||
TA536 483
|
||||
66363 278
|
||||
Q53Q3 234
|
||||
K4A28 596
|
||||
7QA8T 565
|
||||
33355 503
|
||||
AAA67 40
|
||||
JA66A 351
|
||||
634KA 96
|
||||
JA555 489
|
||||
TA457 813
|
||||
A87JK 297
|
||||
7777J 527
|
||||
8J8T8 664
|
||||
6TK87 194
|
||||
88688 568
|
||||
QA8A6 867
|
||||
TT99T 228
|
||||
J5955 890
|
||||
52777 385
|
||||
AQ44Q 737
|
||||
9867T 299
|
||||
QTQTT 94
|
||||
QQTQ7 876
|
||||
T3TQ6 573
|
||||
5Q555 44
|
||||
A73T4 69
|
||||
QAT72 629
|
||||
K777K 636
|
||||
2222J 404
|
||||
Q4J4Q 103
|
||||
JT2A2 783
|
||||
J55JA 315
|
||||
585T5 744
|
||||
J3773 645
|
||||
5625A 608
|
||||
TA632 327
|
||||
4J4J4 523
|
||||
53535 824
|
||||
636K5 976
|
||||
4T278 318
|
||||
9Q77J 815
|
||||
64T87 758
|
||||
7QJQ7 547
|
||||
A7A8A 945
|
||||
Q6573 29
|
||||
2QQ2T 266
|
||||
AK427 152
|
||||
22592 304
|
||||
69AJ6 261
|
||||
T5T52 180
|
||||
TQ59J 705
|
||||
99669 648
|
||||
6TQJ4 785
|
||||
6AQQ5 430
|
||||
TQTQ5 389
|
||||
J7AQ5 176
|
||||
33A4A 463
|
||||
T8383 344
|
||||
Q636K 963
|
||||
Q3AAQ 1
|
||||
K29Q3 870
|
||||
JQ8TT 157
|
||||
2Q96J 491
|
||||
5KK94 709
|
||||
K44J5 856
|
||||
J233T 476
|
||||
K5555 326
|
||||
283K9 965
|
||||
TQAAA 23
|
||||
4T5JA 165
|
||||
6477A 81
|
||||
82855 836
|
||||
8T88T 973
|
||||
A3JA3 110
|
||||
49449 983
|
||||
92K2K 124
|
||||
8J777 336
|
||||
A8555 519
|
||||
JJQQA 409
|
||||
55865 617
|
||||
T4484 481
|
||||
K729T 777
|
||||
55A44 111
|
||||
667Q9 989
|
||||
A6J55 906
|
||||
3A44J 128
|
||||
K4A65 108
|
||||
Q8A88 680
|
||||
Q8K63 411
|
||||
4TT4Q 733
|
||||
893A4 937
|
||||
7374T 458
|
||||
659JK 144
|
||||
JQ642 601
|
||||
52333 712
|
||||
JQA3K 277
|
||||
QQ555 140
|
||||
5377A 117
|
||||
98T89 46
|
||||
T8T8T 674
|
||||
KQT88 243
|
||||
J7333 317
|
||||
KKQ7Q 560
|
||||
66636 33
|
||||
5AT6T 942
|
||||
24224 52
|
||||
A6276 797
|
||||
J99J9 60
|
||||
Q777A 80
|
||||
87TQJ 241
|
||||
56QT3 553
|
||||
KK9KJ 745
|
||||
AJQA9 707
|
||||
6JA99 408
|
||||
6385K 403
|
||||
K5JQQ 829
|
||||
6K644 985
|
||||
5K4Q3 530
|
||||
QQTQQ 51
|
||||
255K4 316
|
||||
T555J 499
|
||||
66Q66 882
|
||||
8K89J 166
|
||||
766T6 214
|
||||
A6AJQ 845
|
||||
886A9 969
|
||||
97264 974
|
||||
69Q69 551
|
||||
95529 642
|
||||
K569T 47
|
||||
K2222 333
|
||||
TKTKK 520
|
||||
J7JT7 632
|
||||
22822 242
|
||||
5282J 684
|
||||
9Q8T9 548
|
||||
9KJ75 957
|
||||
JKJKK 854
|
||||
6T6T6 270
|
||||
6Q6Q6 412
|
||||
AJKQ5 380
|
||||
J3335 508
|
||||
77677 623
|
||||
698K6 207
|
||||
QTT78 795
|
||||
AA5K4 332
|
||||
38838 932
|
||||
TTTJJ 956
|
||||
99TT8 418
|
||||
7454J 800
|
||||
Q7AAA 880
|
||||
TT5T5 494
|
||||
432AJ 429
|
||||
QK9AT 293
|
||||
6668Q 6
|
||||
6TT2J 847
|
||||
4A4A3 713
|
||||
4J9K2 469
|
||||
23333 136
|
||||
T4J28 819
|
||||
KA923 681
|
||||
A6256 210
|
||||
QAA33 953
|
||||
4JJ48 48
|
||||
9K5JK 576
|
||||
6Q5J3 390
|
||||
6AAAA 564
|
||||
62252 54
|
||||
AJT6J 993
|
||||
66JKJ 724
|
||||
44554 45
|
||||
992JK 260
|
||||
8T8Q4 239
|
||||
97A34 699
|
||||
KK85K 419
|
||||
8J638 557
|
||||
49K88 76
|
||||
8K99T 321
|
||||
Q9993 8
|
||||
57744 922
|
||||
24KKK 35
|
||||
TATAT 742
|
||||
QQ988 550
|
||||
5AK55 456
|
||||
5QK58 467
|
||||
T8TK5 743
|
||||
4Q66J 818
|
||||
3449J 585
|
||||
JA428 66
|
||||
8J957 562
|
||||
Q7KQQ 515
|
||||
2Q9QT 247
|
||||
8QQ88 670
|
||||
38783 86
|
||||
6646T 32
|
||||
@@ -0,0 +1,140 @@
|
||||
from enum import IntEnum
|
||||
|
||||
INPUT_FILE = "input.text"
|
||||
|
||||
possible_letter_cards = {
|
||||
"A" : 14,
|
||||
"K" : 13,
|
||||
"Q" : 12,
|
||||
"J" : 11,
|
||||
"T" : 10
|
||||
}
|
||||
|
||||
class HandType(IntEnum):
|
||||
FiveOfAKind = 7
|
||||
FourOfAKind = 6
|
||||
FullHouse = 5
|
||||
ThreeOfAKind = 4
|
||||
TwoPair = 3
|
||||
OnePair = 2
|
||||
HighCard = 1
|
||||
|
||||
def card_to_value(card : str) -> int | None:
|
||||
if len(card) > 1:
|
||||
print("Input is more than one character")
|
||||
return None
|
||||
|
||||
if card in possible_letter_cards:
|
||||
return possible_letter_cards[card]
|
||||
|
||||
elif card.isdigit():
|
||||
num = int(card)
|
||||
if num <= 9 and num >= 2:
|
||||
return num
|
||||
else:
|
||||
print(f"Card invalid, Card: {card}")
|
||||
return None
|
||||
|
||||
class Hand:
|
||||
cards : str
|
||||
card_values : list[int]
|
||||
bid : int
|
||||
hand_type : HandType
|
||||
|
||||
def __init__(self, hand : str, bid : int):
|
||||
self.bid = bid
|
||||
|
||||
self.cards = hand
|
||||
self.card_values = []
|
||||
self.find_hand_type()
|
||||
self.get_card_values()
|
||||
print(f"Found hand type is {self.hand_type}")
|
||||
print(f"Card Values: {self.card_values}")
|
||||
|
||||
def find_hand_type(self) -> None:
|
||||
|
||||
matches : list[int] = []
|
||||
print(f"Cards: {self.cards}")
|
||||
for card in self.cards:
|
||||
temp_cards = self.cards
|
||||
|
||||
temp_cards = temp_cards.replace(card, "")
|
||||
|
||||
matches.append(len(temp_cards))
|
||||
|
||||
print(f"Matches: {matches}")
|
||||
|
||||
if matches.count(0) == 5:
|
||||
self.hand_type = HandType.FiveOfAKind
|
||||
elif matches.count(1) == 4:
|
||||
self.hand_type = HandType.FourOfAKind
|
||||
elif matches.count(2) == 3 and matches.count(3) == 2:
|
||||
self.hand_type = HandType.FullHouse
|
||||
elif matches.count(2) == 3:
|
||||
self.hand_type = HandType.ThreeOfAKind
|
||||
elif matches.count(3) == 4:
|
||||
self.hand_type = HandType.TwoPair
|
||||
elif matches.count(3) == 2:
|
||||
self.hand_type = HandType.OnePair
|
||||
else:
|
||||
self.hand_type = HandType.HighCard
|
||||
|
||||
def get_card_values(self) -> None:
|
||||
for card in self.cards:
|
||||
self.card_values.append(card_to_value(card))
|
||||
|
||||
def main() -> None:
|
||||
with open(INPUT_FILE, "r") as f:
|
||||
data = f.readlines()
|
||||
|
||||
|
||||
# Get all our hands and figure out what they ard
|
||||
hands: list[Hand] = []
|
||||
for line in data:
|
||||
hand, bid = line.split()
|
||||
|
||||
hands.append(Hand(hand, int(bid)))
|
||||
|
||||
|
||||
# Sort and decide rank
|
||||
total = 0
|
||||
sorted_hands: list[Hand] = bubbleSortHands(hands)
|
||||
|
||||
for i in range(0, len(sorted_hands)):
|
||||
rank = i + 1
|
||||
|
||||
total += sorted_hands[i].bid * rank
|
||||
|
||||
print(f"Total Winnings: {total}")
|
||||
|
||||
# is it fast? probably not, but it works
|
||||
def bubbleSortHands(arr: list[Hand]) -> list[Hand]:
|
||||
n: int = len(arr)
|
||||
|
||||
for i in range(n):
|
||||
swapped = False
|
||||
|
||||
for j in range(0, n-i-1):
|
||||
|
||||
if arr[j].hand_type > arr[j + 1].hand_type:
|
||||
arr[j], arr[j + 1] = arr[j + 1], arr[j]
|
||||
swapped = True
|
||||
|
||||
elif arr[j].hand_type == arr[j + 1].hand_type:
|
||||
for card_index in range(0, 5):
|
||||
if arr[j].card_values[card_index] > arr[j + 1].card_values[card_index]:
|
||||
arr[j], arr[j + 1] = arr[j + 1], arr[j]
|
||||
swapped = True
|
||||
break
|
||||
elif arr[j].card_values[card_index] < arr[j + 1].card_values[card_index]:
|
||||
break
|
||||
|
||||
|
||||
if (swapped == False):
|
||||
break
|
||||
|
||||
return arr
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,86 @@
|
||||
use std::fs;
|
||||
use std::collections::HashMap;
|
||||
|
||||
const FILE_PATH: &str = "./test.text";
|
||||
|
||||
enum HandType
|
||||
{
|
||||
FiveOfKind,
|
||||
FourOfKind,
|
||||
FullHouse,
|
||||
ThreeOfKind,
|
||||
TwoPair,
|
||||
OnePair,
|
||||
HighCard
|
||||
}
|
||||
|
||||
struct Hand
|
||||
{
|
||||
value: String,
|
||||
bid: i32,
|
||||
hand_type: HandType
|
||||
}
|
||||
|
||||
fn compare_hands(hand_1: Hand, hand_2: Hand) -> Hand
|
||||
{
|
||||
let result: Hand;
|
||||
|
||||
result
|
||||
}
|
||||
|
||||
fn get_hand_type(hand: &str) //-> HandType
|
||||
{
|
||||
// Parse hand into map
|
||||
let mut hand_values: HashMap<char, i32> = HashMap::new();
|
||||
for card in hand.chars()
|
||||
{
|
||||
match hand_values.get(&card) {
|
||||
Some(_) => { *hand_values.get_mut(&card).unwrap() += 1; },
|
||||
None => { hand_values.insert(card, 1); }
|
||||
}
|
||||
}
|
||||
|
||||
// Decide HandType
|
||||
for (card, value) in &hand_values
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fn card_value(card: &str) -> i32
|
||||
{
|
||||
match card {
|
||||
"A" => 13,
|
||||
"K" => 12,
|
||||
"Q" => 11,
|
||||
"J" => 10,
|
||||
"T" => 9,
|
||||
"9" => 8,
|
||||
"8" => 7,
|
||||
"7" => 6,
|
||||
"6" => 5,
|
||||
"5" => 4,
|
||||
"4" => 3,
|
||||
"3" => 2,
|
||||
"2" => 1,
|
||||
_ => -1
|
||||
}
|
||||
}
|
||||
|
||||
fn main()
|
||||
{
|
||||
let contents = fs::read_to_string(FILE_PATH).unwrap();
|
||||
|
||||
let hand_rankings: Vec<Hand> = Vec::new();
|
||||
|
||||
for line in contents.lines()
|
||||
{
|
||||
let hand_and_bid: Vec<&str> = line.split(" ").collect();
|
||||
|
||||
let hand = hand_and_bid[0];
|
||||
let bid: i32 = hand_and_bid[1].parse().unwrap();
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
32T3K 765
|
||||
T55J5 684
|
||||
KK677 28
|
||||
KTJJT 220
|
||||
QQQJA 483
|
||||
@@ -0,0 +1,1000 @@
|
||||
486AA 252
|
||||
24544 330
|
||||
33TTT 540
|
||||
242K2 966
|
||||
334A4 877
|
||||
3632J 651
|
||||
22K55 378
|
||||
9J656 695
|
||||
Q7478 933
|
||||
5K266 279
|
||||
AK9J8 840
|
||||
6JQ9J 697
|
||||
47JT6 545
|
||||
777K2 400
|
||||
QTTTT 115
|
||||
6J554 121
|
||||
KJAKA 677
|
||||
KKK8Q 372
|
||||
3K8A6 428
|
||||
6JTJJ 249
|
||||
2626J 909
|
||||
Q47Q9 859
|
||||
QQQKT 116
|
||||
AQAA6 200
|
||||
K88Q8 542
|
||||
TTT4T 826
|
||||
8K56A 619
|
||||
55J27 637
|
||||
TTT37 513
|
||||
62362 254
|
||||
J383K 329
|
||||
4Q89J 682
|
||||
6TQ75 222
|
||||
Q4298 774
|
||||
A3AA3 263
|
||||
86672 866
|
||||
5A5AJ 606
|
||||
K6K79 27
|
||||
88AJJ 514
|
||||
QJ725 961
|
||||
77727 509
|
||||
8T9JT 582
|
||||
6Q464 98
|
||||
75887 995
|
||||
69TT9 624
|
||||
8327K 377
|
||||
TT444 561
|
||||
9K89K 204
|
||||
JQAQ5 393
|
||||
TTTJT 331
|
||||
3T8Q2 588
|
||||
JKKKK 572
|
||||
AT5TT 810
|
||||
AJ552 162
|
||||
Q2A23 258
|
||||
688QA 816
|
||||
4T555 183
|
||||
K4342 461
|
||||
A9929 369
|
||||
7J969 730
|
||||
8KAQ9 825
|
||||
KK47K 170
|
||||
4Q4JJ 150
|
||||
444Q4 964
|
||||
A7A77 251
|
||||
999JT 186
|
||||
8A88A 325
|
||||
2623K 135
|
||||
3Q767 913
|
||||
99989 855
|
||||
4444A 556
|
||||
6J757 383
|
||||
77788 75
|
||||
57A24 185
|
||||
Q3QK3 627
|
||||
6A855 982
|
||||
6KQ23 399
|
||||
TT49T 630
|
||||
6AAAJ 443
|
||||
76K8K 940
|
||||
Q8888 747
|
||||
AK48T 250
|
||||
22A22 506
|
||||
TT547 538
|
||||
Q5J2A 11
|
||||
546A3 137
|
||||
A38Q2 753
|
||||
TK3K2 881
|
||||
22627 771
|
||||
Q67AK 298
|
||||
J2262 782
|
||||
2QAQ2 5
|
||||
JTK7K 625
|
||||
A3337 766
|
||||
6JQ45 924
|
||||
A9999 544
|
||||
45444 716
|
||||
K7777 673
|
||||
6QT4T 541
|
||||
T4222 811
|
||||
T8888 799
|
||||
QQQJQ 426
|
||||
5858J 886
|
||||
77A77 897
|
||||
QJ866 448
|
||||
48J43 73
|
||||
2Q4J7 432
|
||||
66K66 787
|
||||
69A4K 114
|
||||
T6792 685
|
||||
79A99 306
|
||||
KK9K9 860
|
||||
96666 992
|
||||
85858 558
|
||||
Q2AT4 308
|
||||
Q9QQ5 496
|
||||
8AAJA 271
|
||||
T3TJK 919
|
||||
2836J 662
|
||||
78878 431
|
||||
88887 184
|
||||
J3QQ8 609
|
||||
T4JTT 778
|
||||
AJ533 30
|
||||
3TT4J 349
|
||||
J6282 925
|
||||
6Q874 82
|
||||
AKK24 832
|
||||
3QJ33 65
|
||||
65522 288
|
||||
22Q22 749
|
||||
J8K84 497
|
||||
A343Q 794
|
||||
38J53 314
|
||||
886Q8 613
|
||||
7Q568 899
|
||||
AQAKK 990
|
||||
3978J 438
|
||||
39K6J 468
|
||||
8428J 466
|
||||
TJ4T7 776
|
||||
73825 726
|
||||
AK53Q 683
|
||||
6J434 206
|
||||
68Q84 64
|
||||
8KTTJ 505
|
||||
JJ77J 773
|
||||
73355 13
|
||||
QQJ36 441
|
||||
J6KA5 980
|
||||
Q7A88 718
|
||||
46646 449
|
||||
JQ994 460
|
||||
Q54A7 675
|
||||
A7TQT 195
|
||||
3887K 219
|
||||
J277T 16
|
||||
98J29 486
|
||||
TA777 375
|
||||
687QQ 462
|
||||
KQKQK 687
|
||||
KTT28 322
|
||||
TT3TT 181
|
||||
K4444 125
|
||||
Q8QTT 286
|
||||
JT5TQ 410
|
||||
5AA65 935
|
||||
3QTJ3 638
|
||||
5T4Q9 10
|
||||
JK3T3 595
|
||||
2A9AA 362
|
||||
A58AA 145
|
||||
94KK9 310
|
||||
88Q2Q 482
|
||||
3985A 244
|
||||
6AA96 711
|
||||
Q7337 34
|
||||
8828J 356
|
||||
7379J 903
|
||||
28288 83
|
||||
K22K2 923
|
||||
K5J25 767
|
||||
22992 500
|
||||
66787 786
|
||||
9746J 661
|
||||
765T9 31
|
||||
9J9J6 285
|
||||
6348T 264
|
||||
562J9 280
|
||||
998QQ 192
|
||||
99559 751
|
||||
999T9 817
|
||||
J5TT5 715
|
||||
37722 820
|
||||
595K5 435
|
||||
8A5A8 187
|
||||
59858 139
|
||||
42Q5Q 212
|
||||
KQQQQ 15
|
||||
5QQQQ 929
|
||||
Q777J 631
|
||||
66TTT 455
|
||||
56226 689
|
||||
73373 887
|
||||
K32T3 665
|
||||
3A36A 447
|
||||
QAAJ8 143
|
||||
84448 324
|
||||
T4344 759
|
||||
9J99Q 371
|
||||
98989 309
|
||||
72T46 717
|
||||
QQ5KT 821
|
||||
8T64A 236
|
||||
A2AA2 918
|
||||
52775 907
|
||||
7T7T7 211
|
||||
6Q782 535
|
||||
75A36 12
|
||||
Q9Q62 274
|
||||
T2463 752
|
||||
797J9 471
|
||||
K7KK7 414
|
||||
444K3 917
|
||||
4QQAQ 586
|
||||
59J64 895
|
||||
6K6J6 142
|
||||
6T464 366
|
||||
3K5AA 465
|
||||
3QQ4Q 769
|
||||
K5533 941
|
||||
T2299 39
|
||||
333TJ 597
|
||||
AA8AA 975
|
||||
9J4KK 198
|
||||
6QQ44 554
|
||||
44469 433
|
||||
264AQ 628
|
||||
9986J 178
|
||||
786J7 894
|
||||
86866 656
|
||||
5J555 156
|
||||
QTJQK 858
|
||||
A84AA 526
|
||||
32J37 132
|
||||
4666Q 427
|
||||
894QT 472
|
||||
7K469 1000
|
||||
9J77J 888
|
||||
95559 478
|
||||
44553 600
|
||||
K9J9K 37
|
||||
96979 814
|
||||
99393 148
|
||||
A99AA 88
|
||||
953TQ 708
|
||||
6KTQ3 437
|
||||
KKAJK 358
|
||||
72292 439
|
||||
63362 599
|
||||
5J88J 639
|
||||
74444 604
|
||||
6Q6J3 698
|
||||
TAA66 843
|
||||
9QQJ9 168
|
||||
TT8TT 381
|
||||
JJTA2 960
|
||||
36363 423
|
||||
455J8 602
|
||||
8A543 223
|
||||
Q8T42 884
|
||||
8A888 227
|
||||
AQAA5 872
|
||||
6K525 364
|
||||
58KA9 62
|
||||
33277 296
|
||||
KAKKA 386
|
||||
665T8 259
|
||||
KJKQK 593
|
||||
36355 85
|
||||
5KK47 926
|
||||
35539 17
|
||||
66466 19
|
||||
A979Q 589
|
||||
54888 218
|
||||
477JT 574
|
||||
66634 105
|
||||
76T25 161
|
||||
2739J 883
|
||||
J3433 808
|
||||
7J7J3 436
|
||||
7252T 721
|
||||
6QA2J 18
|
||||
2T373 334
|
||||
39393 770
|
||||
39969 262
|
||||
79T99 833
|
||||
2794Q 14
|
||||
9AK36 996
|
||||
JQ4QQ 579
|
||||
TJ53A 757
|
||||
JA7AA 302
|
||||
K3333 159
|
||||
4K4KA 424
|
||||
26T62 988
|
||||
A4582 571
|
||||
59999 841
|
||||
9999J 959
|
||||
882Q2 220
|
||||
74777 484
|
||||
48T53 179
|
||||
9T947 269
|
||||
8J62A 113
|
||||
88KAA 837
|
||||
5J2JQ 319
|
||||
9K499 904
|
||||
282A2 756
|
||||
78K63 801
|
||||
2A5A5 539
|
||||
Q6QJK 171
|
||||
55535 492
|
||||
7J775 323
|
||||
62626 291
|
||||
88883 459
|
||||
69336 196
|
||||
TTA4T 921
|
||||
6236T 667
|
||||
58K58 475
|
||||
68KK8 201
|
||||
55559 875
|
||||
26AAA 616
|
||||
4JT59 90
|
||||
T3333 831
|
||||
4A359 394
|
||||
53325 914
|
||||
T5886 268
|
||||
22T44 729
|
||||
34443 21
|
||||
TA72K 71
|
||||
KTJQJ 979
|
||||
4TT5T 790
|
||||
38983 949
|
||||
975T2 493
|
||||
AJ2KK 303
|
||||
85J75 367
|
||||
T44A4 694
|
||||
6346T 368
|
||||
83383 134
|
||||
639J2 126
|
||||
2435A 77
|
||||
6K972 741
|
||||
5TA55 622
|
||||
5TT66 567
|
||||
99949 193
|
||||
KJ973 357
|
||||
5QT38 225
|
||||
73A7A 748
|
||||
43555 233
|
||||
3A46J 335
|
||||
72272 154
|
||||
A3832 660
|
||||
74774 997
|
||||
96QAK 405
|
||||
4A844 305
|
||||
3J3J3 517
|
||||
K5KKK 720
|
||||
QQT7T 727
|
||||
55282 487
|
||||
523Q4 99
|
||||
55585 912
|
||||
QJK65 796
|
||||
222AJ 734
|
||||
TTKTT 235
|
||||
QK67J 245
|
||||
4A4JA 182
|
||||
9TAAT 84
|
||||
79K43 353
|
||||
AAQAJ 149
|
||||
8A8AA 587
|
||||
TA5J9 952
|
||||
58888 237
|
||||
79Q25 658
|
||||
258KT 512
|
||||
424T4 502
|
||||
6J666 485
|
||||
5555A 457
|
||||
7A523 809
|
||||
K5K66 188
|
||||
ATKKT 981
|
||||
33Q66 594
|
||||
75A88 987
|
||||
6J677 91
|
||||
68688 864
|
||||
QQ33Q 635
|
||||
22427 755
|
||||
AJK83 153
|
||||
42Q8K 802
|
||||
AJT8J 650
|
||||
5AK6A 691
|
||||
979K5 253
|
||||
5K45K 653
|
||||
AA459 93
|
||||
T2T8J 838
|
||||
49947 479
|
||||
7Q799 647
|
||||
J4524 208
|
||||
66K6K 943
|
||||
53232 902
|
||||
JJQQQ 869
|
||||
64K4K 534
|
||||
77799 406
|
||||
77J7J 844
|
||||
A75QK 971
|
||||
865A2 26
|
||||
KJ4AA 885
|
||||
TA856 835
|
||||
84A78 703
|
||||
J9696 92
|
||||
J28K2 891
|
||||
KKAAT 546
|
||||
K2592 531
|
||||
AA96A 676
|
||||
73KT7 793
|
||||
66JJ6 719
|
||||
99379 578
|
||||
8Q685 739
|
||||
QQQT9 282
|
||||
JJ4J4 420
|
||||
66969 106
|
||||
A7AQQ 850
|
||||
9K526 311
|
||||
AQ8TJ 246
|
||||
462K2 706
|
||||
656J6 504
|
||||
TQQ57 172
|
||||
77Q37 416
|
||||
5857Q 857
|
||||
QQQ3J 265
|
||||
44J84 354
|
||||
TT537 991
|
||||
QAT29 213
|
||||
8A9JA 823
|
||||
684Q2 275
|
||||
54T92 946
|
||||
5K55K 283
|
||||
94732 986
|
||||
55565 700
|
||||
6JA66 893
|
||||
3K33K 865
|
||||
JKKTK 641
|
||||
99636 984
|
||||
333T9 396
|
||||
24J25 828
|
||||
33AJ3 939
|
||||
J7J87 347
|
||||
84884 577
|
||||
3J366 666
|
||||
QQ4Q4 70
|
||||
KQ562 806
|
||||
95275 9
|
||||
86KKA 95
|
||||
7K67K 868
|
||||
TAATA 668
|
||||
7JK9J 614
|
||||
855J3 138
|
||||
59496 360
|
||||
66272 422
|
||||
7927A 255
|
||||
644J4 970
|
||||
3K33Q 284
|
||||
2T44J 346
|
||||
66626 775
|
||||
622AA 450
|
||||
JJJ8J 97
|
||||
T73T2 848
|
||||
26686 480
|
||||
8K58A 710
|
||||
5A55A 852
|
||||
34683 701
|
||||
2J827 834
|
||||
ATAAA 772
|
||||
9444J 853
|
||||
J2828 805
|
||||
JJ369 215
|
||||
J2962 849
|
||||
T7TTT 216
|
||||
9T23K 788
|
||||
T8759 38
|
||||
9777J 768
|
||||
934KQ 141
|
||||
K7A7J 738
|
||||
QQAAQ 446
|
||||
9J93T 524
|
||||
JAJAA 272
|
||||
22322 445
|
||||
6T699 340
|
||||
99939 203
|
||||
A5525 528
|
||||
7QKA2 754
|
||||
5J558 873
|
||||
JJJJJ 147
|
||||
24244 626
|
||||
JJJ2J 972
|
||||
JAAAA 740
|
||||
55QQQ 607
|
||||
44K45 804
|
||||
KKQKT 822
|
||||
J9A5A 905
|
||||
4A85T 892
|
||||
J3333 199
|
||||
KTA9T 798
|
||||
33393 294
|
||||
TJ986 692
|
||||
56J4T 510
|
||||
967J7 160
|
||||
JQQ33 59
|
||||
Q744Q 779
|
||||
2K8AK 87
|
||||
JJ852 189
|
||||
4K77Q 365
|
||||
42222 702
|
||||
A2272 792
|
||||
88949 874
|
||||
TKT9K 879
|
||||
Q59Q7 41
|
||||
TAT9T 477
|
||||
K4J4T 533
|
||||
2T2Q2 861
|
||||
K6JQ6 569
|
||||
JTT22 947
|
||||
2J64A 555
|
||||
K6TTQ 898
|
||||
AJJQ7 967
|
||||
QQ444 566
|
||||
TTT7Q 313
|
||||
K488T 977
|
||||
45992 723
|
||||
38Q33 495
|
||||
6T75J 927
|
||||
J323A 100
|
||||
QQQ77 395
|
||||
88799 746
|
||||
KK9KK 295
|
||||
JJ833 781
|
||||
87A2K 384
|
||||
AQ66A 61
|
||||
856Q2 191
|
||||
5765K 167
|
||||
J24TJ 591
|
||||
362QJ 640
|
||||
2JT43 654
|
||||
438J5 217
|
||||
73299 999
|
||||
33K2K 915
|
||||
2952T 300
|
||||
8666T 764
|
||||
22332 644
|
||||
3T9AA 307
|
||||
79877 575
|
||||
TJ6T7 516
|
||||
T6TJ6 163
|
||||
6T6J6 659
|
||||
4K426 511
|
||||
777A4 131
|
||||
44494 289
|
||||
QJ82J 690
|
||||
Q22Q6 760
|
||||
55527 529
|
||||
559A5 791
|
||||
KKQAK 704
|
||||
KA938 621
|
||||
KAK9A 934
|
||||
2J992 123
|
||||
QQ2QQ 994
|
||||
3TT5T 763
|
||||
6KKKK 3
|
||||
4254K 398
|
||||
J2442 522
|
||||
39J37 549
|
||||
64444 714
|
||||
KQ7Q9 226
|
||||
79T79 328
|
||||
TK3J6 20
|
||||
J5T95 762
|
||||
83882 474
|
||||
97777 916
|
||||
AT673 570
|
||||
2A333 998
|
||||
7J77K 146
|
||||
686QQ 518
|
||||
5T77T 671
|
||||
TQ2QQ 281
|
||||
J4444 784
|
||||
JK46T 118
|
||||
797QT 379
|
||||
48776 130
|
||||
484K4 173
|
||||
JK794 72
|
||||
7QQ6Q 725
|
||||
3KT24 209
|
||||
4J545 581
|
||||
63T6Q 339
|
||||
88AKQ 812
|
||||
99A89 101
|
||||
QQ799 55
|
||||
4Q8QK 610
|
||||
864J9 370
|
||||
4QJQT 107
|
||||
644QJ 669
|
||||
A3AAA 780
|
||||
9A8AT 950
|
||||
54342 25
|
||||
43433 164
|
||||
58554 559
|
||||
84887 50
|
||||
K9KKT 341
|
||||
T3JA9 104
|
||||
57T57 453
|
||||
J4JQ5 592
|
||||
KJJA5 688
|
||||
J8898 374
|
||||
59772 646
|
||||
K66QK 696
|
||||
T2T44 440
|
||||
Q7AJ3 120
|
||||
Q7777 532
|
||||
997KQ 292
|
||||
A4AAA 931
|
||||
K4KTJ 451
|
||||
4JAT8 655
|
||||
Q77Q3 169
|
||||
QTTQQ 618
|
||||
68ATK 257
|
||||
AJ4AA 948
|
||||
26636 603
|
||||
3J656 382
|
||||
4A6AT 936
|
||||
54555 846
|
||||
J3289 338
|
||||
66556 900
|
||||
J5A9J 112
|
||||
55T5T 735
|
||||
K6484 634
|
||||
444KK 862
|
||||
K6K6K 205
|
||||
K55KJ 842
|
||||
Q27QT 652
|
||||
73777 901
|
||||
949J9 4
|
||||
J26K3 889
|
||||
2AJK9 79
|
||||
22227 584
|
||||
54T9A 42
|
||||
995A5 736
|
||||
6QT48 452
|
||||
K6324 363
|
||||
7Q832 807
|
||||
6K633 951
|
||||
JKK7K 387
|
||||
2TK73 678
|
||||
T4JJT 552
|
||||
66665 908
|
||||
77877 232
|
||||
J88J8 789
|
||||
A8AA2 320
|
||||
92832 490
|
||||
44399 355
|
||||
AT953 750
|
||||
5A755 388
|
||||
KJ945 312
|
||||
JAA88 119
|
||||
QK9QK 521
|
||||
7T2T7 871
|
||||
6K4T9 583
|
||||
5AAAA 978
|
||||
T2JT4 174
|
||||
7J447 361
|
||||
8QJ8A 470
|
||||
T5263 43
|
||||
3K3KK 63
|
||||
88284 57
|
||||
48A72 722
|
||||
4T562 190
|
||||
6TT96 2
|
||||
3Q5QQ 221
|
||||
42744 401
|
||||
88442 345
|
||||
Q3Q22 686
|
||||
69Q28 177
|
||||
J33JQ 839
|
||||
833QA 392
|
||||
J8838 598
|
||||
QQK75 376
|
||||
8888J 413
|
||||
QQQQ6 488
|
||||
Q6Q6Q 127
|
||||
9T9JJ 158
|
||||
355TK 827
|
||||
4QAAA 765
|
||||
T7QJ7 498
|
||||
445T4 911
|
||||
AA2AA 337
|
||||
33733 672
|
||||
92KK4 958
|
||||
KJ746 231
|
||||
3632A 22
|
||||
3K45A 348
|
||||
T7673 938
|
||||
39J99 803
|
||||
Q8T72 58
|
||||
77444 49
|
||||
44AQ5 7
|
||||
657A4 663
|
||||
QAQQQ 580
|
||||
974TK 643
|
||||
2TJJ2 273
|
||||
89993 342
|
||||
TT333 590
|
||||
J88JT 920
|
||||
AQ2K6 240
|
||||
68644 229
|
||||
92A9J 391
|
||||
444AA 962
|
||||
48Q4Q 473
|
||||
Q3Q33 133
|
||||
7Q233 373
|
||||
2J2J2 878
|
||||
9J488 954
|
||||
AJ979 944
|
||||
8T3J8 352
|
||||
J87Q3 56
|
||||
QQ3KQ 224
|
||||
3K597 267
|
||||
9J2TQ 830
|
||||
J7444 36
|
||||
55757 605
|
||||
56556 732
|
||||
KA6QJ 290
|
||||
7T95A 955
|
||||
39344 434
|
||||
72T39 256
|
||||
3A333 102
|
||||
4K8A6 507
|
||||
55K9T 657
|
||||
622JT 24
|
||||
6J766 151
|
||||
9J9A9 238
|
||||
866J6 464
|
||||
6KJK6 851
|
||||
4T4T8 543
|
||||
KJA3K 248
|
||||
A4J86 537
|
||||
T8QJ8 454
|
||||
A93AA 421
|
||||
JJJQQ 863
|
||||
284K4 620
|
||||
9J978 67
|
||||
K7675 536
|
||||
TT7TA 287
|
||||
TJ92A 343
|
||||
4QT44 276
|
||||
7777T 78
|
||||
2QT26 444
|
||||
85558 230
|
||||
9A9A9 731
|
||||
Q5225 501
|
||||
22TQT 425
|
||||
555J6 930
|
||||
Q333A 563
|
||||
45844 202
|
||||
QA472 679
|
||||
7TJ77 442
|
||||
Q7222 122
|
||||
JK6JK 397
|
||||
99K9J 417
|
||||
44434 615
|
||||
J75A7 633
|
||||
AA2KA 728
|
||||
2Q22Q 68
|
||||
J55J5 359
|
||||
J4555 415
|
||||
66823 649
|
||||
JK3K3 896
|
||||
773J5 74
|
||||
T6777 28
|
||||
K9925 53
|
||||
K2KTK 611
|
||||
KKK44 89
|
||||
J3KKK 129
|
||||
TK8JA 109
|
||||
K3339 525
|
||||
Q59QJ 928
|
||||
J8TTT 402
|
||||
77757 612
|
||||
KKKK7 155
|
||||
85A59 197
|
||||
KQQK5 350
|
||||
6776K 301
|
||||
KKK55 910
|
||||
AQAQA 407
|
||||
92299 693
|
||||
9A779 175
|
||||
Q6A27 968
|
||||
85QQ8 761
|
||||
TA536 483
|
||||
66363 278
|
||||
Q53Q3 234
|
||||
K4A28 596
|
||||
7QA8T 565
|
||||
33355 503
|
||||
AAA67 40
|
||||
JA66A 351
|
||||
634KA 96
|
||||
JA555 489
|
||||
TA457 813
|
||||
A87JK 297
|
||||
7777J 527
|
||||
8J8T8 664
|
||||
6TK87 194
|
||||
88688 568
|
||||
QA8A6 867
|
||||
TT99T 228
|
||||
J5955 890
|
||||
52777 385
|
||||
AQ44Q 737
|
||||
9867T 299
|
||||
QTQTT 94
|
||||
QQTQ7 876
|
||||
T3TQ6 573
|
||||
5Q555 44
|
||||
A73T4 69
|
||||
QAT72 629
|
||||
K777K 636
|
||||
2222J 404
|
||||
Q4J4Q 103
|
||||
JT2A2 783
|
||||
J55JA 315
|
||||
585T5 744
|
||||
J3773 645
|
||||
5625A 608
|
||||
TA632 327
|
||||
4J4J4 523
|
||||
53535 824
|
||||
636K5 976
|
||||
4T278 318
|
||||
9Q77J 815
|
||||
64T87 758
|
||||
7QJQ7 547
|
||||
A7A8A 945
|
||||
Q6573 29
|
||||
2QQ2T 266
|
||||
AK427 152
|
||||
22592 304
|
||||
69AJ6 261
|
||||
T5T52 180
|
||||
TQ59J 705
|
||||
99669 648
|
||||
6TQJ4 785
|
||||
6AQQ5 430
|
||||
TQTQ5 389
|
||||
J7AQ5 176
|
||||
33A4A 463
|
||||
T8383 344
|
||||
Q636K 963
|
||||
Q3AAQ 1
|
||||
K29Q3 870
|
||||
JQ8TT 157
|
||||
2Q96J 491
|
||||
5KK94 709
|
||||
K44J5 856
|
||||
J233T 476
|
||||
K5555 326
|
||||
283K9 965
|
||||
TQAAA 23
|
||||
4T5JA 165
|
||||
6477A 81
|
||||
82855 836
|
||||
8T88T 973
|
||||
A3JA3 110
|
||||
49449 983
|
||||
92K2K 124
|
||||
8J777 336
|
||||
A8555 519
|
||||
JJQQA 409
|
||||
55865 617
|
||||
T4484 481
|
||||
K729T 777
|
||||
55A44 111
|
||||
667Q9 989
|
||||
A6J55 906
|
||||
3A44J 128
|
||||
K4A65 108
|
||||
Q8A88 680
|
||||
Q8K63 411
|
||||
4TT4Q 733
|
||||
893A4 937
|
||||
7374T 458
|
||||
659JK 144
|
||||
JQ642 601
|
||||
52333 712
|
||||
JQA3K 277
|
||||
QQ555 140
|
||||
5377A 117
|
||||
98T89 46
|
||||
T8T8T 674
|
||||
KQT88 243
|
||||
J7333 317
|
||||
KKQ7Q 560
|
||||
66636 33
|
||||
5AT6T 942
|
||||
24224 52
|
||||
A6276 797
|
||||
J99J9 60
|
||||
Q777A 80
|
||||
87TQJ 241
|
||||
56QT3 553
|
||||
KK9KJ 745
|
||||
AJQA9 707
|
||||
6JA99 408
|
||||
6385K 403
|
||||
K5JQQ 829
|
||||
6K644 985
|
||||
5K4Q3 530
|
||||
QQTQQ 51
|
||||
255K4 316
|
||||
T555J 499
|
||||
66Q66 882
|
||||
8K89J 166
|
||||
766T6 214
|
||||
A6AJQ 845
|
||||
886A9 969
|
||||
97264 974
|
||||
69Q69 551
|
||||
95529 642
|
||||
K569T 47
|
||||
K2222 333
|
||||
TKTKK 520
|
||||
J7JT7 632
|
||||
22822 242
|
||||
5282J 684
|
||||
9Q8T9 548
|
||||
9KJ75 957
|
||||
JKJKK 854
|
||||
6T6T6 270
|
||||
6Q6Q6 412
|
||||
AJKQ5 380
|
||||
J3335 508
|
||||
77677 623
|
||||
698K6 207
|
||||
QTT78 795
|
||||
AA5K4 332
|
||||
38838 932
|
||||
TTTJJ 956
|
||||
99TT8 418
|
||||
7454J 800
|
||||
Q7AAA 880
|
||||
TT5T5 494
|
||||
432AJ 429
|
||||
QK9AT 293
|
||||
6668Q 6
|
||||
6TT2J 847
|
||||
4A4A3 713
|
||||
4J9K2 469
|
||||
23333 136
|
||||
T4J28 819
|
||||
KA923 681
|
||||
A6256 210
|
||||
QAA33 953
|
||||
4JJ48 48
|
||||
9K5JK 576
|
||||
6Q5J3 390
|
||||
6AAAA 564
|
||||
62252 54
|
||||
AJT6J 993
|
||||
66JKJ 724
|
||||
44554 45
|
||||
992JK 260
|
||||
8T8Q4 239
|
||||
97A34 699
|
||||
KK85K 419
|
||||
8J638 557
|
||||
49K88 76
|
||||
8K99T 321
|
||||
Q9993 8
|
||||
57744 922
|
||||
24KKK 35
|
||||
TATAT 742
|
||||
QQ988 550
|
||||
5AK55 456
|
||||
5QK58 467
|
||||
T8TK5 743
|
||||
4Q66J 818
|
||||
3449J 585
|
||||
JA428 66
|
||||
8J957 562
|
||||
Q7KQQ 515
|
||||
2Q9QT 247
|
||||
8QQ88 670
|
||||
38783 86
|
||||
6646T 32
|
||||
@@ -0,0 +1,158 @@
|
||||
from enum import IntEnum
|
||||
|
||||
INPUT_FILE = "input.text"
|
||||
|
||||
possible_letter_cards = {
|
||||
"A" : 14,
|
||||
"K" : 13,
|
||||
"Q" : 12,
|
||||
"J" : 1,
|
||||
"T" : 10
|
||||
}
|
||||
|
||||
class HandType(IntEnum):
|
||||
FiveOfAKind = 7
|
||||
FourOfAKind = 6
|
||||
FullHouse = 5
|
||||
ThreeOfAKind = 4
|
||||
TwoPair = 3
|
||||
OnePair = 2
|
||||
HighCard = 1
|
||||
|
||||
def card_to_value(card : str) -> int | None:
|
||||
if len(card) > 1:
|
||||
print("Input is more than one character")
|
||||
return None
|
||||
|
||||
if card in possible_letter_cards:
|
||||
return possible_letter_cards[card]
|
||||
|
||||
elif card.isdigit():
|
||||
num = int(card)
|
||||
if num <= 9 and num >= 2:
|
||||
return num
|
||||
else:
|
||||
print(f"Card invalid, Card: {card}")
|
||||
return None
|
||||
|
||||
class Hand:
|
||||
cards : str
|
||||
card_values : list[int]
|
||||
bid : int
|
||||
hand_type : HandType
|
||||
|
||||
def __init__(self, hand : str, bid : int):
|
||||
self.bid = bid
|
||||
|
||||
self.cards = hand
|
||||
self.card_values = []
|
||||
self.hand_type = self.find_hand_type(self.cards)
|
||||
self.get_card_values()
|
||||
|
||||
def find_hand_type(self, cards: str) -> int:
|
||||
|
||||
# They just had to put the edge case in here
|
||||
if cards == 'JJJJJ':
|
||||
return HandType.FiveOfAKind
|
||||
|
||||
if 'J' in cards:
|
||||
best_hand = -1
|
||||
for card in cards:
|
||||
|
||||
if card == 'J':
|
||||
continue
|
||||
|
||||
temp_cards = cards
|
||||
temp_cards = temp_cards.replace('J', card)
|
||||
|
||||
hand_value = self.find_hand_type(temp_cards)
|
||||
|
||||
if hand_value > best_hand:
|
||||
best_hand = hand_value
|
||||
|
||||
return best_hand
|
||||
|
||||
|
||||
matches : list[int] = []
|
||||
for card in cards:
|
||||
temp_cards = cards
|
||||
|
||||
temp_cards = temp_cards.replace(card, "")
|
||||
|
||||
matches.append(len(temp_cards))
|
||||
|
||||
if matches.count(0) == 5:
|
||||
return HandType.FiveOfAKind
|
||||
elif matches.count(1) == 4:
|
||||
return HandType.FourOfAKind
|
||||
elif matches.count(2) == 3 and matches.count(3) == 2:
|
||||
return HandType.FullHouse
|
||||
elif matches.count(2) == 3:
|
||||
return HandType.ThreeOfAKind
|
||||
elif matches.count(3) == 4:
|
||||
return HandType.TwoPair
|
||||
elif matches.count(3) == 2:
|
||||
return HandType.OnePair
|
||||
else:
|
||||
return HandType.HighCard
|
||||
|
||||
def get_card_values(self) -> None:
|
||||
for card in self.cards:
|
||||
self.card_values.append(card_to_value(card))
|
||||
|
||||
def main() -> None:
|
||||
with open(INPUT_FILE, "r") as f:
|
||||
data = f.readlines()
|
||||
|
||||
|
||||
# Get all our hands and figure out what they ard
|
||||
hands: list[Hand] = []
|
||||
for line in data:
|
||||
hand, bid = line.split()
|
||||
|
||||
hands.append(Hand(hand, int(bid)))
|
||||
|
||||
|
||||
# Sort and decide rank
|
||||
total = 0
|
||||
sorted_hands: list[Hand] = bubbleSortHands(hands)
|
||||
|
||||
for i in range(0, len(sorted_hands)):
|
||||
rank = i + 1
|
||||
|
||||
total += sorted_hands[i].bid * rank
|
||||
|
||||
print(f"Total Winnings: {total}")
|
||||
|
||||
# is it fast? probably not, but it works
|
||||
def bubbleSortHands(arr: list[Hand]) -> list[Hand]:
|
||||
n: int = len(arr)
|
||||
|
||||
for i in range(n):
|
||||
swapped = False
|
||||
|
||||
for j in range(0, n-i-1):
|
||||
|
||||
if arr[j].hand_type > arr[j + 1].hand_type:
|
||||
arr[j], arr[j + 1] = arr[j + 1], arr[j]
|
||||
swapped = True
|
||||
|
||||
# Do tie-breaker here (J's should count as 0 or like -1)
|
||||
elif arr[j].hand_type == arr[j + 1].hand_type:
|
||||
for card_index in range(0, 5):
|
||||
if arr[j].card_values[card_index] > arr[j + 1].card_values[card_index]:
|
||||
arr[j], arr[j + 1] = arr[j + 1], arr[j]
|
||||
swapped = True
|
||||
break
|
||||
elif arr[j].card_values[card_index] < arr[j + 1].card_values[card_index]:
|
||||
break
|
||||
|
||||
|
||||
if (swapped == False):
|
||||
break
|
||||
|
||||
return arr
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,5 @@
|
||||
32T3K 765
|
||||
T55J5 684
|
||||
KK677 28
|
||||
KTJJT 220
|
||||
QQQJA 483
|
||||
@@ -0,0 +1,788 @@
|
||||
LRRLLRRLLRRRLRLRRLRLRLRRLRLRLRLLLRRRLRLRRLLRLRRRLRRRLRLRLRRRLLRRLLRLRLRRRLRLLRRRLRLLRLRRRLRLRRRLRRRLLRRRLLRRRLRRLRRRLLRRRLRRLRRLRRLLRLRRLRRLRRRLRLRLRLRLRLRRRLLRLRRLRLRRLLRRLLRLRRLRRRLRLRLRLRRRLRRLRRLRRLRRLRRLRLRRRLRRRLRRRLRLRLLRRLRRRLRRLRLRRRLRRLRRRLRRLLRRLLLRRRR
|
||||
|
||||
GSC = (CLG, RPF)
|
||||
NTQ = (RMN, HLB)
|
||||
LTX = (XFB, CGP)
|
||||
RHK = (KRS, TPX)
|
||||
KPK = (PRP, MKG)
|
||||
NKV = (BHD, DQJ)
|
||||
JNK = (RXN, BQX)
|
||||
JXJ = (JFK, CCS)
|
||||
LDC = (JBF, PHQ)
|
||||
QRS = (VPM, FDD)
|
||||
XRL = (SQT, VGH)
|
||||
VQN = (BRP, VCF)
|
||||
NBP = (GKC, HKC)
|
||||
FCH = (KLN, RQV)
|
||||
BQT = (KKX, RNZ)
|
||||
SVN = (JGN, FSL)
|
||||
FPL = (SDB, VQV)
|
||||
RMQ = (CCV, JST)
|
||||
DRB = (MSM, VHX)
|
||||
DDF = (GHC, PSX)
|
||||
GLR = (LFR, THG)
|
||||
DGL = (JGQ, DHD)
|
||||
RFQ = (BXJ, SRQ)
|
||||
XTG = (XBB, TQJ)
|
||||
PCL = (DDK, GNC)
|
||||
FVG = (JKL, CRC)
|
||||
GXQ = (CBS, RJS)
|
||||
SDR = (LFR, THG)
|
||||
KBM = (PCV, DBP)
|
||||
XPJ = (GCS, GJD)
|
||||
XRG = (LNK, KQL)
|
||||
FPQ = (TPG, MQQ)
|
||||
MSM = (LQG, KRF)
|
||||
LFR = (THX, GFC)
|
||||
KQK = (FQH, FCH)
|
||||
HPH = (HHJ, VKM)
|
||||
DHC = (QGV, FNH)
|
||||
PQQ = (KKX, KKX)
|
||||
TNQ = (LXD, KNG)
|
||||
QNB = (TLX, VLF)
|
||||
VKX = (BJL, GQB)
|
||||
DTM = (KRQ, CLV)
|
||||
BHS = (LFH, TVV)
|
||||
MCJ = (BFJ, FCS)
|
||||
CGQ = (MRH, SBD)
|
||||
FBM = (RXQ, CFR)
|
||||
NLQ = (QSD, LFZ)
|
||||
VSK = (DGR, DFT)
|
||||
HJG = (TFV, XJL)
|
||||
XFB = (NKP, FBF)
|
||||
JGL = (RGS, KTD)
|
||||
MHS = (BNM, KSK)
|
||||
RMG = (QNB, MHL)
|
||||
XSX = (XBG, GVD)
|
||||
FMV = (LVV, CQR)
|
||||
CRK = (TRN, KKG)
|
||||
VQV = (BPB, RFL)
|
||||
THN = (QVH, DVT)
|
||||
GNT = (RGS, KTD)
|
||||
DCH = (GJD, GCS)
|
||||
KTD = (LSF, MJC)
|
||||
BDC = (FDH, MSK)
|
||||
PRQ = (JGL, GNT)
|
||||
PSR = (DHF, FPL)
|
||||
XBB = (FRR, GSC)
|
||||
SFB = (HGX, DFS)
|
||||
VTJ = (HFH, KXN)
|
||||
KJV = (TKP, THL)
|
||||
BFF = (PLM, DGC)
|
||||
VBV = (XDK, LLS)
|
||||
KMV = (XDS, VQT)
|
||||
JPD = (BHL, QJF)
|
||||
DGR = (MTT, JCG)
|
||||
PGK = (VCX, NLQ)
|
||||
BFJ = (FHX, QFR)
|
||||
VSF = (VKX, CTP)
|
||||
PFJ = (BRP, VCF)
|
||||
XVN = (VCX, VCX)
|
||||
JQG = (SKM, THM)
|
||||
CXS = (CRC, JKL)
|
||||
RFL = (NNT, DMH)
|
||||
RBH = (KHM, PLR)
|
||||
PNT = (JCQ, XSR)
|
||||
XHK = (GJK, BLQ)
|
||||
CFR = (FHC, CTD)
|
||||
JPP = (JFD, FPB)
|
||||
RRT = (VVM, NFB)
|
||||
RPF = (TKG, KVK)
|
||||
JTF = (FBT, DLL)
|
||||
PSX = (PDS, JPD)
|
||||
TCH = (TDN, FRB)
|
||||
RHT = (VNR, NHB)
|
||||
TQJ = (GSC, FRR)
|
||||
MCK = (NJD, XDX)
|
||||
NPH = (XQF, NSL)
|
||||
LQQ = (LCM, PHH)
|
||||
VSV = (SFT, MVL)
|
||||
KRS = (TGR, TGR)
|
||||
DRR = (JXT, TSF)
|
||||
QRQ = (NTG, MTL)
|
||||
PJB = (RMN, HLB)
|
||||
VFC = (KPH, PKM)
|
||||
FHC = (CJM, FTQ)
|
||||
DRC = (RBC, THN)
|
||||
TRB = (JHX, LSC)
|
||||
GCS = (TRB, MDB)
|
||||
RCG = (MFT, FXM)
|
||||
HCB = (LHB, JGH)
|
||||
BFN = (RMG, KJH)
|
||||
TPG = (NGM, XHQ)
|
||||
JCS = (VGS, NSN)
|
||||
SGT = (LHX, MPF)
|
||||
NXM = (VPH, KGV)
|
||||
XNC = (LTX, PHJ)
|
||||
DNT = (KLS, RNC)
|
||||
JGN = (TNN, BXD)
|
||||
QJX = (XPJ, DCH)
|
||||
LQP = (FRK, NFS)
|
||||
HCL = (GBS, PGB)
|
||||
FDD = (XQJ, XTS)
|
||||
XTS = (TJL, LGJ)
|
||||
HLR = (TBR, FPG)
|
||||
DLL = (VJV, MJN)
|
||||
LFH = (VBM, MHT)
|
||||
LMD = (VGG, RHK)
|
||||
JKL = (CMQ, QCN)
|
||||
DDP = (GTH, HKM)
|
||||
VNL = (VVL, CFP)
|
||||
SGB = (MKL, DVQ)
|
||||
KBJ = (BDF, SXQ)
|
||||
DVT = (NMB, LCB)
|
||||
XQJ = (TJL, LGJ)
|
||||
HLB = (XHH, XNC)
|
||||
VPT = (BRF, JPP)
|
||||
PDS = (QJF, BHL)
|
||||
CGG = (PLS, SNM)
|
||||
SDB = (RFL, BPB)
|
||||
DVQ = (XSX, KXQ)
|
||||
XQS = (BPF, XLV)
|
||||
CDG = (XKV, HMT)
|
||||
JCG = (CFK, RPR)
|
||||
RBC = (DVT, QVH)
|
||||
BJB = (MVC, KXL)
|
||||
LFZ = (HTT, QTF)
|
||||
FTQ = (RLM, LMQ)
|
||||
TCT = (FPH, FCC)
|
||||
QXL = (BPF, XLV)
|
||||
MXX = (BHX, QNX)
|
||||
LSR = (FFJ, DMT)
|
||||
RTD = (KBS, GDV)
|
||||
TXH = (QBQ, NSF)
|
||||
CSB = (CBP, QDQ)
|
||||
GBS = (BRN, GXP)
|
||||
GMX = (LHX, MPF)
|
||||
JQV = (GMX, SGT)
|
||||
GML = (GLR, SDR)
|
||||
GCG = (RHT, KTF)
|
||||
RPR = (XTG, JGT)
|
||||
NDG = (QFD, HTD)
|
||||
KBK = (VFP, BSC)
|
||||
FVB = (RFQ, LLH)
|
||||
CGP = (NKP, FBF)
|
||||
RXQ = (FHC, CTD)
|
||||
KQD = (CJN, DRR)
|
||||
QTF = (FVH, TRV)
|
||||
QDQ = (FBM, SLV)
|
||||
NMT = (JST, CCV)
|
||||
BHC = (RJM, SVN)
|
||||
GMR = (LNT, XFP)
|
||||
MSK = (VQN, PFJ)
|
||||
CBV = (CGB, PGV)
|
||||
MHT = (GMC, RSH)
|
||||
BRN = (KQK, FXV)
|
||||
XXM = (JGL, GNT)
|
||||
VLF = (VNN, RRV)
|
||||
FDH = (VQN, PFJ)
|
||||
NFD = (MGN, GLL)
|
||||
THM = (PLL, VTJ)
|
||||
MPF = (JVN, DFC)
|
||||
BNG = (RNC, KLS)
|
||||
LGJ = (QHV, XBR)
|
||||
QTJ = (TVT, NBP)
|
||||
KRQ = (MDF, RLN)
|
||||
PCK = (CCS, JFK)
|
||||
DQV = (FLD, CSB)
|
||||
HDD = (FGX, XRG)
|
||||
TFL = (DQV, CJQ)
|
||||
BNM = (KMV, CVX)
|
||||
MLC = (CFP, VVL)
|
||||
SBD = (MKD, DKP)
|
||||
PSK = (DBV, BSF)
|
||||
FRB = (BBD, TPB)
|
||||
RKL = (HVK, DRN)
|
||||
HMZ = (DRR, CJN)
|
||||
LJK = (LBN, DDG)
|
||||
LSC = (MXX, VFX)
|
||||
TDN = (TPB, BBD)
|
||||
RNX = (FBT, DLL)
|
||||
QGJ = (KTS, RBF)
|
||||
RFB = (BCF, MHS)
|
||||
VGN = (TJP, VSF)
|
||||
HFH = (FPQ, PGF)
|
||||
HXX = (QFD, HTD)
|
||||
RJS = (PCK, JXJ)
|
||||
TRQ = (GCG, GQF)
|
||||
KXN = (FPQ, PGF)
|
||||
FMS = (XJL, TFV)
|
||||
NMB = (QRQ, DGD)
|
||||
BPF = (VMX, GXQ)
|
||||
HCX = (XSR, JCQ)
|
||||
RJR = (BNG, DNT)
|
||||
BQX = (GQC, VLX)
|
||||
DHD = (RLC, GVS)
|
||||
DQJ = (HJG, FMS)
|
||||
QFD = (TNQ, HSF)
|
||||
HMT = (HSG, MHM)
|
||||
BHD = (FMS, HJG)
|
||||
NDF = (PLK, RTX)
|
||||
GMC = (PNT, HCX)
|
||||
GQX = (CPB, VNP)
|
||||
BXD = (VNL, MLC)
|
||||
DTD = (XLK, BVR)
|
||||
KQT = (MRH, SBD)
|
||||
QJH = (QMD, KBJ)
|
||||
NFJ = (MVL, SFT)
|
||||
JMH = (FVB, BMP)
|
||||
BVF = (SFB, KSS)
|
||||
RBF = (JCD, NDT)
|
||||
QBX = (KJV, LBX)
|
||||
NTG = (DPX, CBV)
|
||||
DRL = (XXM, PRQ)
|
||||
QNX = (SHD, LXG)
|
||||
PNN = (KQD, HMZ)
|
||||
CCS = (TQQ, DDP)
|
||||
QSD = (QTF, HTT)
|
||||
BVN = (JNK, TRT)
|
||||
HSF = (KNG, LXD)
|
||||
BHL = (DSB, SGB)
|
||||
VFX = (BHX, QNX)
|
||||
JFH = (TCH, DCB)
|
||||
DBV = (SDL, CDG)
|
||||
TRT = (RXN, BQX)
|
||||
VLC = (MHS, BCF)
|
||||
BBM = (HCB, FMB)
|
||||
THG = (THX, GFC)
|
||||
XKV = (HSG, MHM)
|
||||
DSB = (MKL, DVQ)
|
||||
XSC = (HVK, DRN)
|
||||
SKM = (VTJ, PLL)
|
||||
QFR = (KXP, QNS)
|
||||
BMP = (RFQ, LLH)
|
||||
MLM = (KRQ, CLV)
|
||||
XNH = (JJJ, DHC)
|
||||
KPM = (RBC, THN)
|
||||
FGX = (LNK, KQL)
|
||||
TSF = (BDD, KFL)
|
||||
LXG = (XCG, TRP)
|
||||
TBR = (HFK, LMB)
|
||||
JFK = (TQQ, DDP)
|
||||
TQH = (KJG, MQD)
|
||||
RKT = (FGX, XRG)
|
||||
DJF = (DJJ, LNQ)
|
||||
FPM = (LRR, HJP)
|
||||
PCJ = (XDX, NJD)
|
||||
HFK = (NQN, LQQ)
|
||||
SHB = (RMG, KJH)
|
||||
KPJ = (XVN, PGK)
|
||||
XSH = (LNH, VPT)
|
||||
SQX = (BVR, XLK)
|
||||
KTB = (QRS, KPF)
|
||||
RKK = (GLM, JQG)
|
||||
HTT = (TRV, FVH)
|
||||
SDL = (XKV, HMT)
|
||||
HCK = (FCK, QBJ)
|
||||
SJF = (JQV, JLB)
|
||||
QMT = (FPG, TBR)
|
||||
HGX = (QLS, XLB)
|
||||
VKM = (QFF, NLD)
|
||||
FNH = (KQV, RFD)
|
||||
HPM = (TRQ, QJS)
|
||||
PMS = (LHM, CJL)
|
||||
JTK = (XPG, XPG)
|
||||
VMN = (SJB, JCS)
|
||||
LNT = (SHM, NKV)
|
||||
KFL = (RCB, BVF)
|
||||
ZZZ = (NBP, TVT)
|
||||
QPX = (BFF, KNR)
|
||||
HSG = (LBC, RCN)
|
||||
SLV = (CFR, RXQ)
|
||||
KJH = (MHL, QNB)
|
||||
FCK = (DSS, DSS)
|
||||
RLL = (GBS, PGB)
|
||||
VKJ = (RFB, VLC)
|
||||
VSJ = (CGQ, KQT)
|
||||
XDX = (HPH, VFJ)
|
||||
LCB = (DGD, QRQ)
|
||||
PLL = (HFH, KXN)
|
||||
DMH = (BSR, FQV)
|
||||
PPQ = (XFP, LNT)
|
||||
PGB = (BRN, GXP)
|
||||
JMN = (DFT, DGR)
|
||||
RVT = (KTL, SFV)
|
||||
JCH = (SJB, JCS)
|
||||
KKG = (QPX, MLL)
|
||||
KNB = (CPB, VNP)
|
||||
HKM = (VFC, BXC)
|
||||
QBT = (CJL, LHM)
|
||||
GJM = (PQQ, BQT)
|
||||
RLN = (LDG, JJH)
|
||||
RJM = (JGN, FSL)
|
||||
LHL = (HSC, LBV)
|
||||
CVX = (VQT, XDS)
|
||||
LVV = (MGX, DGL)
|
||||
NSN = (JBX, GKM)
|
||||
MTL = (DPX, CBV)
|
||||
LBN = (NDG, HXX)
|
||||
KLG = (DBP, PCV)
|
||||
DGD = (MTL, NTG)
|
||||
LDG = (JTK, JTK)
|
||||
HCR = (GMR, PPQ)
|
||||
DMB = (SQT, VGH)
|
||||
LGK = (DBV, BSF)
|
||||
FLG = (FCK, FCK)
|
||||
KXL = (TXH, LQB)
|
||||
MQD = (JNF, LSR)
|
||||
RNC = (SMQ, FPM)
|
||||
QFF = (NTD, VCM)
|
||||
QLS = (DTK, CSG)
|
||||
JGH = (LJQ, NSJ)
|
||||
FSL = (BXD, TNN)
|
||||
KLC = (TBT, CVN)
|
||||
BDF = (KBK, NDR)
|
||||
QMD = (SXQ, BDF)
|
||||
VQT = (VBL, XHK)
|
||||
CSC = (NLG, FQP)
|
||||
SJB = (VGS, NSN)
|
||||
NFS = (DDR, LTK)
|
||||
DRA = (CJN, DRR)
|
||||
LBX = (THL, TKP)
|
||||
DJJ = (PLF, PLF)
|
||||
MJN = (TBX, DRB)
|
||||
TJP = (VKX, CTP)
|
||||
DDR = (RLL, HCL)
|
||||
LQB = (QBQ, NSF)
|
||||
BKV = (PSR, NKS)
|
||||
NKP = (XCH, XNH)
|
||||
VCX = (QSD, QSD)
|
||||
FQV = (HKH, VRD)
|
||||
VPH = (DDF, PLQ)
|
||||
HVS = (VPH, KGV)
|
||||
BHX = (LXG, SHD)
|
||||
RQV = (PHB, FDQ)
|
||||
NSL = (MCJ, DBM)
|
||||
GVD = (JBT, HKN)
|
||||
TRN = (QPX, MLL)
|
||||
XCG = (CXS, FVG)
|
||||
KBF = (XVR, TFT)
|
||||
CTD = (CJM, FTQ)
|
||||
PRH = (FVB, BMP)
|
||||
TLR = (NSL, XQF)
|
||||
BLS = (VVM, NFB)
|
||||
VVL = (MRB, NTX)
|
||||
QGV = (RFD, KQV)
|
||||
SRK = (GLM, JQG)
|
||||
VHX = (LQG, KRF)
|
||||
NHB = (PNG, NQL)
|
||||
LLK = (XDK, LLS)
|
||||
GQD = (TSX, KBF)
|
||||
LHV = (QRS, KPF)
|
||||
VNR = (PNG, NQL)
|
||||
LBP = (PCJ, MCK)
|
||||
TNN = (MLC, VNL)
|
||||
KNR = (PLM, DGC)
|
||||
BMD = (SJF, GTJ)
|
||||
FPG = (HFK, LMB)
|
||||
XFP = (SHM, NKV)
|
||||
RSN = (LFH, TVV)
|
||||
FGN = (DVR, GLV)
|
||||
JHX = (VFX, MXX)
|
||||
DDG = (NDG, HXX)
|
||||
NQS = (NFJ, VSV)
|
||||
MKD = (DTM, MLM)
|
||||
CQQ = (KTL, SFV)
|
||||
DGK = (FMB, HCB)
|
||||
NSJ = (NKK, DRL)
|
||||
JTS = (GTF, KBP)
|
||||
VDG = (MCK, PCJ)
|
||||
MGN = (PVK, KLC)
|
||||
LBC = (SRK, RKK)
|
||||
CJQ = (FLD, CSB)
|
||||
MKG = (MHB, QPK)
|
||||
XVR = (PCL, QDH)
|
||||
QBQ = (LRB, VSJ)
|
||||
FXM = (LGK, PSK)
|
||||
LMQ = (TLR, NPH)
|
||||
PKM = (VBC, XXR)
|
||||
VJV = (TBX, DRB)
|
||||
CCV = (JFH, QNK)
|
||||
DMT = (RHS, JNG)
|
||||
XHQ = (PGD, TCT)
|
||||
DFC = (VMN, JCH)
|
||||
JJJ = (FNH, QGV)
|
||||
JNG = (KBM, KLG)
|
||||
THX = (RSN, BHS)
|
||||
TKG = (CQQ, RVT)
|
||||
HPN = (PDH, KPJ)
|
||||
BGS = (PSP, CMD)
|
||||
BLH = (QJX, SGJ)
|
||||
PRP = (QPK, MHB)
|
||||
PMV = (HDD, RKT)
|
||||
TRV = (TFL, MDD)
|
||||
CJL = (FMV, FJQ)
|
||||
JCQ = (KXF, HGT)
|
||||
GRS = (RBR, QNR)
|
||||
SGJ = (DCH, XPJ)
|
||||
RTX = (RJR, JJF)
|
||||
AAA = (TVT, NBP)
|
||||
XDK = (SPG, BMD)
|
||||
FBF = (XCH, XNH)
|
||||
LHM = (FMV, FJQ)
|
||||
SQT = (FVT, MDT)
|
||||
XPG = (JTF, RNX)
|
||||
MGX = (JGQ, DHD)
|
||||
PHH = (QBT, PMS)
|
||||
VJL = (MKG, PRP)
|
||||
DCB = (FRB, TDN)
|
||||
PRM = (BHC, QJV)
|
||||
FRR = (RPF, CLG)
|
||||
PGF = (MQQ, TPG)
|
||||
NQL = (MGL, SCP)
|
||||
CSG = (RRT, BLS)
|
||||
NMK = (PSR, NKS)
|
||||
MRH = (MKD, DKP)
|
||||
SFV = (HCH, FGN)
|
||||
BDD = (BVF, RCB)
|
||||
MDD = (CJQ, DQV)
|
||||
TGR = (PQQ, PQQ)
|
||||
MDT = (VBV, LLK)
|
||||
XXR = (MLF, TCX)
|
||||
DVR = (CQD, NQS)
|
||||
SXQ = (NDR, KBK)
|
||||
KBP = (QTJ, ZZZ)
|
||||
VRD = (TJN, FGM)
|
||||
VNP = (GQD, MBH)
|
||||
KHM = (TMM, QGJ)
|
||||
JCD = (KPK, VJL)
|
||||
BXJ = (FVP, PMV)
|
||||
DFT = (MTT, JCG)
|
||||
JRL = (VPT, LNH)
|
||||
HCH = (DVR, GLV)
|
||||
FPB = (JXF, DNF)
|
||||
NDR = (VFP, BSC)
|
||||
MQQ = (NGM, XHQ)
|
||||
XBM = (GLR, SDR)
|
||||
KQL = (RVJ, VGN)
|
||||
FPH = (CRK, FSD)
|
||||
GDV = (TQH, VRC)
|
||||
LCM = (PMS, QBT)
|
||||
NTX = (HPM, PNJ)
|
||||
FDQ = (NXM, HVS)
|
||||
KTF = (VNR, NHB)
|
||||
GTJ = (JQV, JLB)
|
||||
XHH = (LTX, PHJ)
|
||||
QVX = (KBS, GDV)
|
||||
VGG = (KRS, TPX)
|
||||
PFM = (GTF, GTF)
|
||||
KSK = (KMV, CVX)
|
||||
RVL = (QMD, KBJ)
|
||||
KXF = (NFD, HBL)
|
||||
VCM = (QVX, RTD)
|
||||
MBH = (KBF, TSX)
|
||||
LNK = (VGN, RVJ)
|
||||
TVV = (MHT, VBM)
|
||||
FXF = (MSK, FDH)
|
||||
VKB = (NMK, BKV)
|
||||
VGH = (MDT, FVT)
|
||||
NLG = (LJK, MFN)
|
||||
DSS = (KQD, KQD)
|
||||
VRG = (PFM, PFM)
|
||||
TQQ = (GTH, HKM)
|
||||
RSH = (HCX, PNT)
|
||||
TKP = (KJP, GGM)
|
||||
VRC = (MQD, KJG)
|
||||
HJP = (KGF, SRS)
|
||||
PSP = (QRF, HFJ)
|
||||
NKK = (XXM, PRQ)
|
||||
JJF = (DNT, BNG)
|
||||
PLF = (RBR, RBR)
|
||||
NJD = (HPH, VFJ)
|
||||
RRV = (KNB, GQX)
|
||||
GLV = (CQD, NQS)
|
||||
XBR = (DMB, XRL)
|
||||
SPG = (SJF, GTJ)
|
||||
DKX = (FXF, BDC)
|
||||
FQH = (RQV, KLN)
|
||||
QBJ = (DSS, PNN)
|
||||
VVM = (MNG, CSC)
|
||||
KXQ = (XBG, GVD)
|
||||
CFK = (JGT, XTG)
|
||||
CMA = (LQP, XBV)
|
||||
FCS = (QFR, FHX)
|
||||
FFJ = (JNG, RHS)
|
||||
LMB = (NQN, LQQ)
|
||||
TMM = (RBF, KTS)
|
||||
JXH = (VRG, BRX)
|
||||
FBT = (VJV, MJN)
|
||||
QCN = (HPN, MKH)
|
||||
XDS = (XHK, VBL)
|
||||
QNK = (TCH, DCB)
|
||||
MKL = (KXQ, XSX)
|
||||
MLF = (SJL, JTQ)
|
||||
MGL = (TMX, DKX)
|
||||
MTT = (CFK, RPR)
|
||||
KRF = (QMT, HLR)
|
||||
BSR = (VRD, HKH)
|
||||
TJL = (QHV, XBR)
|
||||
PCV = (NMT, RMQ)
|
||||
FVP = (RKT, HDD)
|
||||
SHM = (DQJ, BHD)
|
||||
PNG = (SCP, MGL)
|
||||
PGD = (FCC, FPH)
|
||||
QJS = (GCG, GQF)
|
||||
CFP = (MRB, NTX)
|
||||
QGS = (RTX, PLK)
|
||||
SJL = (XSC, RKL)
|
||||
JST = (JFH, QNK)
|
||||
TBX = (VHX, MSM)
|
||||
DDZ = (PHQ, JBF)
|
||||
KXP = (XBM, GML)
|
||||
HKC = (NDF, QGS)
|
||||
DHF = (VQV, SDB)
|
||||
JXT = (BDD, KFL)
|
||||
LQG = (QMT, HLR)
|
||||
LXD = (RBH, CKT)
|
||||
LXM = (XPG, XKZ)
|
||||
XLV = (GXQ, VMX)
|
||||
GLL = (PVK, KLC)
|
||||
TSX = (XVR, TFT)
|
||||
QRF = (DJF, KJM)
|
||||
KJG = (JNF, LSR)
|
||||
GQB = (XSH, JRL)
|
||||
GKR = (LMD, KVB)
|
||||
GVS = (QJH, RVL)
|
||||
VPM = (XQJ, XTS)
|
||||
QNR = (LDC, DDZ)
|
||||
PVK = (TBT, CVN)
|
||||
JCX = (SNM, PLS)
|
||||
HHJ = (QFF, NLD)
|
||||
TLX = (VNN, RRV)
|
||||
GTF = (QTJ, QTJ)
|
||||
LNQ = (PLF, GRS)
|
||||
VBL = (GJK, BLQ)
|
||||
DGC = (DGK, BBM)
|
||||
NDT = (VJL, KPK)
|
||||
KBS = (VRC, TQH)
|
||||
RVJ = (TJP, VSF)
|
||||
RBR = (LDC, LDC)
|
||||
PDH = (XVN, XVN)
|
||||
JBF = (VSK, JMN)
|
||||
BBD = (MQR, JXH)
|
||||
FVT = (VBV, LLK)
|
||||
VBC = (MLF, TCX)
|
||||
XKZ = (RNX, JTF)
|
||||
MNA = (JTF, RNX)
|
||||
VFJ = (HHJ, VKM)
|
||||
GLM = (SKM, THM)
|
||||
JNF = (FFJ, DMT)
|
||||
MNG = (FQP, NLG)
|
||||
MVL = (PRM, KLH)
|
||||
RHS = (KBM, KLG)
|
||||
CRC = (CMQ, QCN)
|
||||
BPB = (DMH, NNT)
|
||||
NLD = (VCM, NTD)
|
||||
XCH = (JJJ, DHC)
|
||||
CKT = (PLR, KHM)
|
||||
NNT = (BSR, FQV)
|
||||
GQC = (XQS, QXL)
|
||||
GKM = (QTH, KHG)
|
||||
GJD = (TRB, MDB)
|
||||
CGB = (VXJ, VCG)
|
||||
SMQ = (HJP, LRR)
|
||||
RNP = (BLH, KHP)
|
||||
MMP = (NCM, XPK)
|
||||
VLX = (XQS, QXL)
|
||||
XJL = (BVN, KGN)
|
||||
LRB = (CGQ, KQT)
|
||||
NGM = (TCT, PGD)
|
||||
TBT = (KTB, LHV)
|
||||
JLB = (SGT, GMX)
|
||||
HFJ = (DJF, KJM)
|
||||
RCN = (RKK, SRK)
|
||||
KJM = (DJJ, LNQ)
|
||||
CVN = (KTB, LHV)
|
||||
PHB = (NXM, HVS)
|
||||
KJP = (HCR, QPM)
|
||||
SHD = (XCG, TRP)
|
||||
KKX = (LQP, XBV)
|
||||
FHX = (KXP, QNS)
|
||||
CLV = (MDF, RLN)
|
||||
FXV = (FQH, FCH)
|
||||
HTD = (TNQ, HSF)
|
||||
CJM = (LMQ, RLM)
|
||||
BSF = (CDG, SDL)
|
||||
JVN = (VMN, JCH)
|
||||
KDK = (XSG, LHL)
|
||||
FGM = (PJB, NTQ)
|
||||
MRB = (PNJ, HPM)
|
||||
JTQ = (XSC, RKL)
|
||||
CJN = (TSF, JXT)
|
||||
RLC = (QJH, RVL)
|
||||
XLK = (CBK, JBG)
|
||||
KLN = (FDQ, PHB)
|
||||
JJH = (JTK, LXM)
|
||||
TVT = (GKC, HKC)
|
||||
QHV = (DMB, XRL)
|
||||
TCX = (SJL, JTQ)
|
||||
JBX = (KHG, QTH)
|
||||
CQD = (NFJ, VSV)
|
||||
KPF = (VPM, FDD)
|
||||
KHG = (HCF, RNP)
|
||||
BSC = (QBX, JVB)
|
||||
KVK = (CQQ, RVT)
|
||||
CPB = (GQD, MBH)
|
||||
LTK = (RLL, HCL)
|
||||
HVK = (XMR, BJB)
|
||||
TFT = (QDH, PCL)
|
||||
MHB = (TDF, RCG)
|
||||
SRQ = (PMV, FVP)
|
||||
NJA = (QTF, HTT)
|
||||
RMN = (XHH, XNC)
|
||||
VCG = (VDG, LBP)
|
||||
LSF = (JMH, PRH)
|
||||
THL = (GGM, KJP)
|
||||
PLK = (RJR, JJF)
|
||||
DKP = (DTM, MLM)
|
||||
NQN = (LCM, PHH)
|
||||
KNG = (RBH, CKT)
|
||||
GKC = (NDF, QGS)
|
||||
BRF = (FPB, JFD)
|
||||
HKH = (FGM, TJN)
|
||||
KTL = (HCH, FGN)
|
||||
HKN = (MMP, BFV)
|
||||
JVB = (KJV, LBX)
|
||||
QVH = (LCB, NMB)
|
||||
HHF = (XQC, GSF)
|
||||
VGS = (JBX, GKM)
|
||||
BXC = (KPH, PKM)
|
||||
DBM = (FCS, BFJ)
|
||||
QPK = (TDF, RCG)
|
||||
VXJ = (LBP, VDG)
|
||||
GGM = (HCR, QPM)
|
||||
LHB = (LJQ, NSJ)
|
||||
LJQ = (NKK, DRL)
|
||||
JXF = (FLG, HCK)
|
||||
PHJ = (XFB, CGP)
|
||||
MKH = (PDH, KPJ)
|
||||
MFT = (PSK, LGK)
|
||||
CBS = (PCK, JXJ)
|
||||
FRK = (LTK, DDR)
|
||||
CMQ = (HPN, MKH)
|
||||
QJV = (RJM, SVN)
|
||||
KHP = (SGJ, QJX)
|
||||
CQR = (MGX, DGL)
|
||||
FJQ = (CQR, LVV)
|
||||
HCF = (KHP, BLH)
|
||||
LFC = (LMD, KVB)
|
||||
DPX = (CGB, PGV)
|
||||
DFS = (XLB, QLS)
|
||||
DDK = (GKR, LFC)
|
||||
KLS = (FPM, SMQ)
|
||||
JGQ = (RLC, GVS)
|
||||
LBV = (HHF, STJ)
|
||||
JGT = (TQJ, XBB)
|
||||
QRN = (LHL, XSG)
|
||||
RFD = (QRN, KDK)
|
||||
HSC = (STJ, HHF)
|
||||
LNH = (BRF, JPP)
|
||||
FSD = (TRN, KKG)
|
||||
NSF = (VSJ, LRB)
|
||||
QJF = (DSB, SGB)
|
||||
MQR = (VRG, BRX)
|
||||
XMR = (MVC, KXL)
|
||||
VNN = (KNB, GQX)
|
||||
NCM = (XLP, VKJ)
|
||||
KTS = (JCD, NDT)
|
||||
MDF = (LDG, LDG)
|
||||
PLS = (BGS, VVD)
|
||||
TPX = (TGR, GJM)
|
||||
GJK = (SQX, DTD)
|
||||
CTP = (BJL, GQB)
|
||||
GXP = (FXV, KQK)
|
||||
DRN = (BJB, XMR)
|
||||
QDH = (GNC, DDK)
|
||||
FMB = (JGH, LHB)
|
||||
STJ = (GSF, XQC)
|
||||
DNF = (FLG, HCK)
|
||||
XSR = (KXF, HGT)
|
||||
RNZ = (XBV, LQP)
|
||||
RGS = (MJC, LSF)
|
||||
GFC = (BHS, RSN)
|
||||
GTH = (BXC, VFC)
|
||||
PLM = (DGK, BBM)
|
||||
KSS = (HGX, DFS)
|
||||
SCP = (TMX, DKX)
|
||||
RXN = (GQC, VLX)
|
||||
PLR = (TMM, QGJ)
|
||||
QTH = (HCF, RNP)
|
||||
BRP = (CGG, JCX)
|
||||
BVR = (JBG, CBK)
|
||||
DTK = (BLS, RRT)
|
||||
TPB = (MQR, JXH)
|
||||
MJC = (PRH, JMH)
|
||||
GSF = (KPM, DRC)
|
||||
RVA = (JBF, PHQ)
|
||||
BLQ = (DTD, SQX)
|
||||
CBK = (BFN, SHB)
|
||||
VBM = (GMC, RSH)
|
||||
NFB = (CSC, MNG)
|
||||
NKS = (FPL, DHF)
|
||||
CLG = (KVK, TKG)
|
||||
KLH = (QJV, BHC)
|
||||
XQF = (DBM, MCJ)
|
||||
BCF = (KSK, BNM)
|
||||
XLP = (RFB, VLC)
|
||||
MVC = (TXH, LQB)
|
||||
LLS = (BMD, SPG)
|
||||
TJN = (PJB, NTQ)
|
||||
FQP = (LJK, MFN)
|
||||
PHQ = (VSK, JMN)
|
||||
XLB = (DTK, CSG)
|
||||
MHM = (RCN, LBC)
|
||||
LLH = (SRQ, BXJ)
|
||||
FVH = (MDD, TFL)
|
||||
RLM = (TLR, NPH)
|
||||
MLL = (BFF, KNR)
|
||||
CBP = (FBM, SLV)
|
||||
MHL = (TLX, VLF)
|
||||
MDB = (LSC, JHX)
|
||||
KQV = (QRN, KDK)
|
||||
SNM = (BGS, VVD)
|
||||
KGV = (PLQ, DDF)
|
||||
FCC = (FSD, CRK)
|
||||
JFD = (JXF, DNF)
|
||||
NTD = (RTD, QVX)
|
||||
TDF = (FXM, MFT)
|
||||
TMX = (BDC, FXF)
|
||||
MFN = (LBN, DDG)
|
||||
KGN = (TRT, JNK)
|
||||
XPK = (VKJ, XLP)
|
||||
JBT = (MMP, BFV)
|
||||
PLQ = (PSX, GHC)
|
||||
TRP = (CXS, FVG)
|
||||
QPM = (GMR, PPQ)
|
||||
VMX = (CBS, RJS)
|
||||
BFV = (XPK, NCM)
|
||||
LRR = (KGF, SRS)
|
||||
KGF = (MRL, VKB)
|
||||
PGV = (VCG, VXJ)
|
||||
LHX = (JVN, DFC)
|
||||
KPH = (VBC, XXR)
|
||||
GQF = (RHT, KTF)
|
||||
XQC = (KPM, DRC)
|
||||
TFV = (BVN, KGN)
|
||||
VVD = (CMD, PSP)
|
||||
HGT = (NFD, HBL)
|
||||
HBL = (MGN, GLL)
|
||||
XBG = (JBT, HKN)
|
||||
XSG = (LBV, HSC)
|
||||
SRS = (MRL, VKB)
|
||||
XBV = (NFS, FRK)
|
||||
PNJ = (TRQ, QJS)
|
||||
BRX = (PFM, JTS)
|
||||
GHC = (JPD, PDS)
|
||||
RCB = (KSS, SFB)
|
||||
QNS = (GML, XBM)
|
||||
GNC = (LFC, GKR)
|
||||
MRL = (BKV, NMK)
|
||||
KVB = (VGG, RHK)
|
||||
VCF = (JCX, CGG)
|
||||
VFP = (QBX, JVB)
|
||||
FLD = (QDQ, CBP)
|
||||
JBG = (SHB, BFN)
|
||||
BJL = (JRL, XSH)
|
||||
DBP = (RMQ, NMT)
|
||||
SFT = (PRM, KLH)
|
||||
CMD = (HFJ, QRF)
|
||||
@@ -0,0 +1,58 @@
|
||||
|
||||
|
||||
INPUT_FILE = "input.text"
|
||||
INSTRUCTIONS = []
|
||||
PATH = {}
|
||||
|
||||
def read_file() -> None:
|
||||
with open(INPUT_FILE, 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
line_index = 0
|
||||
for line in lines:
|
||||
|
||||
# This in our instruction line
|
||||
if line_index == 0:
|
||||
for char in line:
|
||||
if char == 'L':
|
||||
INSTRUCTIONS.append(0)
|
||||
elif char == 'R':
|
||||
INSTRUCTIONS.append(1)
|
||||
|
||||
elif line_index != 1:
|
||||
source: str = line.split('=')[0].strip()
|
||||
|
||||
dest = line.split('=')[1].strip()[1:-1].split(', ')
|
||||
|
||||
PATH[source] = dest
|
||||
|
||||
line_index += 1
|
||||
|
||||
def main() -> None:
|
||||
read_file()
|
||||
|
||||
# print(PATH)
|
||||
|
||||
pos = 'AAA'
|
||||
steps = 1
|
||||
while True:
|
||||
done = False
|
||||
|
||||
for instruction in INSTRUCTIONS:
|
||||
pos = PATH[pos][instruction]
|
||||
|
||||
if pos == 'ZZZ':
|
||||
done = True
|
||||
break
|
||||
|
||||
steps += 1
|
||||
if done:
|
||||
break
|
||||
|
||||
print(f'Steps taken: {steps}')
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,5 @@
|
||||
LLR
|
||||
|
||||
AAA = (BBB, BBB)
|
||||
BBB = (AAA, ZZZ)
|
||||
ZZZ = (ZZZ, ZZZ)
|
||||
@@ -0,0 +1,788 @@
|
||||
LRRLLRRLLRRRLRLRRLRLRLRRLRLRLRLLLRRRLRLRRLLRLRRRLRRRLRLRLRRRLLRRLLRLRLRRRLRLLRRRLRLLRLRRRLRLRRRLRRRLLRRRLLRRRLRRLRRRLLRRRLRRLRRLRRLLRLRRLRRLRRRLRLRLRLRLRLRRRLLRLRRLRLRRLLRRLLRLRRLRRRLRLRLRLRRRLRRLRRLRRLRRLRRLRLRRRLRRRLRRRLRLRLLRRLRRRLRRLRLRRRLRRLRRRLRRLLRRLLLRRRR
|
||||
|
||||
GSC = (CLG, RPF)
|
||||
NTQ = (RMN, HLB)
|
||||
LTX = (XFB, CGP)
|
||||
RHK = (KRS, TPX)
|
||||
KPK = (PRP, MKG)
|
||||
NKV = (BHD, DQJ)
|
||||
JNK = (RXN, BQX)
|
||||
JXJ = (JFK, CCS)
|
||||
LDC = (JBF, PHQ)
|
||||
QRS = (VPM, FDD)
|
||||
XRL = (SQT, VGH)
|
||||
VQN = (BRP, VCF)
|
||||
NBP = (GKC, HKC)
|
||||
FCH = (KLN, RQV)
|
||||
BQT = (KKX, RNZ)
|
||||
SVN = (JGN, FSL)
|
||||
FPL = (SDB, VQV)
|
||||
RMQ = (CCV, JST)
|
||||
DRB = (MSM, VHX)
|
||||
DDF = (GHC, PSX)
|
||||
GLR = (LFR, THG)
|
||||
DGL = (JGQ, DHD)
|
||||
RFQ = (BXJ, SRQ)
|
||||
XTG = (XBB, TQJ)
|
||||
PCL = (DDK, GNC)
|
||||
FVG = (JKL, CRC)
|
||||
GXQ = (CBS, RJS)
|
||||
SDR = (LFR, THG)
|
||||
KBM = (PCV, DBP)
|
||||
XPJ = (GCS, GJD)
|
||||
XRG = (LNK, KQL)
|
||||
FPQ = (TPG, MQQ)
|
||||
MSM = (LQG, KRF)
|
||||
LFR = (THX, GFC)
|
||||
KQK = (FQH, FCH)
|
||||
HPH = (HHJ, VKM)
|
||||
DHC = (QGV, FNH)
|
||||
PQQ = (KKX, KKX)
|
||||
TNQ = (LXD, KNG)
|
||||
QNB = (TLX, VLF)
|
||||
VKX = (BJL, GQB)
|
||||
DTM = (KRQ, CLV)
|
||||
BHS = (LFH, TVV)
|
||||
MCJ = (BFJ, FCS)
|
||||
CGQ = (MRH, SBD)
|
||||
FBM = (RXQ, CFR)
|
||||
NLQ = (QSD, LFZ)
|
||||
VSK = (DGR, DFT)
|
||||
HJG = (TFV, XJL)
|
||||
XFB = (NKP, FBF)
|
||||
JGL = (RGS, KTD)
|
||||
MHS = (BNM, KSK)
|
||||
RMG = (QNB, MHL)
|
||||
XSX = (XBG, GVD)
|
||||
FMV = (LVV, CQR)
|
||||
CRK = (TRN, KKG)
|
||||
VQV = (BPB, RFL)
|
||||
THN = (QVH, DVT)
|
||||
GNT = (RGS, KTD)
|
||||
DCH = (GJD, GCS)
|
||||
KTD = (LSF, MJC)
|
||||
BDC = (FDH, MSK)
|
||||
PRQ = (JGL, GNT)
|
||||
PSR = (DHF, FPL)
|
||||
XBB = (FRR, GSC)
|
||||
SFB = (HGX, DFS)
|
||||
VTJ = (HFH, KXN)
|
||||
KJV = (TKP, THL)
|
||||
BFF = (PLM, DGC)
|
||||
VBV = (XDK, LLS)
|
||||
KMV = (XDS, VQT)
|
||||
JPD = (BHL, QJF)
|
||||
DGR = (MTT, JCG)
|
||||
PGK = (VCX, NLQ)
|
||||
BFJ = (FHX, QFR)
|
||||
VSF = (VKX, CTP)
|
||||
PFJ = (BRP, VCF)
|
||||
XVN = (VCX, VCX)
|
||||
JQG = (SKM, THM)
|
||||
CXS = (CRC, JKL)
|
||||
RFL = (NNT, DMH)
|
||||
RBH = (KHM, PLR)
|
||||
PNT = (JCQ, XSR)
|
||||
XHK = (GJK, BLQ)
|
||||
CFR = (FHC, CTD)
|
||||
JPP = (JFD, FPB)
|
||||
RRT = (VVM, NFB)
|
||||
RPF = (TKG, KVK)
|
||||
JTF = (FBT, DLL)
|
||||
PSX = (PDS, JPD)
|
||||
TCH = (TDN, FRB)
|
||||
RHT = (VNR, NHB)
|
||||
TQJ = (GSC, FRR)
|
||||
MCK = (NJD, XDX)
|
||||
NPH = (XQF, NSL)
|
||||
LQQ = (LCM, PHH)
|
||||
VSV = (SFT, MVL)
|
||||
KRS = (TGR, TGR)
|
||||
DRR = (JXT, TSF)
|
||||
QRQ = (NTG, MTL)
|
||||
PJB = (RMN, HLB)
|
||||
VFC = (KPH, PKM)
|
||||
FHC = (CJM, FTQ)
|
||||
DRC = (RBC, THN)
|
||||
TRB = (JHX, LSC)
|
||||
GCS = (TRB, MDB)
|
||||
RCG = (MFT, FXM)
|
||||
HCB = (LHB, JGH)
|
||||
BFN = (RMG, KJH)
|
||||
TPG = (NGM, XHQ)
|
||||
JCS = (VGS, NSN)
|
||||
SGT = (LHX, MPF)
|
||||
NXM = (VPH, KGV)
|
||||
XNC = (LTX, PHJ)
|
||||
DNT = (KLS, RNC)
|
||||
JGN = (TNN, BXD)
|
||||
QJX = (XPJ, DCH)
|
||||
LQP = (FRK, NFS)
|
||||
HCL = (GBS, PGB)
|
||||
FDD = (XQJ, XTS)
|
||||
XTS = (TJL, LGJ)
|
||||
HLR = (TBR, FPG)
|
||||
DLL = (VJV, MJN)
|
||||
LFH = (VBM, MHT)
|
||||
LMD = (VGG, RHK)
|
||||
JKL = (CMQ, QCN)
|
||||
DDP = (GTH, HKM)
|
||||
VNL = (VVL, CFP)
|
||||
SGB = (MKL, DVQ)
|
||||
KBJ = (BDF, SXQ)
|
||||
DVT = (NMB, LCB)
|
||||
XQJ = (TJL, LGJ)
|
||||
HLB = (XHH, XNC)
|
||||
VPT = (BRF, JPP)
|
||||
PDS = (QJF, BHL)
|
||||
CGG = (PLS, SNM)
|
||||
SDB = (RFL, BPB)
|
||||
DVQ = (XSX, KXQ)
|
||||
XQS = (BPF, XLV)
|
||||
CDG = (XKV, HMT)
|
||||
JCG = (CFK, RPR)
|
||||
RBC = (DVT, QVH)
|
||||
BJB = (MVC, KXL)
|
||||
LFZ = (HTT, QTF)
|
||||
FTQ = (RLM, LMQ)
|
||||
TCT = (FPH, FCC)
|
||||
QXL = (BPF, XLV)
|
||||
MXX = (BHX, QNX)
|
||||
LSR = (FFJ, DMT)
|
||||
RTD = (KBS, GDV)
|
||||
TXH = (QBQ, NSF)
|
||||
CSB = (CBP, QDQ)
|
||||
GBS = (BRN, GXP)
|
||||
GMX = (LHX, MPF)
|
||||
JQV = (GMX, SGT)
|
||||
GML = (GLR, SDR)
|
||||
GCG = (RHT, KTF)
|
||||
RPR = (XTG, JGT)
|
||||
NDG = (QFD, HTD)
|
||||
KBK = (VFP, BSC)
|
||||
FVB = (RFQ, LLH)
|
||||
CGP = (NKP, FBF)
|
||||
RXQ = (FHC, CTD)
|
||||
KQD = (CJN, DRR)
|
||||
QTF = (FVH, TRV)
|
||||
QDQ = (FBM, SLV)
|
||||
NMT = (JST, CCV)
|
||||
BHC = (RJM, SVN)
|
||||
GMR = (LNT, XFP)
|
||||
MSK = (VQN, PFJ)
|
||||
CBV = (CGB, PGV)
|
||||
MHT = (GMC, RSH)
|
||||
BRN = (KQK, FXV)
|
||||
XXM = (JGL, GNT)
|
||||
VLF = (VNN, RRV)
|
||||
FDH = (VQN, PFJ)
|
||||
NFD = (MGN, GLL)
|
||||
THM = (PLL, VTJ)
|
||||
MPF = (JVN, DFC)
|
||||
BNG = (RNC, KLS)
|
||||
LGJ = (QHV, XBR)
|
||||
QTJ = (TVT, NBP)
|
||||
KRQ = (MDF, RLN)
|
||||
PCK = (CCS, JFK)
|
||||
DQV = (FLD, CSB)
|
||||
HDD = (FGX, XRG)
|
||||
TFL = (DQV, CJQ)
|
||||
BNM = (KMV, CVX)
|
||||
MLC = (CFP, VVL)
|
||||
SBD = (MKD, DKP)
|
||||
PSK = (DBV, BSF)
|
||||
FRB = (BBD, TPB)
|
||||
RKL = (HVK, DRN)
|
||||
HMZ = (DRR, CJN)
|
||||
LJK = (LBN, DDG)
|
||||
LSC = (MXX, VFX)
|
||||
TDN = (TPB, BBD)
|
||||
RNX = (FBT, DLL)
|
||||
QGJ = (KTS, RBF)
|
||||
RFB = (BCF, MHS)
|
||||
VGN = (TJP, VSF)
|
||||
HFH = (FPQ, PGF)
|
||||
HXX = (QFD, HTD)
|
||||
RJS = (PCK, JXJ)
|
||||
TRQ = (GCG, GQF)
|
||||
KXN = (FPQ, PGF)
|
||||
FMS = (XJL, TFV)
|
||||
NMB = (QRQ, DGD)
|
||||
BPF = (VMX, GXQ)
|
||||
HCX = (XSR, JCQ)
|
||||
RJR = (BNG, DNT)
|
||||
BQX = (GQC, VLX)
|
||||
DHD = (RLC, GVS)
|
||||
DQJ = (HJG, FMS)
|
||||
QFD = (TNQ, HSF)
|
||||
HMT = (HSG, MHM)
|
||||
BHD = (FMS, HJG)
|
||||
NDF = (PLK, RTX)
|
||||
GMC = (PNT, HCX)
|
||||
GQX = (CPB, VNP)
|
||||
BXD = (VNL, MLC)
|
||||
DTD = (XLK, BVR)
|
||||
KQT = (MRH, SBD)
|
||||
QJH = (QMD, KBJ)
|
||||
NFJ = (MVL, SFT)
|
||||
JMH = (FVB, BMP)
|
||||
BVF = (SFB, KSS)
|
||||
RBF = (JCD, NDT)
|
||||
QBX = (KJV, LBX)
|
||||
NTG = (DPX, CBV)
|
||||
DRL = (XXM, PRQ)
|
||||
QNX = (SHD, LXG)
|
||||
PNN = (KQD, HMZ)
|
||||
CCS = (TQQ, DDP)
|
||||
QSD = (QTF, HTT)
|
||||
BVN = (JNK, TRT)
|
||||
HSF = (KNG, LXD)
|
||||
BHL = (DSB, SGB)
|
||||
VFX = (BHX, QNX)
|
||||
JFH = (TCH, DCB)
|
||||
DBV = (SDL, CDG)
|
||||
TRT = (RXN, BQX)
|
||||
VLC = (MHS, BCF)
|
||||
BBM = (HCB, FMB)
|
||||
THG = (THX, GFC)
|
||||
XKV = (HSG, MHM)
|
||||
DSB = (MKL, DVQ)
|
||||
XSC = (HVK, DRN)
|
||||
SKM = (VTJ, PLL)
|
||||
QFR = (KXP, QNS)
|
||||
BMP = (RFQ, LLH)
|
||||
MLM = (KRQ, CLV)
|
||||
XNH = (JJJ, DHC)
|
||||
KPM = (RBC, THN)
|
||||
FGX = (LNK, KQL)
|
||||
TSF = (BDD, KFL)
|
||||
LXG = (XCG, TRP)
|
||||
TBR = (HFK, LMB)
|
||||
JFK = (TQQ, DDP)
|
||||
TQH = (KJG, MQD)
|
||||
RKT = (FGX, XRG)
|
||||
DJF = (DJJ, LNQ)
|
||||
FPM = (LRR, HJP)
|
||||
PCJ = (XDX, NJD)
|
||||
HFK = (NQN, LQQ)
|
||||
SHB = (RMG, KJH)
|
||||
KPJ = (XVN, PGK)
|
||||
XSH = (LNH, VPT)
|
||||
SQX = (BVR, XLK)
|
||||
KTB = (QRS, KPF)
|
||||
RKK = (GLM, JQG)
|
||||
HTT = (TRV, FVH)
|
||||
SDL = (XKV, HMT)
|
||||
HCK = (FCK, QBJ)
|
||||
SJF = (JQV, JLB)
|
||||
QMT = (FPG, TBR)
|
||||
HGX = (QLS, XLB)
|
||||
VKM = (QFF, NLD)
|
||||
FNH = (KQV, RFD)
|
||||
HPM = (TRQ, QJS)
|
||||
PMS = (LHM, CJL)
|
||||
JTK = (XPG, XPG)
|
||||
VMN = (SJB, JCS)
|
||||
LNT = (SHM, NKV)
|
||||
KFL = (RCB, BVF)
|
||||
ZZZ = (NBP, TVT)
|
||||
QPX = (BFF, KNR)
|
||||
HSG = (LBC, RCN)
|
||||
SLV = (CFR, RXQ)
|
||||
KJH = (MHL, QNB)
|
||||
FCK = (DSS, DSS)
|
||||
RLL = (GBS, PGB)
|
||||
VKJ = (RFB, VLC)
|
||||
VSJ = (CGQ, KQT)
|
||||
XDX = (HPH, VFJ)
|
||||
LCB = (DGD, QRQ)
|
||||
PLL = (HFH, KXN)
|
||||
DMH = (BSR, FQV)
|
||||
PPQ = (XFP, LNT)
|
||||
PGB = (BRN, GXP)
|
||||
JMN = (DFT, DGR)
|
||||
RVT = (KTL, SFV)
|
||||
JCH = (SJB, JCS)
|
||||
KKG = (QPX, MLL)
|
||||
KNB = (CPB, VNP)
|
||||
HKM = (VFC, BXC)
|
||||
QBT = (CJL, LHM)
|
||||
GJM = (PQQ, BQT)
|
||||
RLN = (LDG, JJH)
|
||||
RJM = (JGN, FSL)
|
||||
LHL = (HSC, LBV)
|
||||
CVX = (VQT, XDS)
|
||||
LVV = (MGX, DGL)
|
||||
NSN = (JBX, GKM)
|
||||
MTL = (DPX, CBV)
|
||||
LBN = (NDG, HXX)
|
||||
KLG = (DBP, PCV)
|
||||
DGD = (MTL, NTG)
|
||||
LDG = (JTK, JTK)
|
||||
HCR = (GMR, PPQ)
|
||||
DMB = (SQT, VGH)
|
||||
LGK = (DBV, BSF)
|
||||
FLG = (FCK, FCK)
|
||||
KXL = (TXH, LQB)
|
||||
MQD = (JNF, LSR)
|
||||
RNC = (SMQ, FPM)
|
||||
QFF = (NTD, VCM)
|
||||
QLS = (DTK, CSG)
|
||||
JGH = (LJQ, NSJ)
|
||||
FSL = (BXD, TNN)
|
||||
KLC = (TBT, CVN)
|
||||
BDF = (KBK, NDR)
|
||||
QMD = (SXQ, BDF)
|
||||
VQT = (VBL, XHK)
|
||||
CSC = (NLG, FQP)
|
||||
SJB = (VGS, NSN)
|
||||
NFS = (DDR, LTK)
|
||||
DRA = (CJN, DRR)
|
||||
LBX = (THL, TKP)
|
||||
DJJ = (PLF, PLF)
|
||||
MJN = (TBX, DRB)
|
||||
TJP = (VKX, CTP)
|
||||
DDR = (RLL, HCL)
|
||||
LQB = (QBQ, NSF)
|
||||
BKV = (PSR, NKS)
|
||||
NKP = (XCH, XNH)
|
||||
VCX = (QSD, QSD)
|
||||
FQV = (HKH, VRD)
|
||||
VPH = (DDF, PLQ)
|
||||
HVS = (VPH, KGV)
|
||||
BHX = (LXG, SHD)
|
||||
RQV = (PHB, FDQ)
|
||||
NSL = (MCJ, DBM)
|
||||
GVD = (JBT, HKN)
|
||||
TRN = (QPX, MLL)
|
||||
XCG = (CXS, FVG)
|
||||
KBF = (XVR, TFT)
|
||||
CTD = (CJM, FTQ)
|
||||
PRH = (FVB, BMP)
|
||||
TLR = (NSL, XQF)
|
||||
BLS = (VVM, NFB)
|
||||
VVL = (MRB, NTX)
|
||||
QGV = (RFD, KQV)
|
||||
SRK = (GLM, JQG)
|
||||
VHX = (LQG, KRF)
|
||||
NHB = (PNG, NQL)
|
||||
LLK = (XDK, LLS)
|
||||
GQD = (TSX, KBF)
|
||||
LHV = (QRS, KPF)
|
||||
VNR = (PNG, NQL)
|
||||
LBP = (PCJ, MCK)
|
||||
TNN = (MLC, VNL)
|
||||
KNR = (PLM, DGC)
|
||||
BMD = (SJF, GTJ)
|
||||
FPG = (HFK, LMB)
|
||||
XFP = (SHM, NKV)
|
||||
RSN = (LFH, TVV)
|
||||
FGN = (DVR, GLV)
|
||||
JHX = (VFX, MXX)
|
||||
DDG = (NDG, HXX)
|
||||
NQS = (NFJ, VSV)
|
||||
MKD = (DTM, MLM)
|
||||
CQQ = (KTL, SFV)
|
||||
DGK = (FMB, HCB)
|
||||
NSJ = (NKK, DRL)
|
||||
JTS = (GTF, KBP)
|
||||
VDG = (MCK, PCJ)
|
||||
MGN = (PVK, KLC)
|
||||
LBC = (SRK, RKK)
|
||||
CJQ = (FLD, CSB)
|
||||
MKG = (MHB, QPK)
|
||||
XVR = (PCL, QDH)
|
||||
QBQ = (LRB, VSJ)
|
||||
FXM = (LGK, PSK)
|
||||
LMQ = (TLR, NPH)
|
||||
PKM = (VBC, XXR)
|
||||
VJV = (TBX, DRB)
|
||||
CCV = (JFH, QNK)
|
||||
DMT = (RHS, JNG)
|
||||
XHQ = (PGD, TCT)
|
||||
DFC = (VMN, JCH)
|
||||
JJJ = (FNH, QGV)
|
||||
JNG = (KBM, KLG)
|
||||
THX = (RSN, BHS)
|
||||
TKG = (CQQ, RVT)
|
||||
HPN = (PDH, KPJ)
|
||||
BGS = (PSP, CMD)
|
||||
BLH = (QJX, SGJ)
|
||||
PRP = (QPK, MHB)
|
||||
PMV = (HDD, RKT)
|
||||
TRV = (TFL, MDD)
|
||||
CJL = (FMV, FJQ)
|
||||
JCQ = (KXF, HGT)
|
||||
GRS = (RBR, QNR)
|
||||
SGJ = (DCH, XPJ)
|
||||
RTX = (RJR, JJF)
|
||||
AAA = (TVT, NBP)
|
||||
XDK = (SPG, BMD)
|
||||
FBF = (XCH, XNH)
|
||||
LHM = (FMV, FJQ)
|
||||
SQT = (FVT, MDT)
|
||||
XPG = (JTF, RNX)
|
||||
MGX = (JGQ, DHD)
|
||||
PHH = (QBT, PMS)
|
||||
VJL = (MKG, PRP)
|
||||
DCB = (FRB, TDN)
|
||||
PRM = (BHC, QJV)
|
||||
FRR = (RPF, CLG)
|
||||
PGF = (MQQ, TPG)
|
||||
NQL = (MGL, SCP)
|
||||
CSG = (RRT, BLS)
|
||||
NMK = (PSR, NKS)
|
||||
MRH = (MKD, DKP)
|
||||
SFV = (HCH, FGN)
|
||||
BDD = (BVF, RCB)
|
||||
MDD = (CJQ, DQV)
|
||||
TGR = (PQQ, PQQ)
|
||||
MDT = (VBV, LLK)
|
||||
XXR = (MLF, TCX)
|
||||
DVR = (CQD, NQS)
|
||||
SXQ = (NDR, KBK)
|
||||
KBP = (QTJ, ZZZ)
|
||||
VRD = (TJN, FGM)
|
||||
VNP = (GQD, MBH)
|
||||
KHM = (TMM, QGJ)
|
||||
JCD = (KPK, VJL)
|
||||
BXJ = (FVP, PMV)
|
||||
DFT = (MTT, JCG)
|
||||
JRL = (VPT, LNH)
|
||||
HCH = (DVR, GLV)
|
||||
FPB = (JXF, DNF)
|
||||
NDR = (VFP, BSC)
|
||||
MQQ = (NGM, XHQ)
|
||||
XBM = (GLR, SDR)
|
||||
KQL = (RVJ, VGN)
|
||||
FPH = (CRK, FSD)
|
||||
GDV = (TQH, VRC)
|
||||
LCM = (PMS, QBT)
|
||||
NTX = (HPM, PNJ)
|
||||
FDQ = (NXM, HVS)
|
||||
KTF = (VNR, NHB)
|
||||
GTJ = (JQV, JLB)
|
||||
XHH = (LTX, PHJ)
|
||||
QVX = (KBS, GDV)
|
||||
VGG = (KRS, TPX)
|
||||
PFM = (GTF, GTF)
|
||||
KSK = (KMV, CVX)
|
||||
RVL = (QMD, KBJ)
|
||||
KXF = (NFD, HBL)
|
||||
VCM = (QVX, RTD)
|
||||
MBH = (KBF, TSX)
|
||||
LNK = (VGN, RVJ)
|
||||
TVV = (MHT, VBM)
|
||||
FXF = (MSK, FDH)
|
||||
VKB = (NMK, BKV)
|
||||
VGH = (MDT, FVT)
|
||||
NLG = (LJK, MFN)
|
||||
DSS = (KQD, KQD)
|
||||
VRG = (PFM, PFM)
|
||||
TQQ = (GTH, HKM)
|
||||
RSH = (HCX, PNT)
|
||||
TKP = (KJP, GGM)
|
||||
VRC = (MQD, KJG)
|
||||
HJP = (KGF, SRS)
|
||||
PSP = (QRF, HFJ)
|
||||
NKK = (XXM, PRQ)
|
||||
JJF = (DNT, BNG)
|
||||
PLF = (RBR, RBR)
|
||||
NJD = (HPH, VFJ)
|
||||
RRV = (KNB, GQX)
|
||||
GLV = (CQD, NQS)
|
||||
XBR = (DMB, XRL)
|
||||
SPG = (SJF, GTJ)
|
||||
DKX = (FXF, BDC)
|
||||
FQH = (RQV, KLN)
|
||||
QBJ = (DSS, PNN)
|
||||
VVM = (MNG, CSC)
|
||||
KXQ = (XBG, GVD)
|
||||
CFK = (JGT, XTG)
|
||||
CMA = (LQP, XBV)
|
||||
FCS = (QFR, FHX)
|
||||
FFJ = (JNG, RHS)
|
||||
LMB = (NQN, LQQ)
|
||||
TMM = (RBF, KTS)
|
||||
JXH = (VRG, BRX)
|
||||
FBT = (VJV, MJN)
|
||||
QCN = (HPN, MKH)
|
||||
XDS = (XHK, VBL)
|
||||
QNK = (TCH, DCB)
|
||||
MKL = (KXQ, XSX)
|
||||
MLF = (SJL, JTQ)
|
||||
MGL = (TMX, DKX)
|
||||
MTT = (CFK, RPR)
|
||||
KRF = (QMT, HLR)
|
||||
BSR = (VRD, HKH)
|
||||
TJL = (QHV, XBR)
|
||||
PCV = (NMT, RMQ)
|
||||
FVP = (RKT, HDD)
|
||||
SHM = (DQJ, BHD)
|
||||
PNG = (SCP, MGL)
|
||||
PGD = (FCC, FPH)
|
||||
QJS = (GCG, GQF)
|
||||
CFP = (MRB, NTX)
|
||||
QGS = (RTX, PLK)
|
||||
SJL = (XSC, RKL)
|
||||
JST = (JFH, QNK)
|
||||
TBX = (VHX, MSM)
|
||||
DDZ = (PHQ, JBF)
|
||||
KXP = (XBM, GML)
|
||||
HKC = (NDF, QGS)
|
||||
DHF = (VQV, SDB)
|
||||
JXT = (BDD, KFL)
|
||||
LQG = (QMT, HLR)
|
||||
LXD = (RBH, CKT)
|
||||
LXM = (XPG, XKZ)
|
||||
XLV = (GXQ, VMX)
|
||||
GLL = (PVK, KLC)
|
||||
TSX = (XVR, TFT)
|
||||
QRF = (DJF, KJM)
|
||||
KJG = (JNF, LSR)
|
||||
GQB = (XSH, JRL)
|
||||
GKR = (LMD, KVB)
|
||||
GVS = (QJH, RVL)
|
||||
VPM = (XQJ, XTS)
|
||||
QNR = (LDC, DDZ)
|
||||
PVK = (TBT, CVN)
|
||||
JCX = (SNM, PLS)
|
||||
HHJ = (QFF, NLD)
|
||||
TLX = (VNN, RRV)
|
||||
GTF = (QTJ, QTJ)
|
||||
LNQ = (PLF, GRS)
|
||||
VBL = (GJK, BLQ)
|
||||
DGC = (DGK, BBM)
|
||||
NDT = (VJL, KPK)
|
||||
KBS = (VRC, TQH)
|
||||
RVJ = (TJP, VSF)
|
||||
RBR = (LDC, LDC)
|
||||
PDH = (XVN, XVN)
|
||||
JBF = (VSK, JMN)
|
||||
BBD = (MQR, JXH)
|
||||
FVT = (VBV, LLK)
|
||||
VBC = (MLF, TCX)
|
||||
XKZ = (RNX, JTF)
|
||||
MNA = (JTF, RNX)
|
||||
VFJ = (HHJ, VKM)
|
||||
GLM = (SKM, THM)
|
||||
JNF = (FFJ, DMT)
|
||||
MNG = (FQP, NLG)
|
||||
MVL = (PRM, KLH)
|
||||
RHS = (KBM, KLG)
|
||||
CRC = (CMQ, QCN)
|
||||
BPB = (DMH, NNT)
|
||||
NLD = (VCM, NTD)
|
||||
XCH = (JJJ, DHC)
|
||||
CKT = (PLR, KHM)
|
||||
NNT = (BSR, FQV)
|
||||
GQC = (XQS, QXL)
|
||||
GKM = (QTH, KHG)
|
||||
GJD = (TRB, MDB)
|
||||
CGB = (VXJ, VCG)
|
||||
SMQ = (HJP, LRR)
|
||||
RNP = (BLH, KHP)
|
||||
MMP = (NCM, XPK)
|
||||
VLX = (XQS, QXL)
|
||||
XJL = (BVN, KGN)
|
||||
LRB = (CGQ, KQT)
|
||||
NGM = (TCT, PGD)
|
||||
TBT = (KTB, LHV)
|
||||
JLB = (SGT, GMX)
|
||||
HFJ = (DJF, KJM)
|
||||
RCN = (RKK, SRK)
|
||||
KJM = (DJJ, LNQ)
|
||||
CVN = (KTB, LHV)
|
||||
PHB = (NXM, HVS)
|
||||
KJP = (HCR, QPM)
|
||||
SHD = (XCG, TRP)
|
||||
KKX = (LQP, XBV)
|
||||
FHX = (KXP, QNS)
|
||||
CLV = (MDF, RLN)
|
||||
FXV = (FQH, FCH)
|
||||
HTD = (TNQ, HSF)
|
||||
CJM = (LMQ, RLM)
|
||||
BSF = (CDG, SDL)
|
||||
JVN = (VMN, JCH)
|
||||
KDK = (XSG, LHL)
|
||||
FGM = (PJB, NTQ)
|
||||
MRB = (PNJ, HPM)
|
||||
JTQ = (XSC, RKL)
|
||||
CJN = (TSF, JXT)
|
||||
RLC = (QJH, RVL)
|
||||
XLK = (CBK, JBG)
|
||||
KLN = (FDQ, PHB)
|
||||
JJH = (JTK, LXM)
|
||||
TVT = (GKC, HKC)
|
||||
QHV = (DMB, XRL)
|
||||
TCX = (SJL, JTQ)
|
||||
JBX = (KHG, QTH)
|
||||
CQD = (NFJ, VSV)
|
||||
KPF = (VPM, FDD)
|
||||
KHG = (HCF, RNP)
|
||||
BSC = (QBX, JVB)
|
||||
KVK = (CQQ, RVT)
|
||||
CPB = (GQD, MBH)
|
||||
LTK = (RLL, HCL)
|
||||
HVK = (XMR, BJB)
|
||||
TFT = (QDH, PCL)
|
||||
MHB = (TDF, RCG)
|
||||
SRQ = (PMV, FVP)
|
||||
NJA = (QTF, HTT)
|
||||
RMN = (XHH, XNC)
|
||||
VCG = (VDG, LBP)
|
||||
LSF = (JMH, PRH)
|
||||
THL = (GGM, KJP)
|
||||
PLK = (RJR, JJF)
|
||||
DKP = (DTM, MLM)
|
||||
NQN = (LCM, PHH)
|
||||
KNG = (RBH, CKT)
|
||||
GKC = (NDF, QGS)
|
||||
BRF = (FPB, JFD)
|
||||
HKH = (FGM, TJN)
|
||||
KTL = (HCH, FGN)
|
||||
HKN = (MMP, BFV)
|
||||
JVB = (KJV, LBX)
|
||||
QVH = (LCB, NMB)
|
||||
HHF = (XQC, GSF)
|
||||
VGS = (JBX, GKM)
|
||||
BXC = (KPH, PKM)
|
||||
DBM = (FCS, BFJ)
|
||||
QPK = (TDF, RCG)
|
||||
VXJ = (LBP, VDG)
|
||||
GGM = (HCR, QPM)
|
||||
LHB = (LJQ, NSJ)
|
||||
LJQ = (NKK, DRL)
|
||||
JXF = (FLG, HCK)
|
||||
PHJ = (XFB, CGP)
|
||||
MKH = (PDH, KPJ)
|
||||
MFT = (PSK, LGK)
|
||||
CBS = (PCK, JXJ)
|
||||
FRK = (LTK, DDR)
|
||||
CMQ = (HPN, MKH)
|
||||
QJV = (RJM, SVN)
|
||||
KHP = (SGJ, QJX)
|
||||
CQR = (MGX, DGL)
|
||||
FJQ = (CQR, LVV)
|
||||
HCF = (KHP, BLH)
|
||||
LFC = (LMD, KVB)
|
||||
DPX = (CGB, PGV)
|
||||
DFS = (XLB, QLS)
|
||||
DDK = (GKR, LFC)
|
||||
KLS = (FPM, SMQ)
|
||||
JGQ = (RLC, GVS)
|
||||
LBV = (HHF, STJ)
|
||||
JGT = (TQJ, XBB)
|
||||
QRN = (LHL, XSG)
|
||||
RFD = (QRN, KDK)
|
||||
HSC = (STJ, HHF)
|
||||
LNH = (BRF, JPP)
|
||||
FSD = (TRN, KKG)
|
||||
NSF = (VSJ, LRB)
|
||||
QJF = (DSB, SGB)
|
||||
MQR = (VRG, BRX)
|
||||
XMR = (MVC, KXL)
|
||||
VNN = (KNB, GQX)
|
||||
NCM = (XLP, VKJ)
|
||||
KTS = (JCD, NDT)
|
||||
MDF = (LDG, LDG)
|
||||
PLS = (BGS, VVD)
|
||||
TPX = (TGR, GJM)
|
||||
GJK = (SQX, DTD)
|
||||
CTP = (BJL, GQB)
|
||||
GXP = (FXV, KQK)
|
||||
DRN = (BJB, XMR)
|
||||
QDH = (GNC, DDK)
|
||||
FMB = (JGH, LHB)
|
||||
STJ = (GSF, XQC)
|
||||
DNF = (FLG, HCK)
|
||||
XSR = (KXF, HGT)
|
||||
RNZ = (XBV, LQP)
|
||||
RGS = (MJC, LSF)
|
||||
GFC = (BHS, RSN)
|
||||
GTH = (BXC, VFC)
|
||||
PLM = (DGK, BBM)
|
||||
KSS = (HGX, DFS)
|
||||
SCP = (TMX, DKX)
|
||||
RXN = (GQC, VLX)
|
||||
PLR = (TMM, QGJ)
|
||||
QTH = (HCF, RNP)
|
||||
BRP = (CGG, JCX)
|
||||
BVR = (JBG, CBK)
|
||||
DTK = (BLS, RRT)
|
||||
TPB = (MQR, JXH)
|
||||
MJC = (PRH, JMH)
|
||||
GSF = (KPM, DRC)
|
||||
RVA = (JBF, PHQ)
|
||||
BLQ = (DTD, SQX)
|
||||
CBK = (BFN, SHB)
|
||||
VBM = (GMC, RSH)
|
||||
NFB = (CSC, MNG)
|
||||
NKS = (FPL, DHF)
|
||||
CLG = (KVK, TKG)
|
||||
KLH = (QJV, BHC)
|
||||
XQF = (DBM, MCJ)
|
||||
BCF = (KSK, BNM)
|
||||
XLP = (RFB, VLC)
|
||||
MVC = (TXH, LQB)
|
||||
LLS = (BMD, SPG)
|
||||
TJN = (PJB, NTQ)
|
||||
FQP = (LJK, MFN)
|
||||
PHQ = (VSK, JMN)
|
||||
XLB = (DTK, CSG)
|
||||
MHM = (RCN, LBC)
|
||||
LLH = (SRQ, BXJ)
|
||||
FVH = (MDD, TFL)
|
||||
RLM = (TLR, NPH)
|
||||
MLL = (BFF, KNR)
|
||||
CBP = (FBM, SLV)
|
||||
MHL = (TLX, VLF)
|
||||
MDB = (LSC, JHX)
|
||||
KQV = (QRN, KDK)
|
||||
SNM = (BGS, VVD)
|
||||
KGV = (PLQ, DDF)
|
||||
FCC = (FSD, CRK)
|
||||
JFD = (JXF, DNF)
|
||||
NTD = (RTD, QVX)
|
||||
TDF = (FXM, MFT)
|
||||
TMX = (BDC, FXF)
|
||||
MFN = (LBN, DDG)
|
||||
KGN = (TRT, JNK)
|
||||
XPK = (VKJ, XLP)
|
||||
JBT = (MMP, BFV)
|
||||
PLQ = (PSX, GHC)
|
||||
TRP = (CXS, FVG)
|
||||
QPM = (GMR, PPQ)
|
||||
VMX = (CBS, RJS)
|
||||
BFV = (XPK, NCM)
|
||||
LRR = (KGF, SRS)
|
||||
KGF = (MRL, VKB)
|
||||
PGV = (VCG, VXJ)
|
||||
LHX = (JVN, DFC)
|
||||
KPH = (VBC, XXR)
|
||||
GQF = (RHT, KTF)
|
||||
XQC = (KPM, DRC)
|
||||
TFV = (BVN, KGN)
|
||||
VVD = (CMD, PSP)
|
||||
HGT = (NFD, HBL)
|
||||
HBL = (MGN, GLL)
|
||||
XBG = (JBT, HKN)
|
||||
XSG = (LBV, HSC)
|
||||
SRS = (MRL, VKB)
|
||||
XBV = (NFS, FRK)
|
||||
PNJ = (TRQ, QJS)
|
||||
BRX = (PFM, JTS)
|
||||
GHC = (JPD, PDS)
|
||||
RCB = (KSS, SFB)
|
||||
QNS = (GML, XBM)
|
||||
GNC = (LFC, GKR)
|
||||
MRL = (BKV, NMK)
|
||||
KVB = (VGG, RHK)
|
||||
VCF = (JCX, CGG)
|
||||
VFP = (QBX, JVB)
|
||||
FLD = (QDQ, CBP)
|
||||
JBG = (SHB, BFN)
|
||||
BJL = (JRL, XSH)
|
||||
DBP = (RMQ, NMT)
|
||||
SFT = (PRM, KLH)
|
||||
CMD = (HFJ, QRF)
|
||||
@@ -0,0 +1,71 @@
|
||||
|
||||
|
||||
INPUT_FILE = "input.text"
|
||||
INSTRUCTIONS = []
|
||||
PATH = {}
|
||||
import math
|
||||
|
||||
def read_file() -> None:
|
||||
with open(INPUT_FILE, 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
line_index = 0
|
||||
for line in lines:
|
||||
|
||||
# This in our instruction line
|
||||
if line_index == 0:
|
||||
for char in line:
|
||||
if char == 'L':
|
||||
INSTRUCTIONS.append(0)
|
||||
elif char == 'R':
|
||||
INSTRUCTIONS.append(1)
|
||||
|
||||
elif line_index != 1:
|
||||
source: str = line.split('=')[0].strip()
|
||||
|
||||
dest = line.split('=')[1].strip()[1:-1].split(', ')
|
||||
|
||||
PATH[source] = dest
|
||||
|
||||
line_index += 1
|
||||
|
||||
def main() -> None:
|
||||
read_file()
|
||||
|
||||
# print(PATH)
|
||||
|
||||
# Find all starting positions (because we're a ghost in the 4th dimension)
|
||||
initial_positions = []
|
||||
for pos in PATH:
|
||||
if pos[2] == 'A':
|
||||
initial_positions.append(pos)
|
||||
|
||||
# Find how many steps for each ghost to get to Z
|
||||
steps_to_finish = []
|
||||
for pos in initial_positions:
|
||||
|
||||
steps = 0
|
||||
done = False
|
||||
while True:
|
||||
|
||||
for instruction in INSTRUCTIONS:
|
||||
|
||||
pos = PATH[pos][instruction]
|
||||
|
||||
if pos[2] == 'Z':
|
||||
done = True
|
||||
break
|
||||
|
||||
steps += 1
|
||||
|
||||
if done:
|
||||
steps_to_finish.append(steps + 1)
|
||||
break
|
||||
|
||||
print(f'Steps to finish: {math.lcm(*steps_to_finish)}')
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,10 @@
|
||||
LR
|
||||
|
||||
11A = (11B, XXX)
|
||||
11B = (XXX, 11Z)
|
||||
11Z = (11B, XXX)
|
||||
22A = (22B, XXX)
|
||||
22B = (22C, 22C)
|
||||
22C = (22Z, 22Z)
|
||||
22Z = (22B, 22B)
|
||||
XXX = (XXX, XXX)
|
||||
@@ -0,0 +1,200 @@
|
||||
14 26 47 96 208 446 930 1893 3779 7407 14241 26832 49537 89675 159354 278299 478132 808704 1347259 2211424 3577270
|
||||
11 35 81 158 275 441 665 956 1323 1775 2321 2970 3731 4613 5625 6776 8075 9531 11153 12950 14931
|
||||
18 27 40 59 81 91 50 -122 -568 -1521 -3336 -6527 -11809 -20145 -32798 -51388 -77954 -115021 -165672 -233625 -323315
|
||||
7 10 19 34 55 82 115 154 199 250 307 370 439 514 595 682 775 874 979 1090 1207
|
||||
11 32 70 137 253 449 772 1300 2190 3797 6927 13359 26967 56231 119897 259515 566513 1239226 2700380 5834113 12454133
|
||||
5 20 64 149 285 480 740 1069 1469 1940 2480 3085 3749 4464 5220 6005 6805 7604 8384 9125 9805
|
||||
7 28 64 127 256 545 1192 2577 5377 10726 20428 37231 65170 109987 179636 284881 439995 663568 979432 1417711 2016004
|
||||
-2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22
|
||||
18 45 90 155 249 397 664 1212 2414 5058 10686 22128 44309 85428 158632 284335 493362 831131 1363122 2181921 3416169
|
||||
10 14 9 5 21 93 304 858 2242 5556 13150 29813 64971 136807 280216 562651 1116306 2203618 4348835 8596161 17001841
|
||||
21 41 85 180 374 742 1405 2583 4714 8699 16393 31574 61822 122106 241587 476607 935964 1831346 3580258 7018773 13841427
|
||||
5 2 6 30 95 234 491 915 1554 2457 3703 5523 8713 15826 34179 82647 205703 500400 1165216 2584176 5465751
|
||||
24 36 60 106 187 320 521 806 1235 2077 4242 10247 26211 65806 157892 361020 790614 1669390 3420164 6835692 13387759
|
||||
27 36 43 64 142 360 868 1954 4203 8802 18064 36259 70860 134374 247150 442223 774975 1344404 2341497 4158158 7625686
|
||||
3 26 65 124 213 352 591 1063 2089 4356 9191 18956 37591 71334 129649 226395 381271 621574 984309 1518692 2289089
|
||||
14 11 19 50 128 315 763 1807 4114 8903 18251 35500 65780 116663 198963 327697 523222 812563 1230947 1823558 2647528
|
||||
7 25 55 96 147 207 275 350 431 517 607 700 795 891 987 1082 1175 1265 1351 1432 1507
|
||||
4 20 52 102 172 264 380 522 692 892 1124 1390 1692 2032 2412 2834 3300 3812 4372 4982 5644
|
||||
12 12 26 79 205 448 871 1577 2742 4665 7868 13347 23205 42121 80471 160487 327720 671410 1359366 2695903 5215645
|
||||
0 -5 -19 -42 -56 -11 190 707 1780 3747 7063 12320 20268 31837 48160 70597 100760 140539 192129 258058 341216
|
||||
-2 -8 -4 20 70 145 240 357 523 807 1311 2072 2738 1758 -5346 -29249 -92392 -237526 -539350 -1117924 -2149630
|
||||
-5 -10 -11 8 77 246 598 1278 2554 4945 9495 18359 36020 71695 143811 287798 568801 1101338 2079037 3821332 6855171
|
||||
4 3 21 80 211 461 917 1759 3353 6408 12262 23439 44729 85167 161385 302817 559054 1009141 1771607 3012302 4944411
|
||||
22 34 50 86 170 359 784 1749 3934 8783 19198 40724 83538 165840 319898 603491 1122806 2079904 3872226 7299442 13984490
|
||||
23 30 48 88 163 300 570 1157 2507 5632 12710 28259 61453 130759 273345 564318 1156141 2359172 4805190 9776416 19859989
|
||||
-8 -12 -15 -17 -18 -18 -17 -15 -12 -8 -3 3 10 18 27 37 48 60 73 87 102
|
||||
12 14 23 45 102 247 580 1269 2578 4894 8728 14643 23033 33638 44646 51286 44214 9398 -64873 -158619 -131618
|
||||
11 17 25 37 50 57 63 140 567 2132 6711 18277 44524 99329 206393 404850 759118 1379591 2472170 4462351 8302561
|
||||
20 30 52 106 228 481 966 1833 3292 5624 9192 14452 21964 32403 46570 65403 89988 121570 161564 211566 273364
|
||||
19 35 62 100 148 202 264 372 654 1399 3129 6654 13105 23978 41297 68130 109885 177091 290752 491872 857410
|
||||
26 53 92 147 230 362 569 880 1356 2228 4324 10158 26391 68939 172950 411497 929690 2005975 4161296 8352141 16309216
|
||||
14 28 53 109 222 414 702 1129 1859 3378 6861 14805 32108 67918 138842 274682 529326 1003298 1894435 3617291 7086724
|
||||
0 10 48 129 283 568 1090 2035 3720 6689 11927 21355 38926 72920 140574 277328 555542 1123404 2287945 4694976 9719897
|
||||
6 12 20 37 75 160 354 801 1812 4008 8543 17429 33981 63405 113625 196746 332414 556348 941370 1645501 3013355
|
||||
17 23 29 35 41 47 53 59 65 71 77 83 89 95 101 107 113 119 125 131 137
|
||||
13 27 50 83 129 193 298 531 1133 2647 6138 13499 27857 54093 99490 174523 293805 477203 751138 1150083 1718273
|
||||
28 43 58 73 88 103 118 133 148 163 178 193 208 223 238 253 268 283 298 313 328
|
||||
11 9 4 -6 -32 -95 -222 -437 -733 -973 -600 2069 11356 37240 101235 247946 568267 1246553 2656208 5549892 11427768
|
||||
25 46 78 121 175 240 316 403 501 610 730 861 1003 1156 1320 1495 1681 1878 2086 2305 2535
|
||||
17 28 57 125 276 592 1206 2313 4189 7247 12190 20366 34490 59973 107187 195096 356793 647598 1156487 2021731 3451720
|
||||
24 45 84 157 299 582 1135 2162 3951 6861 11277 17571 26268 39002 61652 112657 242756 579095 1420548 3439575 8102595
|
||||
21 38 57 74 91 122 210 467 1155 2840 6683 15001 32365 67738 138540 278114 548921 1064986 2028733 3789476 6933575
|
||||
8 19 49 99 166 247 345 489 795 1610 3796 9226 21579 47536 98494 192930 359562 641469 1101347 1828093 2944924
|
||||
13 32 68 127 228 417 781 1462 2671 4702 7946 12905 20206 30615 45051 64600 90529 124300 167584 222275 290504
|
||||
13 23 35 45 59 104 245 624 1547 3653 8200 17500 35563 69181 130275 241965 454837 889032 1837669 4008880 9069103
|
||||
13 18 24 33 50 93 221 590 1552 3829 8843 19391 41067 85240 175168 358274 730288 1481876 2987401 5972131 11825257
|
||||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
||||
8 28 71 152 288 498 803 1226 1792 2528 3463 4628 6056 7782 9843 12278 15128 18436 22247 26608 31568
|
||||
2 -3 -2 20 86 241 589 1370 3115 6958 15253 32753 68782 141126 282900 554641 1065785 2013448 3754005 6938327 12772443
|
||||
8 8 -1 -29 -91 -197 -333 -435 -345 303 2402 8180 23048 59530 145226 338410 757762 1637618 3428041 6971393 13805807
|
||||
25 40 71 134 245 417 659 984 1442 2209 3797 7534 16663 38852 91816 215490 497315 1122518 2469919 5287326 11001021
|
||||
24 36 54 96 192 399 831 1704 3396 6522 12024 21276 36204 59421 94377 145524 218496 320304 459546 646632 894024
|
||||
-5 -3 0 5 27 110 355 969 2345 5199 10832 21665 42319 81683 156661 298762 565880 1064795 1998131 3769177 7221916
|
||||
20 39 64 88 98 79 29 -13 69 503 1659 4090 8641 16751 31174 57485 106922 201351 381434 719436 1338532
|
||||
9 26 43 56 69 113 292 872 2425 6031 13527 27773 52881 94324 158808 253751 386169 560720 776603 1022950 1272285
|
||||
-2 -6 -8 10 86 287 734 1656 3486 7012 13596 25474 46150 80897 137378 226400 362814 566574 863968 1289034 1885174
|
||||
-6 -7 3 42 139 350 790 1683 3432 6711 12581 22632 39153 65332 105488 165337 252294 375813 547767 782870 1099143
|
||||
10 12 25 75 201 455 898 1591 2587 3943 5792 8557 13497 24070 49367 112747 273115 675713 1669042 4064338 9691456
|
||||
11 11 22 47 90 164 314 668 1529 3521 7802 16357 32384 60786 108782 186650 308615 493895 767918 1163723 1723558
|
||||
12 12 22 61 149 303 533 838 1202 1590 1944 2179 2179 1793 831 -940 -3800 -8080 -14166 -22503 -33599
|
||||
6 29 65 123 230 439 837 1553 2766 4713 7697 12095 18366 27059 38821 54405 74678 100629 133377 174179 224438
|
||||
-5 2 13 22 19 -10 -82 -207 -352 -353 260 2569 8758 22849 51755 106730 205305 373808 650575 1089968 1767325
|
||||
25 43 75 135 246 440 764 1306 2262 4070 7648 14810 29044 57125 112717 224571 454763 937541 1958001 4103569 8542006
|
||||
20 27 29 18 -21 -116 -301 -571 -753 -215 2708 11746 34424 84806 187656 384517 742318 1365239 2410695 4110442 6797961
|
||||
28 56 113 214 387 685 1205 2128 3805 6925 12813 23938 44815 83763 156604 294617 561270 1085954 2128813 4199674 8267127
|
||||
3 11 19 27 35 43 51 59 67 75 83 91 99 107 115 123 131 139 147 155 163
|
||||
16 22 25 25 22 16 7 -5 -20 -38 -59 -83 -110 -140 -173 -209 -248 -290 -335 -383 -434
|
||||
17 46 92 156 243 380 643 1200 2393 4915 10199 21248 44360 92691 193674 404589 845141 1764532 3675990 7618200 15646565
|
||||
5 23 62 139 281 543 1047 2052 4068 8043 15704 30263 57977 111583 217564 430738 862051 1729007 3443254 6756899 12998645
|
||||
5 6 13 33 83 196 431 902 1858 3872 8237 17722 37904 79344 160881 314223 589739 1062794 1838981 3055015 4869649
|
||||
21 39 72 145 299 592 1106 1971 3418 5879 10177 17908 32225 59414 111963 214427 414671 805855 1570414 3069167 6021443
|
||||
12 22 39 81 189 449 1030 2249 4676 9302 17822 33142 60321 108356 193645 346944 627879 1156029 2178028 4211058 8343188
|
||||
2 9 41 110 239 484 980 2034 4304 9141 19249 39957 81621 164010 324008 628617 1196110 2229297 4066273 7255760 12666283
|
||||
11 20 50 118 251 485 866 1458 2363 3758 5954 9482 15211 24503 39410 62918 99243 154184 235538 353582 521627
|
||||
7 -2 -16 -38 -68 -102 -139 -199 -356 -796 -1911 -4410 -9318 -17446 -27227 -28206 16213 211334 830958 2541314 6883432
|
||||
25 34 44 63 109 217 445 873 1582 2600 3823 4993 6005 8235 18431 58333 186163 541390 1433202 3508147 8056737
|
||||
22 31 55 107 200 354 617 1108 2089 4072 7966 15268 28301 50501 86754 143783 230584 358909 543793 804121 1163230
|
||||
-4 1 20 61 138 273 495 836 1324 1973 2770 3659 4522 5157 5253 4362 1868 -3047 -11440 -24647 -44326
|
||||
26 51 98 174 298 523 971 1896 3796 7611 15084 29440 56668 107887 203553 380634 704358 1286739 2314822 4092474 7100598
|
||||
28 52 98 193 377 697 1196 1897 2782 3766 4666 5165 4771 2771 -1820 -10315 -24416 -46280 -78590 -124631 -188371
|
||||
3 11 24 61 165 425 1023 2315 4948 10006 19169 34862 60368 99882 158494 242110 357353 511533 712838 970979 1298623
|
||||
5 15 53 147 346 734 1449 2700 4766 7957 12530 18600 26207 36006 51812 88055 189285 477498 1260375 3266770 8137126
|
||||
4 7 13 23 52 140 362 836 1741 3392 6491 12809 26807 59168 134039 303207 672818 1452161 3040389 6177303 12200838
|
||||
-8 -3 22 78 175 320 517 781 1199 2112 4564 11295 28799 71422 169312 383553 834506 1753964 3579140 7117715 13828691
|
||||
25 33 33 19 -10 -46 -75 -91 -116 -205 -381 -359 1302 9515 38559 126226 365970 976291 2443528 5803537 13177521
|
||||
26 41 56 71 86 101 116 131 146 161 176 191 206 221 236 251 266 281 296 311 326
|
||||
0 4 10 24 63 170 440 1058 2350 4848 9370 17116 29781 49686 79928 124550 188732 279004 403482 572128 797035
|
||||
4 3 6 14 22 25 43 170 654 2033 5393 12885 28748 61258 126333 254163 501624 976195 1883076 3618592 6953490
|
||||
22 33 42 43 44 97 343 1086 2929 7033 15611 32876 66900 133364 263271 518834 1025692 2036469 4052068 8045173 15858136
|
||||
18 30 39 49 73 146 364 977 2576 6439 15166 33887 72656 151295 309176 624662 1252945 2498224 4949126 9729671 18960358
|
||||
10 26 62 127 223 344 474 591 705 997 2198 6470 19248 52808 132800 309727 678524 1411248 2810806 5398157 10052261
|
||||
9 24 48 88 157 282 528 1047 2177 4658 10117 22122 48348 104795 223662 467634 955421 1907256 3726322 7145624 13494603
|
||||
2 1 10 48 139 312 601 1045 1688 2579 3772 5326 7305 9778 12819 16507 20926 26165 32318 39484 47767
|
||||
14 26 53 104 199 384 750 1457 2783 5252 9944 19154 37646 74842 148395 289719 552188 1022870 1838831 3209228 5444609
|
||||
17 16 25 67 174 387 756 1340 2207 3434 5107 7321 10180 13797 18294 23802 30461 38420 47837 58879 71722
|
||||
4 6 24 75 184 389 759 1450 2843 5837 12411 26626 56327 115965 231261 446985 840062 1541700 2774406 4912701 8580026
|
||||
9 26 64 127 219 343 497 667 817 876 722 163 -1085 -3423 -7397 -13729 -23351 -37442 -57468 -85225 -122885
|
||||
18 47 94 168 291 509 904 1620 2941 5492 10671 21464 43866 89277 178551 348989 666692 1248617 2301796 4191988 7561173
|
||||
25 47 95 183 325 535 827 1215 1713 2335 3095 4007 5085 6343 7795 9455 11337 13455 15823 18455 21365
|
||||
9 22 35 48 61 74 87 100 113 126 139 152 165 178 191 204 217 230 243 256 269
|
||||
16 26 40 58 80 106 136 170 208 250 296 346 400 458 520 586 656 730 808 890 976
|
||||
14 18 23 30 40 54 73 98 130 170 219 278 348 430 525 634 758 898 1055 1230 1424
|
||||
22 47 87 152 259 441 761 1333 2355 4160 7307 12792 22603 41153 78748 159440 337800 732977 1594851 3427508 7211535
|
||||
26 46 78 143 272 515 964 1789 3288 5964 10671 18936 33722 61281 115612 228819 474022 1013362 2193352 4725041 10009284
|
||||
23 47 81 125 179 243 317 401 495 599 713 837 971 1115 1269 1433 1607 1791 1985 2189 2403
|
||||
19 44 86 153 270 505 1009 2065 4147 8013 14899 26953 48180 86441 157631 294374 563979 1104929 2199278 4412142 8851878
|
||||
27 42 71 143 303 613 1153 2035 3460 5871 10286 18936 36386 71384 139766 268846 503841 917024 1620465 2783413 4655593
|
||||
24 41 73 128 210 319 451 598 748 885 989 1036 998 843 535 34 -704 -1727 -3087 -4840 -7046
|
||||
-7 -15 -19 -17 -12 2 68 308 979 2543 5751 11741 22150 39240 66038 106490 165629 249757 366641 525723 738344
|
||||
7 12 36 98 227 462 852 1456 2343 3592 5292 7542 10451 14138 18732 24372 31207 39396 49108 60522 73827
|
||||
11 25 48 89 153 236 320 368 319 83 -464 -1485 -3187 -5826 -9712 -15214 -22765 -32867 -46096 -63107 -84639
|
||||
8 14 30 79 187 374 638 927 1094 828 -455 -3799 -11053 -25524 -53195 -104919 -200212 -373550 -684440 -1232997 -2183333
|
||||
9 28 53 84 121 164 213 268 329 396 469 548 633 724 821 924 1033 1148 1269 1396 1529
|
||||
15 29 58 121 257 543 1139 2382 4963 10251 20886 41850 82327 158757 299574 552284 994087 1748873 3017478 5136931 8701877
|
||||
-7 -1 11 31 77 197 481 1072 2181 4129 7487 13484 25034 49038 101091 214393 455493 950327 1924467 3760853 7075295
|
||||
-5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25
|
||||
-7 -8 -10 0 61 264 808 2102 4937 10772 22217 43862 83713 155717 284373 513702 925934 1682313 3113525 5917809 11583494
|
||||
2 0 -7 -16 -12 38 191 534 1190 2324 4149 6932 11000 16746 24635 35210 49098 67016 89777 118296 153596
|
||||
13 21 32 55 115 259 562 1133 2121 3721 6180 9803 14959 22087 31702 44401 60869 81885 108328 141183 181547
|
||||
9 18 48 119 260 518 978 1794 3234 5749 10092 17559 30554 54009 98935 190916 389291 828028 1798244 3906903 8369100
|
||||
8 22 51 103 183 293 432 596 778 968 1153 1317 1441 1503 1478 1338 1052 586 -97 -1037 -2277
|
||||
6 16 50 134 314 659 1265 2265 3848 6287 9984 15580 24280 38746 65263 118441 230546 468730 965038 1966202 3912990
|
||||
16 39 76 132 223 384 673 1171 1978 3205 4962 7342 10401 14134 18447 23125 27796 31891 34600 34824 31123
|
||||
10 17 28 46 90 208 501 1174 2638 5695 11846 23770 46030 86070 155575 272274 462274 763021 1226992 1926230 2957842
|
||||
20 36 67 120 206 358 672 1395 3112 7132 16249 36172 78103 163236 330419 648963 1239736 2309436 4205547 7503272 13141120
|
||||
16 33 53 67 61 16 -78 -183 -129 558 3009 9739 26128 63370 144182 313540 658314 1342251 2666789 5174343 9819879
|
||||
13 17 21 40 106 272 616 1245 2299 3955 6431 9990 14944 21658 30554 42115 56889 75493 98617 127028 161574
|
||||
10 20 41 94 213 464 978 2003 3981 7668 14348 26259 47469 85632 155317 283877 520928 952044 1715507 3016640 5125441
|
||||
-4 -6 -2 16 72 221 564 1263 2556 4772 8346 13834 21928 33471 49472 71121 99804 137118 184886 245172 320296
|
||||
0 4 13 33 74 157 326 671 1375 2805 5674 11308 22059 41912 77341 138476 240650 406402 668019 1070707 1676488
|
||||
16 34 66 125 241 471 903 1663 2947 5109 8845 15534 27854 50938 94712 179032 345723 687730 1419893 3047749 6758676
|
||||
6 28 60 100 153 244 445 932 2108 4860 11071 24608 53201 111996 230261 464071 920475 1804042 3507549 6790264 13129978
|
||||
7 29 68 130 237 445 877 1780 3613 7175 13792 25618 46221 81943 145280 263148 496108 980618 2017113 4245291 8979258
|
||||
9 11 15 16 20 72 300 982 2645 6215 13280 26652 51702 99534 194211 388433 796263 1659636 3481287 7287877 15148046
|
||||
-1 11 34 73 133 216 318 441 648 1204 2865 7406 18542 43561 96420 204128 420762 859094 1761789 3658468 7702212
|
||||
12 34 72 130 208 309 449 678 1131 2146 4523 10069 22697 50543 109858 231849 474214 939874 1806386 3370764 6115982
|
||||
19 23 27 31 35 39 43 47 51 55 59 63 67 71 75 79 83 87 91 95 99
|
||||
3 6 16 37 73 128 206 311 447 618 828 1081 1381 1732 2138 2603 3131 3726 4392 5133 5953
|
||||
4 3 15 53 130 259 453 725 1088 1555 2139 2853 3710 4723 5905 7269 8828 10595 12583 14805 17274
|
||||
19 38 64 107 192 361 683 1285 2434 4725 9470 19464 40478 84190 173982 356414 723833 1458723 2920749 5818959 11557206
|
||||
-4 -9 -15 -24 -29 -2 119 461 1296 3215 7455 16452 34707 70066 135529 251717 450140 777423 1300661 2114088 3347259
|
||||
24 41 63 89 123 187 352 805 1986 4859 11425 25635 54903 112442 220659 415917 755333 1327550 2273056 3828714 6431712
|
||||
10 14 25 52 112 230 439 780 1302 2062 3125 4564 6460 8902 11987 15820 20514 26190 32977 41012 50440
|
||||
5 9 30 88 223 518 1132 2343 4601 8591 15306 26130 42931 68164 104984 157369 230253 329669 462902 638652 867207
|
||||
-4 8 35 77 134 206 293 395 512 644 791 953 1130 1322 1529 1751 1988 2240 2507 2789 3086
|
||||
12 15 32 80 197 451 940 1782 3097 4986 7515 10715 14612 19304 25105 32779 43890 61297 89826 137154 214943
|
||||
8 27 57 116 236 463 857 1492 2456 3851 5793 8412 11852 16271 21841 28748 37192 47387 59561 73956 90828
|
||||
17 39 70 123 232 465 948 1910 3761 7214 13472 24547 43889 77697 137546 245226 440843 795256 1428293 2536897 4448110
|
||||
6 25 49 81 138 258 514 1045 2123 4286 8581 16999 33314 64915 127152 253782 521352 1103663 2388049 5213473 11340118
|
||||
15 22 48 108 222 431 826 1607 3209 6554 13507 27623 55262 107123 200271 361049 630542 1077985 1836685 3197221 5833573
|
||||
9 10 13 14 11 14 57 214 641 1713 4411 11251 28247 68675 159767 353925 746617 1503812 2902641 5389948 9664531
|
||||
19 30 45 73 127 228 408 724 1318 2589 5582 12746 29268 65253 139091 282431 547269 1015752 1813403 3126583 5225125
|
||||
16 20 29 55 129 311 712 1553 3307 7003 14827 31254 65116 133287 267071 522905 999563 1864490 3391876 6014067 10385116
|
||||
2 -7 -23 -41 -38 37 273 807 1834 3617 6497 10903 17362 26509 39097 56007 78258 107017 143609 189527 246442
|
||||
15 22 29 41 69 142 334 816 1954 4492 9890 20944 42922 85648 167321 321469 609457 1142602 2120483 3895851 7082139
|
||||
-1 -10 -21 -18 40 232 698 1683 3612 7213 13728 25306 45799 82489 150000 279284 538074 1076412 2225283 4704589 10050857
|
||||
-4 -10 -18 -28 -35 -18 87 447 1444 3852 9073 19389 38127 69546 118134 186844 273596 365122 426928 387786 116745
|
||||
1 13 37 84 190 444 1033 2304 4840 9544 17725 31197 52476 85390 137021 223308 383639 715667 1452493 3123430 6871382
|
||||
-4 -2 10 35 76 136 218 325 460 626 826 1063 1340 1660 2026 2441 2908 3430 4010 4651 5356
|
||||
11 7 -1 -12 -25 -39 -53 -66 -77 -85 -89 -88 -81 -67 -45 -14 27 79 143 220 311
|
||||
16 24 27 30 51 126 327 799 1815 3834 7516 13592 22403 32809 40023 31750 -18103 -158498 -471154 -1071166 -2065238
|
||||
4 21 58 122 227 408 749 1434 2836 5683 11399 22831 45762 91910 184594 369052 730792 1427817 2746864 5201140 9699217
|
||||
16 33 63 118 209 342 516 733 1051 1749 3734 9417 24442 60908 143137 317692 670346 1354185 2635169 4964488 9091191
|
||||
11 20 38 69 119 197 312 472 701 1108 2076 4697 11669 29001 69050 155648 332375 675404 1312794 2452645 4423163
|
||||
10 14 18 32 96 301 813 1907 4040 8034 15525 29998 59020 118782 242925 499187 1020334 2061362 4105208 8057644 15603992
|
||||
7 20 41 70 104 142 207 402 1035 2880 7693 19179 44724 98427 206472 417101 820287 1588368 3061397 5924796 11570032
|
||||
4 16 46 109 232 472 956 1952 3994 8110 16239 31970 61792 117108 217337 394505 699808 1212716 2053276 3398363 5502720
|
||||
26 39 56 82 121 184 315 656 1594 4068 10170 24277 55162 119964 251726 513673 1025774 2012673 3886936 7387644 13801107
|
||||
3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17
|
||||
1 6 25 73 167 341 680 1377 2814 5665 11015 20479 36279 61179 98065 148758 211323 274636 308233 244417 -51845
|
||||
7 29 77 175 369 743 1445 2726 4995 8893 15389 25901 42445 67815 105797 161420 241247 353709 509485 721931 1007561
|
||||
22 35 48 61 74 87 100 113 126 139 152 165 178 191 204 217 230 243 256 269 282
|
||||
6 1 -4 -9 -14 -19 -24 -29 -34 -39 -44 -49 -54 -59 -64 -69 -74 -79 -84 -89 -94
|
||||
11 36 79 151 269 457 759 1277 2247 4166 7983 15367 29065 53363 94663 162189 268835 432168 675599 1029735 1533925
|
||||
8 4 -8 -27 -34 26 266 885 2220 4879 10095 20601 42610 89951 192129 409116 857116 1751451 3475128 6684512 12466550
|
||||
21 48 95 172 291 470 745 1193 1979 3471 6526 13143 27827 60277 130556 279024 585537 1206562 2446161 4889006 9643099
|
||||
16 25 43 93 225 531 1171 2431 4846 9450 18274 35317 68393 132584 256690 495465 953348 1831239 3518957 6776005 13077649
|
||||
17 32 50 83 153 296 571 1074 1957 3452 5900 9785 15773 24756 37901 56704 83049 119272 168230 233375 318833
|
||||
15 41 92 173 294 480 788 1338 2379 4446 8722 17800 37143 77674 160140 322316 631027 1202867 2241168 4103331 7423512
|
||||
10 28 70 157 328 649 1220 2177 3692 5989 9418 14662 23194 38152 65860 118292 216854 397946 720862 1278691 2212996
|
||||
9 22 54 108 197 357 667 1290 2559 5148 10391 20847 41279 80390 154106 292254 552762 1052003 2028105 3968007 7851354
|
||||
-9 1 20 46 95 223 555 1321 2899 5865 11050 19604 33067 53447 83305 125847 185023 265633 373440 515290 699239
|
||||
9 26 71 162 317 548 866 1325 2149 4001 8463 18793 40994 85147 166798 307943 536900 886355 1389742 2079103 2994882
|
||||
28 41 59 93 169 339 690 1356 2547 4618 8210 14504 25638 45346 79887 139341 239358 403455 665965 1075751 1700807
|
||||
-2 9 47 139 329 683 1301 2348 4137 7328 13358 25311 49614 99285 200148 402908 807231 1611069 3213546 6430795 12946438
|
||||
19 43 90 174 320 568 972 1594 2493 3709 5242 7026 8898 10562 11548 11166 8455 2127 -9494 -28538 -57660
|
||||
12 12 13 26 66 155 333 677 1328 2526 4653 8284 14246 23685 38141 59631 90740 134720 195597 278286 388714
|
||||
8 31 65 110 166 233 311 400 500 611 733 866 1010 1165 1331 1508 1696 1895 2105 2326 2558
|
||||
10 27 69 153 308 595 1155 2299 4654 9379 18465 35133 64344 113435 192895 317295 506386 786379 1191421 1765281 2563260
|
||||
8 28 59 101 154 218 293 379 476 584 703 833 974 1126 1289 1463 1648 1844 2051 2269 2498
|
||||
5 22 59 130 264 522 1029 2034 4008 7798 14892 27949 51974 96999 184112 358605 717667 1466714 3030153 6262196 12835776
|
||||
21 25 31 54 123 285 609 1190 2153 3657 5899 9118 13599 19677 27741 38238 51677 68633 89751 115750 147427
|
||||
12 13 20 45 102 210 414 844 1841 4201 9636 21638 47071 99020 201708 398665 765810 1431701 2607932 4633523 8038172
|
||||
24 38 52 66 80 94 108 122 136 150 164 178 192 206 220 234 248 262 276 290 304
|
||||
23 34 41 44 43 38 29 16 -1 -22 -47 -76 -109 -146 -187 -232 -281 -334 -391 -452 -517
|
||||
-10 -2 34 116 266 512 899 1528 2651 4869 9519 19415 40283 83642 172850 356227 735942 1531350 3215650 6804080 14446002
|
||||
6 18 37 58 86 150 335 844 2108 4981 11097 23545 48168 96068 188401 365462 703738 1347664 2568293 4870656 9187810
|
||||
4 5 25 75 166 320 596 1144 2313 4873 10491 22771 49495 107288 230943 491377 1029170 2115773 4263265 8418391 16301188
|
||||
1 -8 -10 15 110 361 933 2132 4500 8944 16898 30544 53235 90606 153713 267462 491595 969324 2033158 4422897 9713628
|
||||
18 33 59 97 148 213 293 389 502 633 783 953 1144 1357 1593 1853 2138 2449 2787 3153 3548
|
||||
@@ -0,0 +1,49 @@
|
||||
INPUT_FILE = "input.text"
|
||||
|
||||
def extrapolate_value(line: str) -> int:
|
||||
|
||||
initial_values: list[int] = [int(v) for v in line.split(' ')]
|
||||
|
||||
values = [initial_values]
|
||||
|
||||
# Loop until last thing is all 0, 0, 0...
|
||||
while len(values[-1]) != values[-1].count(0):
|
||||
new_values: list[int] = []
|
||||
|
||||
current_row: list[int] = values[-1]
|
||||
for value_index in range(1, len(current_row)):
|
||||
new_values.append(current_row[value_index] - current_row[value_index - 1])
|
||||
|
||||
values.append(new_values)
|
||||
|
||||
# Now we can extrapolate our new values, starting from the bottom
|
||||
for row_index in reversed(range(0, len(values) - 2)): # -1 because we know the last row is all 0's
|
||||
current_row: list[int] = values[row_index]
|
||||
row_bellow: list[int] = values[row_index + 1]
|
||||
|
||||
values[row_index].append(current_row[-1] + row_bellow[-1])
|
||||
|
||||
return values[0][-1] # Return last value of the first row
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
with open(INPUT_FILE, 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
sum_of_values = 0
|
||||
for line in lines:
|
||||
extrapolated_history_value: int = extrapolate_value(line)
|
||||
|
||||
sum_of_values += extrapolated_history_value
|
||||
|
||||
print(f'Sum of extrapolated values: {sum_of_values}')
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
0 3 6 9 12 15
|
||||
1 3 6 10 15 21
|
||||
10 13 16 21 30 45
|
||||
@@ -0,0 +1,200 @@
|
||||
14 26 47 96 208 446 930 1893 3779 7407 14241 26832 49537 89675 159354 278299 478132 808704 1347259 2211424 3577270
|
||||
11 35 81 158 275 441 665 956 1323 1775 2321 2970 3731 4613 5625 6776 8075 9531 11153 12950 14931
|
||||
18 27 40 59 81 91 50 -122 -568 -1521 -3336 -6527 -11809 -20145 -32798 -51388 -77954 -115021 -165672 -233625 -323315
|
||||
7 10 19 34 55 82 115 154 199 250 307 370 439 514 595 682 775 874 979 1090 1207
|
||||
11 32 70 137 253 449 772 1300 2190 3797 6927 13359 26967 56231 119897 259515 566513 1239226 2700380 5834113 12454133
|
||||
5 20 64 149 285 480 740 1069 1469 1940 2480 3085 3749 4464 5220 6005 6805 7604 8384 9125 9805
|
||||
7 28 64 127 256 545 1192 2577 5377 10726 20428 37231 65170 109987 179636 284881 439995 663568 979432 1417711 2016004
|
||||
-2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22
|
||||
18 45 90 155 249 397 664 1212 2414 5058 10686 22128 44309 85428 158632 284335 493362 831131 1363122 2181921 3416169
|
||||
10 14 9 5 21 93 304 858 2242 5556 13150 29813 64971 136807 280216 562651 1116306 2203618 4348835 8596161 17001841
|
||||
21 41 85 180 374 742 1405 2583 4714 8699 16393 31574 61822 122106 241587 476607 935964 1831346 3580258 7018773 13841427
|
||||
5 2 6 30 95 234 491 915 1554 2457 3703 5523 8713 15826 34179 82647 205703 500400 1165216 2584176 5465751
|
||||
24 36 60 106 187 320 521 806 1235 2077 4242 10247 26211 65806 157892 361020 790614 1669390 3420164 6835692 13387759
|
||||
27 36 43 64 142 360 868 1954 4203 8802 18064 36259 70860 134374 247150 442223 774975 1344404 2341497 4158158 7625686
|
||||
3 26 65 124 213 352 591 1063 2089 4356 9191 18956 37591 71334 129649 226395 381271 621574 984309 1518692 2289089
|
||||
14 11 19 50 128 315 763 1807 4114 8903 18251 35500 65780 116663 198963 327697 523222 812563 1230947 1823558 2647528
|
||||
7 25 55 96 147 207 275 350 431 517 607 700 795 891 987 1082 1175 1265 1351 1432 1507
|
||||
4 20 52 102 172 264 380 522 692 892 1124 1390 1692 2032 2412 2834 3300 3812 4372 4982 5644
|
||||
12 12 26 79 205 448 871 1577 2742 4665 7868 13347 23205 42121 80471 160487 327720 671410 1359366 2695903 5215645
|
||||
0 -5 -19 -42 -56 -11 190 707 1780 3747 7063 12320 20268 31837 48160 70597 100760 140539 192129 258058 341216
|
||||
-2 -8 -4 20 70 145 240 357 523 807 1311 2072 2738 1758 -5346 -29249 -92392 -237526 -539350 -1117924 -2149630
|
||||
-5 -10 -11 8 77 246 598 1278 2554 4945 9495 18359 36020 71695 143811 287798 568801 1101338 2079037 3821332 6855171
|
||||
4 3 21 80 211 461 917 1759 3353 6408 12262 23439 44729 85167 161385 302817 559054 1009141 1771607 3012302 4944411
|
||||
22 34 50 86 170 359 784 1749 3934 8783 19198 40724 83538 165840 319898 603491 1122806 2079904 3872226 7299442 13984490
|
||||
23 30 48 88 163 300 570 1157 2507 5632 12710 28259 61453 130759 273345 564318 1156141 2359172 4805190 9776416 19859989
|
||||
-8 -12 -15 -17 -18 -18 -17 -15 -12 -8 -3 3 10 18 27 37 48 60 73 87 102
|
||||
12 14 23 45 102 247 580 1269 2578 4894 8728 14643 23033 33638 44646 51286 44214 9398 -64873 -158619 -131618
|
||||
11 17 25 37 50 57 63 140 567 2132 6711 18277 44524 99329 206393 404850 759118 1379591 2472170 4462351 8302561
|
||||
20 30 52 106 228 481 966 1833 3292 5624 9192 14452 21964 32403 46570 65403 89988 121570 161564 211566 273364
|
||||
19 35 62 100 148 202 264 372 654 1399 3129 6654 13105 23978 41297 68130 109885 177091 290752 491872 857410
|
||||
26 53 92 147 230 362 569 880 1356 2228 4324 10158 26391 68939 172950 411497 929690 2005975 4161296 8352141 16309216
|
||||
14 28 53 109 222 414 702 1129 1859 3378 6861 14805 32108 67918 138842 274682 529326 1003298 1894435 3617291 7086724
|
||||
0 10 48 129 283 568 1090 2035 3720 6689 11927 21355 38926 72920 140574 277328 555542 1123404 2287945 4694976 9719897
|
||||
6 12 20 37 75 160 354 801 1812 4008 8543 17429 33981 63405 113625 196746 332414 556348 941370 1645501 3013355
|
||||
17 23 29 35 41 47 53 59 65 71 77 83 89 95 101 107 113 119 125 131 137
|
||||
13 27 50 83 129 193 298 531 1133 2647 6138 13499 27857 54093 99490 174523 293805 477203 751138 1150083 1718273
|
||||
28 43 58 73 88 103 118 133 148 163 178 193 208 223 238 253 268 283 298 313 328
|
||||
11 9 4 -6 -32 -95 -222 -437 -733 -973 -600 2069 11356 37240 101235 247946 568267 1246553 2656208 5549892 11427768
|
||||
25 46 78 121 175 240 316 403 501 610 730 861 1003 1156 1320 1495 1681 1878 2086 2305 2535
|
||||
17 28 57 125 276 592 1206 2313 4189 7247 12190 20366 34490 59973 107187 195096 356793 647598 1156487 2021731 3451720
|
||||
24 45 84 157 299 582 1135 2162 3951 6861 11277 17571 26268 39002 61652 112657 242756 579095 1420548 3439575 8102595
|
||||
21 38 57 74 91 122 210 467 1155 2840 6683 15001 32365 67738 138540 278114 548921 1064986 2028733 3789476 6933575
|
||||
8 19 49 99 166 247 345 489 795 1610 3796 9226 21579 47536 98494 192930 359562 641469 1101347 1828093 2944924
|
||||
13 32 68 127 228 417 781 1462 2671 4702 7946 12905 20206 30615 45051 64600 90529 124300 167584 222275 290504
|
||||
13 23 35 45 59 104 245 624 1547 3653 8200 17500 35563 69181 130275 241965 454837 889032 1837669 4008880 9069103
|
||||
13 18 24 33 50 93 221 590 1552 3829 8843 19391 41067 85240 175168 358274 730288 1481876 2987401 5972131 11825257
|
||||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
||||
8 28 71 152 288 498 803 1226 1792 2528 3463 4628 6056 7782 9843 12278 15128 18436 22247 26608 31568
|
||||
2 -3 -2 20 86 241 589 1370 3115 6958 15253 32753 68782 141126 282900 554641 1065785 2013448 3754005 6938327 12772443
|
||||
8 8 -1 -29 -91 -197 -333 -435 -345 303 2402 8180 23048 59530 145226 338410 757762 1637618 3428041 6971393 13805807
|
||||
25 40 71 134 245 417 659 984 1442 2209 3797 7534 16663 38852 91816 215490 497315 1122518 2469919 5287326 11001021
|
||||
24 36 54 96 192 399 831 1704 3396 6522 12024 21276 36204 59421 94377 145524 218496 320304 459546 646632 894024
|
||||
-5 -3 0 5 27 110 355 969 2345 5199 10832 21665 42319 81683 156661 298762 565880 1064795 1998131 3769177 7221916
|
||||
20 39 64 88 98 79 29 -13 69 503 1659 4090 8641 16751 31174 57485 106922 201351 381434 719436 1338532
|
||||
9 26 43 56 69 113 292 872 2425 6031 13527 27773 52881 94324 158808 253751 386169 560720 776603 1022950 1272285
|
||||
-2 -6 -8 10 86 287 734 1656 3486 7012 13596 25474 46150 80897 137378 226400 362814 566574 863968 1289034 1885174
|
||||
-6 -7 3 42 139 350 790 1683 3432 6711 12581 22632 39153 65332 105488 165337 252294 375813 547767 782870 1099143
|
||||
10 12 25 75 201 455 898 1591 2587 3943 5792 8557 13497 24070 49367 112747 273115 675713 1669042 4064338 9691456
|
||||
11 11 22 47 90 164 314 668 1529 3521 7802 16357 32384 60786 108782 186650 308615 493895 767918 1163723 1723558
|
||||
12 12 22 61 149 303 533 838 1202 1590 1944 2179 2179 1793 831 -940 -3800 -8080 -14166 -22503 -33599
|
||||
6 29 65 123 230 439 837 1553 2766 4713 7697 12095 18366 27059 38821 54405 74678 100629 133377 174179 224438
|
||||
-5 2 13 22 19 -10 -82 -207 -352 -353 260 2569 8758 22849 51755 106730 205305 373808 650575 1089968 1767325
|
||||
25 43 75 135 246 440 764 1306 2262 4070 7648 14810 29044 57125 112717 224571 454763 937541 1958001 4103569 8542006
|
||||
20 27 29 18 -21 -116 -301 -571 -753 -215 2708 11746 34424 84806 187656 384517 742318 1365239 2410695 4110442 6797961
|
||||
28 56 113 214 387 685 1205 2128 3805 6925 12813 23938 44815 83763 156604 294617 561270 1085954 2128813 4199674 8267127
|
||||
3 11 19 27 35 43 51 59 67 75 83 91 99 107 115 123 131 139 147 155 163
|
||||
16 22 25 25 22 16 7 -5 -20 -38 -59 -83 -110 -140 -173 -209 -248 -290 -335 -383 -434
|
||||
17 46 92 156 243 380 643 1200 2393 4915 10199 21248 44360 92691 193674 404589 845141 1764532 3675990 7618200 15646565
|
||||
5 23 62 139 281 543 1047 2052 4068 8043 15704 30263 57977 111583 217564 430738 862051 1729007 3443254 6756899 12998645
|
||||
5 6 13 33 83 196 431 902 1858 3872 8237 17722 37904 79344 160881 314223 589739 1062794 1838981 3055015 4869649
|
||||
21 39 72 145 299 592 1106 1971 3418 5879 10177 17908 32225 59414 111963 214427 414671 805855 1570414 3069167 6021443
|
||||
12 22 39 81 189 449 1030 2249 4676 9302 17822 33142 60321 108356 193645 346944 627879 1156029 2178028 4211058 8343188
|
||||
2 9 41 110 239 484 980 2034 4304 9141 19249 39957 81621 164010 324008 628617 1196110 2229297 4066273 7255760 12666283
|
||||
11 20 50 118 251 485 866 1458 2363 3758 5954 9482 15211 24503 39410 62918 99243 154184 235538 353582 521627
|
||||
7 -2 -16 -38 -68 -102 -139 -199 -356 -796 -1911 -4410 -9318 -17446 -27227 -28206 16213 211334 830958 2541314 6883432
|
||||
25 34 44 63 109 217 445 873 1582 2600 3823 4993 6005 8235 18431 58333 186163 541390 1433202 3508147 8056737
|
||||
22 31 55 107 200 354 617 1108 2089 4072 7966 15268 28301 50501 86754 143783 230584 358909 543793 804121 1163230
|
||||
-4 1 20 61 138 273 495 836 1324 1973 2770 3659 4522 5157 5253 4362 1868 -3047 -11440 -24647 -44326
|
||||
26 51 98 174 298 523 971 1896 3796 7611 15084 29440 56668 107887 203553 380634 704358 1286739 2314822 4092474 7100598
|
||||
28 52 98 193 377 697 1196 1897 2782 3766 4666 5165 4771 2771 -1820 -10315 -24416 -46280 -78590 -124631 -188371
|
||||
3 11 24 61 165 425 1023 2315 4948 10006 19169 34862 60368 99882 158494 242110 357353 511533 712838 970979 1298623
|
||||
5 15 53 147 346 734 1449 2700 4766 7957 12530 18600 26207 36006 51812 88055 189285 477498 1260375 3266770 8137126
|
||||
4 7 13 23 52 140 362 836 1741 3392 6491 12809 26807 59168 134039 303207 672818 1452161 3040389 6177303 12200838
|
||||
-8 -3 22 78 175 320 517 781 1199 2112 4564 11295 28799 71422 169312 383553 834506 1753964 3579140 7117715 13828691
|
||||
25 33 33 19 -10 -46 -75 -91 -116 -205 -381 -359 1302 9515 38559 126226 365970 976291 2443528 5803537 13177521
|
||||
26 41 56 71 86 101 116 131 146 161 176 191 206 221 236 251 266 281 296 311 326
|
||||
0 4 10 24 63 170 440 1058 2350 4848 9370 17116 29781 49686 79928 124550 188732 279004 403482 572128 797035
|
||||
4 3 6 14 22 25 43 170 654 2033 5393 12885 28748 61258 126333 254163 501624 976195 1883076 3618592 6953490
|
||||
22 33 42 43 44 97 343 1086 2929 7033 15611 32876 66900 133364 263271 518834 1025692 2036469 4052068 8045173 15858136
|
||||
18 30 39 49 73 146 364 977 2576 6439 15166 33887 72656 151295 309176 624662 1252945 2498224 4949126 9729671 18960358
|
||||
10 26 62 127 223 344 474 591 705 997 2198 6470 19248 52808 132800 309727 678524 1411248 2810806 5398157 10052261
|
||||
9 24 48 88 157 282 528 1047 2177 4658 10117 22122 48348 104795 223662 467634 955421 1907256 3726322 7145624 13494603
|
||||
2 1 10 48 139 312 601 1045 1688 2579 3772 5326 7305 9778 12819 16507 20926 26165 32318 39484 47767
|
||||
14 26 53 104 199 384 750 1457 2783 5252 9944 19154 37646 74842 148395 289719 552188 1022870 1838831 3209228 5444609
|
||||
17 16 25 67 174 387 756 1340 2207 3434 5107 7321 10180 13797 18294 23802 30461 38420 47837 58879 71722
|
||||
4 6 24 75 184 389 759 1450 2843 5837 12411 26626 56327 115965 231261 446985 840062 1541700 2774406 4912701 8580026
|
||||
9 26 64 127 219 343 497 667 817 876 722 163 -1085 -3423 -7397 -13729 -23351 -37442 -57468 -85225 -122885
|
||||
18 47 94 168 291 509 904 1620 2941 5492 10671 21464 43866 89277 178551 348989 666692 1248617 2301796 4191988 7561173
|
||||
25 47 95 183 325 535 827 1215 1713 2335 3095 4007 5085 6343 7795 9455 11337 13455 15823 18455 21365
|
||||
9 22 35 48 61 74 87 100 113 126 139 152 165 178 191 204 217 230 243 256 269
|
||||
16 26 40 58 80 106 136 170 208 250 296 346 400 458 520 586 656 730 808 890 976
|
||||
14 18 23 30 40 54 73 98 130 170 219 278 348 430 525 634 758 898 1055 1230 1424
|
||||
22 47 87 152 259 441 761 1333 2355 4160 7307 12792 22603 41153 78748 159440 337800 732977 1594851 3427508 7211535
|
||||
26 46 78 143 272 515 964 1789 3288 5964 10671 18936 33722 61281 115612 228819 474022 1013362 2193352 4725041 10009284
|
||||
23 47 81 125 179 243 317 401 495 599 713 837 971 1115 1269 1433 1607 1791 1985 2189 2403
|
||||
19 44 86 153 270 505 1009 2065 4147 8013 14899 26953 48180 86441 157631 294374 563979 1104929 2199278 4412142 8851878
|
||||
27 42 71 143 303 613 1153 2035 3460 5871 10286 18936 36386 71384 139766 268846 503841 917024 1620465 2783413 4655593
|
||||
24 41 73 128 210 319 451 598 748 885 989 1036 998 843 535 34 -704 -1727 -3087 -4840 -7046
|
||||
-7 -15 -19 -17 -12 2 68 308 979 2543 5751 11741 22150 39240 66038 106490 165629 249757 366641 525723 738344
|
||||
7 12 36 98 227 462 852 1456 2343 3592 5292 7542 10451 14138 18732 24372 31207 39396 49108 60522 73827
|
||||
11 25 48 89 153 236 320 368 319 83 -464 -1485 -3187 -5826 -9712 -15214 -22765 -32867 -46096 -63107 -84639
|
||||
8 14 30 79 187 374 638 927 1094 828 -455 -3799 -11053 -25524 -53195 -104919 -200212 -373550 -684440 -1232997 -2183333
|
||||
9 28 53 84 121 164 213 268 329 396 469 548 633 724 821 924 1033 1148 1269 1396 1529
|
||||
15 29 58 121 257 543 1139 2382 4963 10251 20886 41850 82327 158757 299574 552284 994087 1748873 3017478 5136931 8701877
|
||||
-7 -1 11 31 77 197 481 1072 2181 4129 7487 13484 25034 49038 101091 214393 455493 950327 1924467 3760853 7075295
|
||||
-5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25
|
||||
-7 -8 -10 0 61 264 808 2102 4937 10772 22217 43862 83713 155717 284373 513702 925934 1682313 3113525 5917809 11583494
|
||||
2 0 -7 -16 -12 38 191 534 1190 2324 4149 6932 11000 16746 24635 35210 49098 67016 89777 118296 153596
|
||||
13 21 32 55 115 259 562 1133 2121 3721 6180 9803 14959 22087 31702 44401 60869 81885 108328 141183 181547
|
||||
9 18 48 119 260 518 978 1794 3234 5749 10092 17559 30554 54009 98935 190916 389291 828028 1798244 3906903 8369100
|
||||
8 22 51 103 183 293 432 596 778 968 1153 1317 1441 1503 1478 1338 1052 586 -97 -1037 -2277
|
||||
6 16 50 134 314 659 1265 2265 3848 6287 9984 15580 24280 38746 65263 118441 230546 468730 965038 1966202 3912990
|
||||
16 39 76 132 223 384 673 1171 1978 3205 4962 7342 10401 14134 18447 23125 27796 31891 34600 34824 31123
|
||||
10 17 28 46 90 208 501 1174 2638 5695 11846 23770 46030 86070 155575 272274 462274 763021 1226992 1926230 2957842
|
||||
20 36 67 120 206 358 672 1395 3112 7132 16249 36172 78103 163236 330419 648963 1239736 2309436 4205547 7503272 13141120
|
||||
16 33 53 67 61 16 -78 -183 -129 558 3009 9739 26128 63370 144182 313540 658314 1342251 2666789 5174343 9819879
|
||||
13 17 21 40 106 272 616 1245 2299 3955 6431 9990 14944 21658 30554 42115 56889 75493 98617 127028 161574
|
||||
10 20 41 94 213 464 978 2003 3981 7668 14348 26259 47469 85632 155317 283877 520928 952044 1715507 3016640 5125441
|
||||
-4 -6 -2 16 72 221 564 1263 2556 4772 8346 13834 21928 33471 49472 71121 99804 137118 184886 245172 320296
|
||||
0 4 13 33 74 157 326 671 1375 2805 5674 11308 22059 41912 77341 138476 240650 406402 668019 1070707 1676488
|
||||
16 34 66 125 241 471 903 1663 2947 5109 8845 15534 27854 50938 94712 179032 345723 687730 1419893 3047749 6758676
|
||||
6 28 60 100 153 244 445 932 2108 4860 11071 24608 53201 111996 230261 464071 920475 1804042 3507549 6790264 13129978
|
||||
7 29 68 130 237 445 877 1780 3613 7175 13792 25618 46221 81943 145280 263148 496108 980618 2017113 4245291 8979258
|
||||
9 11 15 16 20 72 300 982 2645 6215 13280 26652 51702 99534 194211 388433 796263 1659636 3481287 7287877 15148046
|
||||
-1 11 34 73 133 216 318 441 648 1204 2865 7406 18542 43561 96420 204128 420762 859094 1761789 3658468 7702212
|
||||
12 34 72 130 208 309 449 678 1131 2146 4523 10069 22697 50543 109858 231849 474214 939874 1806386 3370764 6115982
|
||||
19 23 27 31 35 39 43 47 51 55 59 63 67 71 75 79 83 87 91 95 99
|
||||
3 6 16 37 73 128 206 311 447 618 828 1081 1381 1732 2138 2603 3131 3726 4392 5133 5953
|
||||
4 3 15 53 130 259 453 725 1088 1555 2139 2853 3710 4723 5905 7269 8828 10595 12583 14805 17274
|
||||
19 38 64 107 192 361 683 1285 2434 4725 9470 19464 40478 84190 173982 356414 723833 1458723 2920749 5818959 11557206
|
||||
-4 -9 -15 -24 -29 -2 119 461 1296 3215 7455 16452 34707 70066 135529 251717 450140 777423 1300661 2114088 3347259
|
||||
24 41 63 89 123 187 352 805 1986 4859 11425 25635 54903 112442 220659 415917 755333 1327550 2273056 3828714 6431712
|
||||
10 14 25 52 112 230 439 780 1302 2062 3125 4564 6460 8902 11987 15820 20514 26190 32977 41012 50440
|
||||
5 9 30 88 223 518 1132 2343 4601 8591 15306 26130 42931 68164 104984 157369 230253 329669 462902 638652 867207
|
||||
-4 8 35 77 134 206 293 395 512 644 791 953 1130 1322 1529 1751 1988 2240 2507 2789 3086
|
||||
12 15 32 80 197 451 940 1782 3097 4986 7515 10715 14612 19304 25105 32779 43890 61297 89826 137154 214943
|
||||
8 27 57 116 236 463 857 1492 2456 3851 5793 8412 11852 16271 21841 28748 37192 47387 59561 73956 90828
|
||||
17 39 70 123 232 465 948 1910 3761 7214 13472 24547 43889 77697 137546 245226 440843 795256 1428293 2536897 4448110
|
||||
6 25 49 81 138 258 514 1045 2123 4286 8581 16999 33314 64915 127152 253782 521352 1103663 2388049 5213473 11340118
|
||||
15 22 48 108 222 431 826 1607 3209 6554 13507 27623 55262 107123 200271 361049 630542 1077985 1836685 3197221 5833573
|
||||
9 10 13 14 11 14 57 214 641 1713 4411 11251 28247 68675 159767 353925 746617 1503812 2902641 5389948 9664531
|
||||
19 30 45 73 127 228 408 724 1318 2589 5582 12746 29268 65253 139091 282431 547269 1015752 1813403 3126583 5225125
|
||||
16 20 29 55 129 311 712 1553 3307 7003 14827 31254 65116 133287 267071 522905 999563 1864490 3391876 6014067 10385116
|
||||
2 -7 -23 -41 -38 37 273 807 1834 3617 6497 10903 17362 26509 39097 56007 78258 107017 143609 189527 246442
|
||||
15 22 29 41 69 142 334 816 1954 4492 9890 20944 42922 85648 167321 321469 609457 1142602 2120483 3895851 7082139
|
||||
-1 -10 -21 -18 40 232 698 1683 3612 7213 13728 25306 45799 82489 150000 279284 538074 1076412 2225283 4704589 10050857
|
||||
-4 -10 -18 -28 -35 -18 87 447 1444 3852 9073 19389 38127 69546 118134 186844 273596 365122 426928 387786 116745
|
||||
1 13 37 84 190 444 1033 2304 4840 9544 17725 31197 52476 85390 137021 223308 383639 715667 1452493 3123430 6871382
|
||||
-4 -2 10 35 76 136 218 325 460 626 826 1063 1340 1660 2026 2441 2908 3430 4010 4651 5356
|
||||
11 7 -1 -12 -25 -39 -53 -66 -77 -85 -89 -88 -81 -67 -45 -14 27 79 143 220 311
|
||||
16 24 27 30 51 126 327 799 1815 3834 7516 13592 22403 32809 40023 31750 -18103 -158498 -471154 -1071166 -2065238
|
||||
4 21 58 122 227 408 749 1434 2836 5683 11399 22831 45762 91910 184594 369052 730792 1427817 2746864 5201140 9699217
|
||||
16 33 63 118 209 342 516 733 1051 1749 3734 9417 24442 60908 143137 317692 670346 1354185 2635169 4964488 9091191
|
||||
11 20 38 69 119 197 312 472 701 1108 2076 4697 11669 29001 69050 155648 332375 675404 1312794 2452645 4423163
|
||||
10 14 18 32 96 301 813 1907 4040 8034 15525 29998 59020 118782 242925 499187 1020334 2061362 4105208 8057644 15603992
|
||||
7 20 41 70 104 142 207 402 1035 2880 7693 19179 44724 98427 206472 417101 820287 1588368 3061397 5924796 11570032
|
||||
4 16 46 109 232 472 956 1952 3994 8110 16239 31970 61792 117108 217337 394505 699808 1212716 2053276 3398363 5502720
|
||||
26 39 56 82 121 184 315 656 1594 4068 10170 24277 55162 119964 251726 513673 1025774 2012673 3886936 7387644 13801107
|
||||
3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17
|
||||
1 6 25 73 167 341 680 1377 2814 5665 11015 20479 36279 61179 98065 148758 211323 274636 308233 244417 -51845
|
||||
7 29 77 175 369 743 1445 2726 4995 8893 15389 25901 42445 67815 105797 161420 241247 353709 509485 721931 1007561
|
||||
22 35 48 61 74 87 100 113 126 139 152 165 178 191 204 217 230 243 256 269 282
|
||||
6 1 -4 -9 -14 -19 -24 -29 -34 -39 -44 -49 -54 -59 -64 -69 -74 -79 -84 -89 -94
|
||||
11 36 79 151 269 457 759 1277 2247 4166 7983 15367 29065 53363 94663 162189 268835 432168 675599 1029735 1533925
|
||||
8 4 -8 -27 -34 26 266 885 2220 4879 10095 20601 42610 89951 192129 409116 857116 1751451 3475128 6684512 12466550
|
||||
21 48 95 172 291 470 745 1193 1979 3471 6526 13143 27827 60277 130556 279024 585537 1206562 2446161 4889006 9643099
|
||||
16 25 43 93 225 531 1171 2431 4846 9450 18274 35317 68393 132584 256690 495465 953348 1831239 3518957 6776005 13077649
|
||||
17 32 50 83 153 296 571 1074 1957 3452 5900 9785 15773 24756 37901 56704 83049 119272 168230 233375 318833
|
||||
15 41 92 173 294 480 788 1338 2379 4446 8722 17800 37143 77674 160140 322316 631027 1202867 2241168 4103331 7423512
|
||||
10 28 70 157 328 649 1220 2177 3692 5989 9418 14662 23194 38152 65860 118292 216854 397946 720862 1278691 2212996
|
||||
9 22 54 108 197 357 667 1290 2559 5148 10391 20847 41279 80390 154106 292254 552762 1052003 2028105 3968007 7851354
|
||||
-9 1 20 46 95 223 555 1321 2899 5865 11050 19604 33067 53447 83305 125847 185023 265633 373440 515290 699239
|
||||
9 26 71 162 317 548 866 1325 2149 4001 8463 18793 40994 85147 166798 307943 536900 886355 1389742 2079103 2994882
|
||||
28 41 59 93 169 339 690 1356 2547 4618 8210 14504 25638 45346 79887 139341 239358 403455 665965 1075751 1700807
|
||||
-2 9 47 139 329 683 1301 2348 4137 7328 13358 25311 49614 99285 200148 402908 807231 1611069 3213546 6430795 12946438
|
||||
19 43 90 174 320 568 972 1594 2493 3709 5242 7026 8898 10562 11548 11166 8455 2127 -9494 -28538 -57660
|
||||
12 12 13 26 66 155 333 677 1328 2526 4653 8284 14246 23685 38141 59631 90740 134720 195597 278286 388714
|
||||
8 31 65 110 166 233 311 400 500 611 733 866 1010 1165 1331 1508 1696 1895 2105 2326 2558
|
||||
10 27 69 153 308 595 1155 2299 4654 9379 18465 35133 64344 113435 192895 317295 506386 786379 1191421 1765281 2563260
|
||||
8 28 59 101 154 218 293 379 476 584 703 833 974 1126 1289 1463 1648 1844 2051 2269 2498
|
||||
5 22 59 130 264 522 1029 2034 4008 7798 14892 27949 51974 96999 184112 358605 717667 1466714 3030153 6262196 12835776
|
||||
21 25 31 54 123 285 609 1190 2153 3657 5899 9118 13599 19677 27741 38238 51677 68633 89751 115750 147427
|
||||
12 13 20 45 102 210 414 844 1841 4201 9636 21638 47071 99020 201708 398665 765810 1431701 2607932 4633523 8038172
|
||||
24 38 52 66 80 94 108 122 136 150 164 178 192 206 220 234 248 262 276 290 304
|
||||
23 34 41 44 43 38 29 16 -1 -22 -47 -76 -109 -146 -187 -232 -281 -334 -391 -452 -517
|
||||
-10 -2 34 116 266 512 899 1528 2651 4869 9519 19415 40283 83642 172850 356227 735942 1531350 3215650 6804080 14446002
|
||||
6 18 37 58 86 150 335 844 2108 4981 11097 23545 48168 96068 188401 365462 703738 1347664 2568293 4870656 9187810
|
||||
4 5 25 75 166 320 596 1144 2313 4873 10491 22771 49495 107288 230943 491377 1029170 2115773 4263265 8418391 16301188
|
||||
1 -8 -10 15 110 361 933 2132 4500 8944 16898 30544 53235 90606 153713 267462 491595 969324 2033158 4422897 9713628
|
||||
18 33 59 97 148 213 293 389 502 633 783 953 1144 1357 1593 1853 2138 2449 2787 3153 3548
|
||||
@@ -0,0 +1,49 @@
|
||||
INPUT_FILE = "input.text"
|
||||
|
||||
def extrapolate_value(line: str) -> int:
|
||||
|
||||
initial_values: list[int] = [int(v) for v in line.split(' ')]
|
||||
|
||||
values = [initial_values]
|
||||
|
||||
# Loop until last thing is all 0, 0, 0...
|
||||
while len(values[-1]) != values[-1].count(0):
|
||||
new_values: list[int] = []
|
||||
|
||||
current_row: list[int] = values[-1]
|
||||
for value_index in range(1, len(current_row)):
|
||||
new_values.append(current_row[value_index] - current_row[value_index - 1])
|
||||
|
||||
values.append(new_values)
|
||||
|
||||
# Now we can extrapolate our new values, starting from the bottom
|
||||
for row_index in reversed(range(0, len(values) - 2)): # -1 because we know the last row is all 0's
|
||||
current_row: list[int] = values[row_index]
|
||||
row_bellow: list[int] = values[row_index + 1]
|
||||
|
||||
values[row_index].insert(0, current_row[0] - row_bellow[0])
|
||||
|
||||
return values[0][0] # Return last value of the first row
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
with open(INPUT_FILE, 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
sum_of_values = 0
|
||||
for line in lines:
|
||||
extrapolated_history_value: int = extrapolate_value(line)
|
||||
|
||||
sum_of_values += extrapolated_history_value
|
||||
|
||||
print(f'Sum of extrapolated values: {sum_of_values}')
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
0 3 6 9 12 15
|
||||
1 3 6 10 15 21
|
||||
10 13 16 21 30 45
|
||||
Reference in new issue
Block a user