refactor: python abandoned as not required enymore and rust project init

This commit is contained in:
dqnid committed 2026-10-20 13:19:25 +02:00
1 parent ac13078bd0
commit 1de8cf22e9
27 files changed
+20 -21

No files matched your search

+21
View File
@@ -0,0 +1,21 @@
DATE := $(shell date +%_d)
install:
echo "Installing dependencies"
pip install --upgrade pip
pip install -r requirements.txt
save:
pip freeze > requirements.txt
run:
python src/main.py $(DAY)
today:
python src/main.py $(DATE)
test:
python -m pytest -v
setup:
python -m venv venv
+6
View File
@@ -0,0 +1,6 @@
iniconfig==2.3.0
packaging==26.3
pluggy==1.6.0
Pygments==2.21.0
pytest==9.1.1
ruff==0.16.4
+1000
View File
@@ -0,0 +1,1000 @@
76xkqjzqtwonfour
sixthree8sixjxjqsjgjgp
38bgcczgtninefivefive
sixthree4eight
nhp3zdc
279four
vzxf4tqrljgxmthreejcr
bbm4twoeight8oneone3one
nineninesix6nine
fourseven5seveneightsvtkcjdrfour
3mkmnpsix5ggfive7
twotwoqbv5qrpnfl7seven8
56snzkgsone2cxtpvvh
threenine3
9dd3twocnrfljs58
mqtrqnrgrcxbvpgdsmsqhmxlxx4
nine9mdxzlrbmrxceight94eight
jtqsrmmbonentvmnxbdsseven4
ninefive8fjnjj
nine53
33
ftjhckeightfourvkbd3eight9
rhpnppsfour7
95ht1x
fivezqfcvmgdxb5mfvtnlfkonesix
ninefgxxltpkszdnb89ninefivebdbdhckhb
9vtglcdvkgcgrvm4sevenrhppknqfvhldfgqhpgdqfv
852bfkjmccknlqreight1
fiveone8threethreezsfpzsrbb9fourfive
1one58eightseventhreeqfpxcpv3
11fg1
tbrcgcqj2three9sixeight1five
seven2m6
eightzhqvdrjknb622btfrs41seven
67nine8
3one8ncctmbsixeighttwonegb
7fivefive
m5sqxstbxp9xx
1onejjz7gcddeightnkfqgxbbtl1
3jrjkxvhctzmkmqccrmbrvlcvsjnqjjb
ndjfls337six2three87
bconekhvtkblfour2n5dq2
922twonmxfeight4
7two59xvmzc2two3czdn
ninesrdsq99tskfpfpdqqfive6
tbzgvh4ninesixjzdtxhbpsjlbkr62
5fourthreebdpnqzbeightjpchone
8ktdbjtvfvkseven
3zhjbjqbpff
6hh7twofourcvmpfjp
sqfzkmrponechzzzbhz34one
jkdrxxbrn43qbjllcfbptddb7
jdjbq1lcsz5
fivehlpltzfrzfznxrpnfourmhpkjsjzz971
gjc5qbgrhlj2one9
tdn1676spccqqjc4eight2
one2966lfourldlnxmzqdplzptp
qlkjthree5eightdztseven
512ninexrqpvktwoner
lkgqvlgdqbjhkxp58one7six3
4two1one7zxxtvxtdvpgfrjh56
4qbbmlpmjx5fiveninepkcnqgqgdjsrzkgxjsxnkqnd2
1jjfive7xjfmdfvnz2
fourxbfsdqlmmmnh9
c5
z4s8gdmkbkhbhd18
threevsnkmbrcgdsvdkqeightqstlvvdtlvp4seven
7eighttwo64nlgxcbthpbgnbf
1mvbvrx
drhgqkfrln2
three1sixthreelvjthreeffptnm1
qzlqvjz8ninefive
eight23n1teight2
31twoqqbmz88
68fivesixqzfcfsjjzxfiveeight6
sqpfonezdtpqrfbhzgjmgv7
4mcmtqnonexkdpnrcfkfxhq5one
hhrldnffive7six6onefivezllprrncczseven
5dfxsn7hjgztpeightqnnninekjxlzdv
vtwobjxdfrkrzeightfxtlkct4
seven4fiveksnsix7128
onenfzxhpc7gxthree
jgtwone321fourkjg3
dphnmspctdfour3
four91zmlpbxchmsixpn
9eighteight8pgvrngxszvnlnzlzmbqgs1
fgznzclmcrjhtbdjoneone9
fttdr4five8vmxrlnr
1nspvnsrdddfhjjdcvltjl
7fiveone8nshjlrxgkeight
57eighteightsrgvcnbncv83
5xnine5blgjqdjmtgx3
6rjzh487eight9nndgvj7
2seven2bvqlftkcplffivefour
x8
vdbxxb2six4skntkvfcgdfcp2cnvhr9
7hmqxgvdfgmxhfzfxfour
eight92jckrxshsrbtwophbfvnb
sevenxzjc6
drflhlxphzspnnzdbcfbpcbtddvd8three56
fournjhqnxrkjpvjssl9
81333
five1gmccznfseven8xlzvlrjsbffour1
6dlbklsddnqhtwotwo2
m27six
5mflrcmbbqnztndxtwoonekcsevenone
m24njqdqxrjmn1cjprdzdcntwoldzsgfkpvxbrnrg
ngjrvdd3onezcklpsfoureighteightwoxg
tkrzphtvthreeeightfsxbbdtone762svzt
khqtnrppp81183one
onetplmtp2zbrmbnrzt9sixknkrblt
662
fivekhclmzchthree3
5fhgcfzvss
zhgsq2hfbzjxgxgrxvhdkppbdljk
zqd9stvrrddk
7kthreesix7
46six8eight
hthpnnghjglhhmg8seventwo86seven
5ffr8
fbdxn76twofourlfdxxbgvmd98five
eight4mjjn4ninelgpc5qnxgneight
oneszfjdcxzc2five
4nzjqv3six
qtnfiveeightkjhhkckrpcdnine9
6eightggsddqcjhptp9tmhconelg
eight45eightfour87
25523
two54nine2mnxszzxeightqf
2kbqpv2sgcskg
4three5njdpbnine
9rdmninejbbdgtffiveseven6
tmnoneightdlrtninenines847bhldgkpdm
nine762gkknhhfvrbmck82
three9xdbnxvnvqsvjmnzzdfoursmrspxxrdkgsv
twofour73zjj
4hvdbthree1four
1threeoneone
2576
ztgbfpsznntnpl3six
1ctllvsztwo6
2eightsevenbldhvhctpck69ninefour
nzdrfive4zsbrshcmqm5fkzzfptxntgzffthzhxbffskz
1nineqdmlfourlsfn94
lqvfhgqkbncvzrnptwofourfivefour42jpg
92dtmcpzskzp1
2djkdgsrrtcnklpxfmfrbcjmnddqntn5six
2nzxgtd75one4four2
hbvjjrfd74five1six56
zcnxmgvmhfsevenxxzkxnine1fxxpmkthreejfppctls
2sevenqsrdvchgpfdjfjpld
6njl7fivemkkxlhkmgm1ndlgjbpjt
jneightwofivetwo9eightgjtnrneight
zfvjfive3gfourfiveeight
five71zgxk8chrfzdzjpxxdkqfour
zbx78sevennsninethree7
rrs8one2jtznfcgdsfxcmkznpptlglnmf
nldfdgpd5seven6tjg4fourddhfg
65sevennlckct93
qjhgdqgpcfivevleight63two
4jqrzmthree
5llfourfourlvtvtx8vjksjlnrchrkthree
dcpdbsvsshgklkronefourqnsevenf6eightwohf
6ctlhskqqch
threeseven2mpvsdlx
1hnjrxsrflxjtlzqrzvpjsjjjpz6
nineninervqqmnsevenjtlkfvzpdztwo8three
3bmthsgsix23sevenzvkszfpfq
6sixeightfour1bnhvpsv
3592nine
ttz117ninesix
bgtmckkpq5sevensix
354nine
7spsevens2
512htbtgxkzdvqtqg
fhkbrst1
6cr2xsevenchdvgqqht
cmbcdqkjd1xffkggmthree4chklqone1
gsevenqnfpjzgbv7
four2njkqbfszj
9qblmmzbtwonkzr
sixsixeightgnflxglkttxk2
nine3vcfghmgm
two7lgnmpnz87nqrqgczrt
klvsx15
rrkltqfttf8two2rzzgjbrffxvcbseven3
5sixctgqr31
qkhjklpztmkffql45seven213
pjstvthree4lrmrznbvdseven
sixvnxfltnqv9fpbfbmninesix
pnvthree4threetfjqnvxbxvxb
two1nine
twosix1ninehkqjtkn2
8pchlzgsixonevrzmqgbf
fxrccmfourthreesix9nineseven
seven929two3zgz
4four386nine
six8three75onehpgsnpjbczninevvcszkr
onefive6eight5
foureightfour34
six6mndfhgcjzjreight7sjbv4
9dlmsnlgj2
seventhreelmkn5sixjllfqfourlpznlhv
zfgvmzgv95seven
ppdsbnxxx1four
vvfnvbkvtzfourfour675nine8
2fourthree1
eight4pqdpjdzbmn31
pksvg9bzzdcgktgstwosevenvnvftzblfive4eight
seveneightonethree1three
nine69dkv8oneoneone
72phzthreexqlhvsqfoursixninefive
2ninexqpplhqclpl5
1nineeight
7nineonefour9two3fournine
8mkzqpnnlqljrfive
9nine5foureightthreegdbcrjhnthree5
sixt69
rzfg5
vqdb8bc7mftdt
ngzlhznbtbone38srxvrfrjxsxkglvrpvqgm
9xgrjgq7eighthnbmkbdsdnine4qt
5dfcrkhzbvfourkkkqjfcb77sevensix
loneightfive8seven3
7ncqhjdhzqeightnine
bsngnjfcone8bhd49tzfdb
deightggcb27four41lfrdbctl
3sevenoneninentjdsxmsixlpqgb
threernmpfptnmcmmrmlngppmbtwofour7sevens
eightjxxlm86
twoninefmdtnk6rjkpdqzdzfiveninecrlgjrvctgtrrdkfkm
3threethreeonefive
three8thq
bfccdtfmtvhkhp5fourdcgszjgcseven2
8xcxscl
sixzvdbpqcheight3twothree5lqtcmjdmpq
nbspfour32lddhpsz9
jgleightcdm9twosllxnzqhjq
2three3sevenfour
jrnineone8qltfvgskbs2244
zmbonemblfourkfjmvntjhvkbk69bnsjzdkxc
vxxlcpslfdzbhm91
fjxhtfnqfive3zpctnfive
smxmdtbtfpthree8lkmvlljdcx1six
5bnine3614
8cdfktkdd8
twosix9
4rxgx895drgvoneqxdvvh
threedljsix9cv5jlkvsmgzgbhnkmmfdpqxgzx
twoone7oneqvqoneonefive6
2tvvmplskcgbxdkzh
gfvffive9six83mhgxkgdprxtwo
2threeeightmnmrtzmdtfivesevenrsmkkslsm7
ztv23316three6seven
eightcvjqlfbh6fourvpgdpgz
1fivefive9
brxmhgnnthreethreeoned2
dgrcgr5xgpnxjbd6ninejsqmgmrvmqz
mtl6three
97bjvklbkpzktckfivenvcmftnnrp4
7fivejmf
six54
jktdhlbjbztpp7gjjc46fmkb
64xdrnfxgccrxkdpfxpnninelbmldlmllknine13
9jbpcbsgk
6hqszplnjk
sixseven1721two44
6threenzsjtj5cfqvdpcpfbcnfpnp9
141moneonepzcvtnjpgnine
7n
8cgglsksnz1sixgkhqseven9
ninescvxnzslj7lldvskqphrqhlsmthreeseven
8twofive3psmxh
4xclmfour3
4sevenxz5onen3sixvgdmbtzk
3cclhckninejkmddqjkj
7eighthxsntjskvdonefour9eightfiveseven
three2six2seveneightqrlcvvczzfcgcm
plxthreefivethsmpqhzfour5
6two3sevenrbscccjhxbd
rdzxlnbxbh7eight67
65four
23mdqdh2
bsrmxvmfoursixgdssplvshdjlnvgf7gt
823jvfour
5eighttwosixjmlthreeqgtlzbpfqhc7
35foursljjvpfour7seven5
nsfourdtgzffvh763
9thtmpjtpsfnine
mkqcz9pmkpgnd
one6xmpjfkpsdcnfghs5
jqzgsf834
twotqpvxjc88659
4onetxvccvkclcqhl6two
kbgzsixfive7one1four4
gbkvfour93fivesixseven66
97pjzlvmonesix
fivenjmtgkjfz7nine3threexsntbqxg55
fivefive5threemfour526
bdpdqklfgxninegsrsixmkqbhq33
twosix9five
nineninenngsevenonegscxlttn7
sevenpllnzvqjlksevensevenjtkone32five
7dhjbnjvzxfdrhc5r3gtxgxgzzx24
kqsct1nzzbxldhfive6
964eight4jp1two
4cds99
twotworcqrpvgtcq3twoffqz8
6sixtwosixvzpzlr
ninebkktjnineone9sixfiveseven
fp6sixrrj3sqncfvzqtkcthree
6foursevenninekdbmqbbccjeight8nxvvnbvcdv
nkzthree9471seven
fivecdtrjone4seven22
twothree6onemvfourvtkrnnvvvbcs
56ninesixmscnd1seven
lnzntzqdeight2foureightthreexjpcprdncd
56zeightz8jfzthgf
eightthreeonegrnine24hsk
hlm185nrphc1
9five5
threegqtxmeight9rfkvqnineqnjxhskndqzf
1eightsix
539tzsgsjhnx7
cxhd32lksevenseven
2qnbljpnjgssbzbhxtcfcxsqjlh5
eights2kpfznvgghqtrmlb
2six2nine
cdrxjsxvvseven4bdljtxffdjhfive
399hvclz
1six18
xlnrghvfmz5qthzss
67rcgjkqckptsthree6twofourztsknx
4qhsh2five67cgkjsnqtfvtwo1
4lghphnh8
1vpvslztbphninezbttbskeight8
9fccbx
2zvsxhlceight
threehlmpkghvpz3cpseventhreetwonsix
lsbttpxhlnqzppm868fourtwo9qz
three17
69513zfxqjvlpfh6mvrr1
threenkchdrkqnfive5nine
two2tcmsnfivekfh6rfhthree
dtthree61stgcdkxqtm
4hldzqzxqd1dcddroneone
5jknllhktmhqjngc
qphxzsgtwozmpcdq2fiveonevz
three15three4eightthreeeight
vckqkjtonexnzrdbm6vsxfivefive7
three6eightsfnslxjnc7fourchtxdvftxpnzm
sixfxrxx2
9crhcfive8tlkr7qmxbcdcqb
6hvjqxjzzsz24bc
fbgsrsqmfv5hpkvlnxsfkpsccprhnv36
mbpmgvmjcmpgxmfive1fxmh4smb4ct
fourvpdcjttndp9qbfclcz6rnrhnkqjgv
onemhqsm69
rrz9
5qfsxdxktfjbdnzcrfvt15eightjmsvhrnks3
rgmvhprvkm3seven
twolxvjhc269tsnpjhvone
fiveeightrsrgxfjxn96
mfourjcxsvss3oneightlxh
sevenqjfg67k49xnqddlvf
hgxhtwo6kbkeight
97fivethree8
ncv228
95vjxzdpvxb6vxxtwo
rsfeightmrcccsvqsdsfxgonenine7
fsvjgqhgxsone64zdkdpghcjbprpzlmjfxsfknfd
xbhbtph8eight
1pdgmtwoslhkrtlfour91
16crzkxrxpxjfourfourfive8
slhmvmsixfrbggqdxfjcllbzn535two
twosdjxhpseven5eighth
6qdrmmvc9bvs
onedljtrk2pvgvqpfkqc2lgslhfd1
ninesevenxfqd4ztxnb7fourseven
fpvbdpjkqfive2tsxb
fglmcrcd9xsnxsxgkzmmgtcjlxlfiveseven
gkgmm5onethree7jn
ztmg3onetwo4
hhbgmpnrh3
188btpjkpdsix3oneightkpl
xbqjpdst9762onethree
4tqcdrzgljs19g8oneseven
ninezs46eight
grkgdppchchpzfive31
298three
2ghmxfjdjcfthreefive
9hrq3sevenonezxrvgxbr
n12kjninelvm
sixfourvgpctkk48seven
sixllxqmndkfcqvcdnssxjthreesixseven46
nine7six
lkcmctcnbeight8364
k2zqvznsrjjvtjtwo
zcxjvpgmllnlxxsonekrgsmqlntzsfxx4
twocgzfcj6nskqj84
rldlhnine5onefourvrstwo
lqfr92eightnsbgrpncdlheightpvktkd
vthreems422sevenninenine
zcmhzlnonerqtnl1zxdjtqqeightseven
8six3ps
blqhvpgt7
6gdf
3jrl54xchxvgclqq
8twosixfournine6ckrbnzr1oneightpp
twonine5three9
kmvmvrznj28eight4tlfourmqtmcgt
prpmhkpg5sixqqkhvjtsmdjlgsxgjnfour
5jfmzsprdmngm2nine
ltzvtgkc5nine1sldgncp
four6fivenine4
hgsjtwo47qg15
twoninesevennpmzshts4
hjkcjjkdqxplmsjxdjphcb77eight6eightf
8six3four2twoeighttwo
tgrh83ninethree3seven
bb6nineseven
trpbxtzfour24skvqhc8
rm4
pqrtvrtfivefour52
pdhtwo1q3
fivefour4
ninevvlfgvbzvdk7hkvsdjf8
two3nlprsnkgfzxbhlfoureight5onepdqgtcjp
one4hdjrvcnlfgpckx
52six6nplcqfvxnf
fzqgdmzdjeight8four
two7zlk
fg16seven8476cvthhjoneightt
ldcmngfninetwo2eight
eightsix8
twojlm2onetjn
3prnfrbng
276onebpks2
fournineeight52
3198hvd64
sixthreejmrl2
zsvmnnfsjbfourfour54sfnlghlv
5six4
6dvrgdfncvd
two4sevenhhvxsljvqtj3
dcmgr7five13
cmrgqdlthreemvcc9six
fivekjsx8eight
vhlvninefourtwotwo4five
vffxj9
pglbr7
rghtnsixfkbnrthreesix8seven
3fivenine5x17
3rdonet2ninexbslcnsevenflqxplkxbs
xbdgjfjttfhlrfldsmeightfour1tfjvcljc
sixrjp1
9sevengnsj
dpmmrqksixeightsmnt58three
2six66ninemnj6qjtvqpzcj
sevenfzgg2six
eightnine9sevenmhvxtbjxnh33
tscsvpdtjzsjmlfvrzceight8eighttwo6
seven193ltgmzczzqqmrrgseven
fourtwovjhqfzlrnine1xmkqcs5fjrcxfssh
83nbqmsrbbfhnjsixvgcbbtmphg
3ccdbzjpkx7nrjnmfljgfour842
threeseven8
foureightpjlj9
ctf5eightjnsvcrlfvz351
4sixfivehqbs16tgqhf
fourninekbvbtrbkl2h8nvflxrlvjdtrhz9
dgpvtwonbspfvtkqfgxsixonefour4nine
fournine15
66tpr6frphqtfgcvpsjctqccbl
foursvfjslmkb3rmxseven
jtqsntfvpbthreejsqqgqnxq7766
bjttrrvl9two
one73three4rffjxsm
fvmmheighttwokmcx7eightlzxcb
3kvkhkrzld7sixtwo
2three3mjqnpjznone2
gfhvmznd8431two5three9
62xdgeightqjgsfggzbrjcfsvmfourn
pdznineeightsevenhxb4
fiveone3sjqvhh
4nineqzrh
lhp5sixseven
2blntmnfourmnn
kcnxhnppzbsstbtvdrzt55three
1gtrkltzfzsixs6
85nsix3threethree
32three
six9fivefive4nineeightoneone
fivektmbvvlzl5
pdhfcjfrtprpqtqdnvnchl5356
one2sevensixsixmhfhsevenzvkrgxsmhd1
snvhxpxsevenc4twofivefour
dqrvvlxrcrmnjkmjpgr8threeshzgnfbcsb92eight
nkpll5nflrcffourtwoeightthreehzjvvdhm
sntlr3rthreetwonzxzlvxxbbnsbkrl6
eight26vhjjz4foureightwojk
five24414lbddfpxnqdxptlzl
dgqdninekmrs81n7x
pfgnp5sevenqpnckfkz8
eighteightgpxhrhprmmfpcp6
hqgxtkckqxvfcxskrhn9
4five8
sevensix5
rpk88gfxxz384brvgtkcqjnine
ninexjk21onetwo1hzdhsm
41hbthnkbl7gssdksjddone5kqkvxzc
jjhmxrb56fd
4kxxtmqjpfivesixone4nffllnkj
8jlkmhmjjfour
281one
qeightwofkzzzkgcspgxp1threeqmjcksr64four
xnbv3
4seven3ktgrjvdfive7five
dgroneightjmcrmplthdrncvld8one
4ninegkxpztlbzs3
1onetwosklsjcmsjh
nine16
8sixtwonine
3qhtzxzqfmh
twozgbcpzvsffthree4
48fkbpfpkzhfpnvmctsjq9
seven2two6zprbpmqdk1
4hhztrv7sixfournine
3threemxlshrpv59clfrt
sevenmqmnine4eight
xg36mlvzsix3kbqttvhtpd
699fourqhbhsdhrflmbfdk
gzjhseven63251
two8twonqplqkq
eightrbsgj21three
sdckkgcvmsjbvn5nine
624onesix
pjdnz7nctxzssf
kl5232rqkdrkd8five5
three53fourthreesixpjm
6sxpnjnqn79nineoneoneeighttwonenf
five398nine
96srrjjvjkpkbmhzdxgpkzszxxbseven
812vjlglflnd
34six9five7threeftcqxtcxxz
4threelpcjptwo
fivefivebldxbxeightjzsixthreefqmgb8
9cmrblfnd4
nine53one
seven3one
tsqrmmlvqjqone43
one5bm1ninefourthree
p882seven
c3eight
3eightsix
4sevenfqdrpdqbjpxdbjdsevenmsfxsmjdtcdhpd
cbeightxkttcgmsmone2nine88
nb7jtsvpggtcrntrbpzjthrsix35
5ninevtv3712
five3two2fivezbvfcvlnkskccj2
six8seventhree14
1eightmkzbxone9nv46
three4one
3njpjstjvzh9xjxnqr
threetwo9sml3
6rmzg6
seven91xbpnine8onefxktwo
ppmpn2oneone
qch5
rjrkk2zqzndfb7chzmtdv
vgkqbtwosix48zrntbhpn
82oneeightmbzvzvjb3four
6hrxnlmsfsngpklbrlrsvcl4
65sevenfivesixvjm
kkkhbdcnxfbfourfoursevenonesevenfour5
68qkcfd4four2
two94twofour
zzmz2jbl46kjnktxnvqrj
982
ninezrj9six
snxrvhctcrvzvfivehldldnjttonerstc4
bsftwonezfhnm5vlsjtnpnzj
onefiven57
seven6vbkrk
5five9
twoseven9
hglskzhzs7fpmmjzvmx9six9
1vsb
4lrhsh
gnln3ccc
four23
threebxljqlxkssmvndjbltcvfc4
fournine6eight2fourthree
4sevenqtsfccrrpdhseven
6sdzjdrfcxmdztrhpxbfshmrstq7fiverrcmtdfxmqphnpfxhkt
jsnbngsppbhgsixeight9xmhkvvqcdjzgplvztspone
rtbrqpgdcmmx9nnjjs8seventhree1
93five21
tss6eight
cpgvone9four
1eightwom
rgrsvtv48857
fptwonesixfivenine2
8xdbvf1zgfiveslb
ninenine3
p637sevenqbbvbpmlgrk
723onethreedhhvgls
four7five91pjlpnbmlfzvhrfhvs7
six547eighttwo7rg
vphlckdvqx3three
four12th
2kqzlthree8
sevenbl22
two68six4four7
lmrbqzgrsm2sixnine
fivexspftvthreezvjtgfbknp9mzslnb3two2
8twofive2
9vbngfdjmp
1qzphhnlbqz76411km
sevenfivethreetdnpmxllmkgnvhdz7tvjv
threectnine1seven
9fone
9sxbxsix6zmqllpzftsftbdf9nine
xninehhxsbzzspctdbpfdscbjq687glqdsqtvqz
threemjrdnvqrk7bvvsgfjfbone17
npntthqz4nine9fourbrdsqgnzlf5
133xqjvmjmpqdkt4
2dnvzgtnl5d9vvjlknxxqfourfive
mtntzxzvkmqr748
foursix6sixfour2vmqzxtzdqbzgmbrggmgtnine
hphqmdsgmvtwo35qnmsqnqnhlkb
flsxtqfxhsevensixgtkdseven6qzvscqbztwo
sixgxbmgchcrksixfivedznxzkzpttsvtzqhkdzrhqnhtwo5
69zpddjrnztqbr
1fourone2four1hfgsrvgtht
1rbr2gpfpdghtwo7ninedzx
4sixfour
9fivebcckvbdnkqhhhskb2
fghbcczsmhnbm1ninexdcpzjknqvfive6
5sevenjtmhs1one
8htpbfhgsdh55one2two
mmxsmst1fivefivesevenfivetwo4
984six6eight96
bhrrjtgdmj4two
seven8three
three3onefour8v
five9qbf8fzlvtsix
nkcmtl16four
gkdlzkfrnteighttworjjmtbrb451
txpkjjztlkth221seven
frtrvninesixlftgsxtxvbdnjmxc7
4mzdfjsxzvs9one6jrjv5
96threecxhhdjkmjhsrgz
one8sixcrchbgpz
grjvxszd1s6
qbxvjggkfrcfivempdck4
7one32jzpxdgstwo3pspjhmg
gsvgpdhthreesixeighttwo5hkncndcmthree
xksmqqsvzthreebjzr1fiveseven8seventwo
mlgjjjhn44
threefour12sixseven16
one2ghggthree4
ninefiveseven8tbldpbcmmvn
jxtxlqcc6twoh2
1xlsjrcfourqvlx9one
twothreetwo5
tmsqz1vrrj72
lcxdvtsl3onesix
fxqbcnpjzeight8seven
scpqzdhss13seven7nlkxmkntk64
fnlcc74
five4lkxcvztwo1two
85nmsjmgvcv
sixbqsxnq4
6fiveeightfiveseven
mbcxhgrjdtdtfpclfxzc1fnvlnz1five
9587sixptttpksnbnzzsrls
1jcqnzffpmrninesevenssxfndgkx
7zffzsjgzbgzzfvv2vnrrfvnclseven
mbghnmthjjfmcxzsixfive44
hklcflkm7four3
fddnsshjxf6twospgtkzzkfsix
sevenninesevenlkrhnzdzxfive6six
55bqeight
5nine6mfbeightsixone1
rjlkpq77
jqeightwofourtbcqvkvvqzcmrbbmzfiveseven59qmtz
ldb2jfqll
4nineftshkg77jtxggdt9four
nine2seven47seven487
8lpctcvhvfivezqcrtrxrsevenqhhtxrdplfbqpr1mjfkcfrrfc
zmlhsn6tfiveseven
djfmdf6
fhcthree5
9sevenbftsixone
four11tprnmdmvczfourgpjx
eightfourninexdchgfblq7
4c5sevendgtngqxzghpxpcs2
xdqcfmhsz3ktf
eightkvhvqgqn88rrftxjzzsrfb
gznfkfbtbnthree1four
273kfrsjbpzbzseven
five9foureightvlpmphnp
1qtgttxninetwosqfffcsfgxdz68psbmvvpmt
nine9fivefcnpbnl6tmbsjkrr9three
szmthreeonesix2bqfqrxkljlseven
jvphjsqzlc2dbzchmronetwo
8sixthree2v9threesixqkqb
fourone3eight6fiveeightrgjmfive
9ppveight
two6vgkdlv73ninesix
44886488
lsjxprxdz58eight32
four95skp
2eight3three9jq7nkftgzn
cssgnvhvnnrlklmmxdfxhtvptwo6fmtmchspb
9five7xnx4hxvdlslgpfourfour
onetwo9six3cpsdjprgkjthcfmkkx
1threeeightqgxvvvgvs1lqrfivegfqqslmc
five7eightfivesix9one29
59eighttwooneone
4s44549fiverhcbmpqgjm
nineffkpxf2
seven8fqsvjnjzphsevenj
eightmpgfxkspplninekqzlplrmmn224twonezxf
mqqqctworfpjkkhninevgh7eightonezdmfrrvv
one31
8nbcjdx3
rdprrrcjjflkxszthreetworvfksix4
one59three
2rhxjrb6kjdpxqbthree6xlzgvk
threexbsvqsseven7cxmggqrnsthree9
gmqxghthreeone7fourvfivefoursix
5nine8
khcnjsfourzxjkvp5zfhpcvv
three3xnbzpmjqsix5
3ninehvdbz43
47ssqq5fourfoursixcggslftbttlpb
2threemdtlrprfzc
2threethree
nine84fczsrqzd7six
fourmrbqh79
gqdhhggdxfive6
d99fphzhxghqt44seven
lldllhmzrskzzbzsixfour6two91seven
3xzjfsppg
7five6nzfpvcpm5
one9mpggcblrpstzpvfffivelkrqvkvkkhtzseven
eightbr3ksix
4eighttwothree2bzfivebn
18twoseven
bdjbgtxdjx57seven
eightthree89two3vmsbxbskclh
lgnbbjxtmgvfsix5three
cgrsfsns653five7
two1sevenkqllxjvqbfvfxnr
jptmclgmdzhndpkbcd9
twosix62threeone2
three5chntgfivegkbzfrvvxkb
5djqstgsrbhl8
9v3
8four9four89
five2nineseven
h3cpsxzx3four2
fivehpzczrl5zxkzkpxcvdkshsfqzxpjqqhdg5
bdfftptqt8kmpbdgsncceightzmtfjphnxqbslplrqxv8
two74tworvzjftxvqzpvx
bpjslrgkbonethreelfsxshjtpfour2kjxgzgv
rqktwopdlvjrrxlgvrfnnine3qonesix
fivefivec4sixgdldnine9
eightz1zzqph
dgmcl5153qtgxlkzgtzseven8three
knkrvlxvjs6svsrj51fourhjbqzq
three96
szxkfqthreethreenine1
9gxtwofourzeight
fninel8
ninevzddbcfhttwo1onesj
mdbg8qxvzfsgmh9eighthpqcrzklheightwofp
78lqjv3fourdthreethreeeightwonlq
fourkkrzcbphdseight8brqjsfsbfktwo
4tnvlcfjqsixql
zd7nbzhclh8
plkrkone2
mksjljks4xfslzzlp
nine22462seven2
gbtwonine93
vkvb6fiveltone2eight2
cnxxhvlcj863sixsevenmckrblvvtbzqbc
nfldnvnxx2eightninexnsbseven
1six6
nine83
one5djxkzxrttqthree8jzqdfvthmtwooneone
gjdj1eight
3fivetwonzflsvgdmgtbz
threetwosixvbssrqxjfvffour3
2ninefivernscgdfrgpsnvtchzfxmdhjfsfivefour
threegsmtcn12
foursmbzsrhnnseven6twodnnjhbthree
62twortpndjsgfgmd
ktxsgdskqtlbnj5one1mxhztxgb2four
threefourfmfxrmnlhninersxz1eight
3jkqdvsevensixhbxfq
slmseven8sndphqlhjgbzhrdrfxzphfvs
6gfvsxprrmg7nzmjkvnm8
34qgtjsnoneqbqrmkz9
2sevendvqvdtjrjrhpfzkphpsixtwozkfg
72nineseven
nsgmfsfive8two
71sixhzsl9sixfnrjntxpv
onennncchq73eight3
vsxbb13cpdpvhnmz2
681
mpgd2
bzh72seven
fiveeight4589jknzbnjlrt57
one3dm4
91nine6mbspjn
bzmztdlkqslzbnghlsxtvfk2
3two12vpl7dkkjjln4
zdmgeight9kfvtpx7nine
7114nine655xxx
332
six183fourfivelstnlsvgvx
zsxbg9tbpsnbvzhj6eight
nqqctrzlpggjrrrlzdfkjthree2
fivecsvzxptmhk8
d7hssmvk6one
kngdgssixeight1four3
sevengptvbjtkbxsdgzdeight8twop
fourlmscbhkkfour89kflkf
7bxl6mcgzfxv
klkqmz29
kmszrdfour2ppkkdlffivendgcfthree8
kcvpt7
sdjttwokhtzdksix6
eight83four31nine4
4eight4vxctcsgzf31qhjptxhfrjtl
dhhfmbhtst6ninehmb2
1ninesevenkhfmgjjltgkrgxvm48cxtzzvhn
dczpdbfl45jcpmckczpssnqn2six7
6tsmftwokdgltlkzqdqttflqhm
1qthkhrrjxvbkngldslmzp2
2sevenr6zzcvkqgkn93
1fivec1x2gbdkqvkqpsix7
3znplrfxnrq
ninetwofiveseven44bsn
onefive9zqknglr8thzhx
sevenfourcts5lttdprpg8three9seven
seven9vfjqdfkg3
5tjmtkhseven3five
crf14
5fourxxn
r3fivejbvrzgnl
4nine5
svhmflmpbkjjponemj2threefslgpxsrprjzvfxcrvp
91threeeightfour6bmqfmr
6krhfmtwothree2sixeight
pdpvrlqb36
4sixsevenseventhreegjthree
threehgckkksz8eight3
qqhtjq3lnvqkpjvrp42
3three8four942
mggbbhxd4eightvmmdvl
fourtqpgjkszglhthree752
ninehsnqzkrzpfgdvlg5six
6two8xstlhvhkhdone
fivesix55eightqpjdxkpnine
ftwone4seventhreenine3two
sixfivetwoqplqntzlldbmkgzsix78
onenlqnxcr4
seven5spnronedhtxsdgtfgsgjl1jlhf
fivethreednbvgpbr7four5
qchoneightpbgdzxjbshqf527four4
51threetwo5sevenhnnpjvx
qdkcbnkjssixtwobkfzcnfkb84
qsjgzbgpxq9
7eight3six
8jvmxgnp6cqpsqtqgfive1nine
nineg11sj
3fourfour
pg6djcsdmdlgjtwo1
bxcbznvnqbfjjbfonedgl3foureightjgsqbqhzhg
twofivetwosixv5fiveonenine
l8eight6gdmd
nine15bcseven2
l4
g5ldxkrk4fivevft
fourxmf35
nine6xdhfmltwofnqkf
phbcjjmnmcvjgzfsixfour6eight5
2ckvh
rzone3745
keightwosixfour466
one3lbkl7tssqxqrbbmxkh
6oneonezllhftdf4bfpxj
6eightpc
ninenine4nbfbqrtnvkl
sixqbbffgdsixtwofivesix8
zfplftwosixsixnine9
two4rncnine77nineczlfdrp
43jseven
7mntc
6z146fourtwo
seventhreethreevxmbzhmpktj6twohxzjnhp7
tz6vrdbzgzhxcfd
seven6eighttgglxnhmknine
8eightseven41crvrxbonetmscnl
xbhtfgg5four86onesixthreejk
3dlblsjq
sevenmsrgcfmxmthreegzgxdqmkcgkjcbnx45pzlcjc
5nine69
9cpjmdgf
4fourkgzmjnhplrlmeight
ninetwo6sixmdz
dcdbk71twothree56fourtbzkz
tcc3nineeightseven2flrlndb4
sixcpztsj72zpdhmvfp4two
9hnine5
two7kktkms
1sevennine
5zczmvxthreethreetwovvnfvvsjnv
9dhjcgnnsvh4five4
bbv46hvj68eight7
sdmntqgftc5blnhkktqmg1five
5ninefour
gmg6bzgrxhgtssthreenine1
78twothree4mtbfthree
hclggrdf9
jnbmj3seven4
xdhcgkrkrtrfourcxmlzp1scxkxxzlsdjfccchzg
rpdphff9blkl22csthreex
stwone791seven
cdfkxhfqr4sdlcleightnine72tkftldjnq
tklpckfour7seven1qvxthlfourhtrdn2
b4three4cninetwonebbv
nfourdzxjxcp7mnzkzdnmpqsixgn
jfcfncxone9kmdrbxfjtpvfp26
6threeseven21ssblsvrbfsvzmbktkpztcsmpt7
vgchkqhxrbjnlqnvpml77twonejcv
gxklhvtwo55five
sevenfivetwo1mtdfjgcp2sevenpj
qvrjceightcjlp5
tbl4zxthxzpsix
rvzlvnhnineeight2cxxcslhpph
shrxnz9rtfrtrtr
1drmztt2zfournrmxfivejzksgzqfour
chtmdlppljlllhg8threendnhkn1qzxkrtnqgrtwo
two15eighttdlrpqjx45
1kqd5
3krsbnzthreetxpv
7ninefivesix67sixseven
sevenninesmjkdfssnl3two7
pmjmkzdrvfour4nineseven
t1xnlcvlfninecbrzxc5
nine3qnjcktfiveeightkhb
psqrone1nxcsrntkjg9
6lgdfgxts9two9
48six4
threehvxfhzvxhs8three2two
onesrmxjlv43gtsjtdneight
5eight14fournineeightfour4
3mljsmn7mrnvnc844
5dmdvxxddhone9fiveone
twogscrq26xfppjzhthreervonefour
6ndcblbmdjpthreetwotwovpcsmffive
5gkqzhgvrcthreeseven
sixkhgqjqnineqhxl4
z6ltpkcqxmd
fivetwo5rstcq9
threetwo563
4fourtvksk8onefive
294tv
7flzfzm22brfgxsqhhckzc5
twoone9sixsixninethree7
2glqfourseven1one
nine4five7418
9xfivezxrr1xpjm896
foursixtwoninevtzzgntnlg6oneightbxp
2eight1fiveeightfive
mzjxlhjmqp58six
one34
8fivejdmljr
tsblxssixseven4djq
8drrmf32
11twok9663
hsoneight3sevennpsbbkdvsb46
dtrnnhxcdmzzlssffhgvbxxrgbcz2fiveonesix
kkeightwo6975six
jcftbeight9
fivefivephbpdtkqfm246
5eight97nine
4sixfour4nppgsr36one3
glxlmnvhjxsevensix1fourseven
sevensixjczjhjzbj8fnsnrsevenfive2seven
jjpngnpzglkbltbrv2tjmqrpb
4txvpps9kvjhgsqpcv6eight2jxk
onesix8qfvkckg145ndkfdcvznine
nkthree86b5fgzzfoneqn
eightgndhmrfouronexldvdvqnzxqjczfk1
+7
View File
@@ -0,0 +1,7 @@
two1nine
eightwothree
abcone2threexyz
xtwone3four
4nineeightseven2
zoneight234
7pqrstsixteen
+4
View File
@@ -0,0 +1,4 @@
1abc2
pqr3stu8vwx
a1b2c3d4e5f
treb7uchet
+100
View File
@@ -0,0 +1,100 @@
Game 1: 4 green, 3 blue, 11 red; 7 red, 5 green, 10 blue; 3 green, 8 blue, 8 red; 4 red, 12 blue; 15 red, 3 green, 10 blue
Game 2: 3 red, 1 blue, 2 green; 1 blue, 9 green; 1 red, 10 green
Game 3: 5 green, 9 red, 4 blue; 3 green, 7 blue; 12 blue, 3 green, 3 red; 3 blue, 7 red, 2 green; 7 blue, 3 green, 10 red
Game 4: 2 green, 2 blue; 12 red, 9 green, 2 blue; 13 green, 15 red, 4 blue; 14 red, 3 green, 5 blue; 6 red, 1 green; 1 blue, 2 red, 2 green
Game 5: 2 green, 6 blue; 1 red, 3 green, 5 blue; 3 green, 4 blue; 3 blue, 5 green, 1 red; 5 blue
Game 6: 5 green, 1 blue, 3 red; 8 green, 15 red; 16 green, 5 red, 1 blue
Game 7: 1 blue, 3 red, 11 green; 18 red, 16 blue, 5 green; 13 blue, 5 green; 1 red, 8 green, 15 blue
Game 8: 1 green, 14 blue, 1 red; 10 blue; 1 green
Game 9: 4 green, 12 blue, 1 red; 14 blue; 2 blue, 4 green; 4 green, 1 red, 10 blue
Game 10: 11 green, 9 red; 12 red, 9 green; 5 red, 7 blue, 5 green; 6 green, 1 blue, 12 red; 3 red, 3 blue; 16 red, 9 blue, 7 green
Game 11: 11 green, 1 red, 9 blue; 2 red, 13 green, 5 blue; 5 green, 2 red, 5 blue; 5 green, 7 blue; 1 red, 5 blue, 1 green
Game 12: 5 green, 1 red; 1 red, 4 green; 1 blue, 12 green; 15 green, 4 blue; 4 blue, 19 green; 16 green, 4 blue
Game 13: 1 red, 9 green, 5 blue; 10 blue, 7 green, 1 red; 3 green, 2 red, 14 blue; 16 blue, 3 red
Game 14: 9 red, 1 blue, 2 green; 16 blue, 7 red; 2 green, 3 red, 14 blue; 1 green, 9 blue
Game 15: 6 blue; 4 blue; 1 red, 16 blue, 3 green
Game 16: 14 green, 5 red, 1 blue; 1 red, 1 blue; 5 blue
Game 17: 1 blue, 1 green, 3 red; 2 red, 2 blue, 2 green; 1 blue, 1 red; 1 red, 2 green, 2 blue; 2 blue; 1 green, 2 red, 1 blue
Game 18: 4 blue, 2 green, 1 red; 1 green, 1 red, 10 blue; 1 green, 1 red, 2 blue; 1 red, 5 blue; 3 green, 6 blue; 1 red, 1 green, 7 blue
Game 19: 1 blue, 13 green, 12 red; 7 blue, 2 green, 1 red; 1 blue, 3 red, 3 green; 3 blue, 8 green, 10 red; 7 blue, 2 green
Game 20: 1 red, 17 blue; 10 blue, 5 green; 9 green, 1 red, 3 blue; 1 red, 5 green, 1 blue
Game 21: 3 red, 6 blue, 5 green; 4 blue, 1 red, 7 green; 6 blue, 4 red, 9 green
Game 22: 11 blue, 2 red, 6 green; 16 blue, 5 red, 6 green; 12 red, 2 green, 10 blue; 14 blue, 2 green, 11 red
Game 23: 3 red, 5 green; 10 blue, 1 green, 9 red; 2 red, 10 green, 9 blue; 9 blue, 7 green
Game 24: 8 blue, 1 red; 3 red, 9 blue; 9 green, 2 red, 8 blue
Game 25: 2 red, 1 green, 1 blue; 1 green, 12 blue, 2 red; 2 red, 1 blue; 2 blue; 1 green, 10 blue; 6 blue
Game 26: 2 red; 4 green, 1 red, 7 blue; 11 blue, 2 red, 4 green; 1 red, 1 blue; 1 red, 5 green, 12 blue
Game 27: 1 red, 7 green, 8 blue; 13 green, 12 blue, 1 red; 6 red, 1 green, 10 blue; 8 red, 2 blue, 2 green; 11 blue, 4 green, 4 red
Game 28: 1 red, 8 blue, 3 green; 12 green, 4 blue; 1 red, 4 blue, 11 green; 7 blue, 10 green, 10 red; 11 blue, 7 red, 8 green; 10 red, 2 green, 2 blue
Game 29: 4 green, 2 red; 1 blue, 11 red; 2 blue, 3 green, 1 red; 16 red; 3 green, 8 red, 1 blue; 2 blue, 7 green, 12 red
Game 30: 1 blue, 3 green; 4 green, 2 blue; 3 red, 5 blue; 4 green, 1 red
Game 31: 2 red, 2 blue, 3 green; 2 green, 3 blue, 8 red; 7 red, 16 blue, 2 green; 5 red, 20 blue, 2 green
Game 32: 2 red, 1 green, 4 blue; 4 green, 4 red, 1 blue; 4 red, 4 blue; 1 blue, 4 red, 2 green; 4 blue, 3 green, 4 red
Game 33: 11 green, 4 blue, 10 red; 2 green, 13 red, 7 blue; 13 red, 2 blue, 8 green; 15 red, 9 blue, 12 green; 14 red, 10 green, 2 blue; 13 red, 7 green
Game 34: 11 red, 6 blue, 4 green; 16 red, 7 blue, 4 green; 6 red, 18 green, 6 blue; 3 blue, 16 red, 3 green; 2 red, 3 blue, 17 green; 3 green, 9 red, 6 blue
Game 35: 6 green, 10 red, 12 blue; 4 red, 1 blue, 2 green; 3 green, 8 blue, 7 red; 6 red, 12 blue, 2 green
Game 36: 4 green, 2 blue, 2 red; 3 green, 10 red, 1 blue; 1 blue, 3 green, 2 red; 2 green, 1 red; 1 blue, 5 red
Game 37: 3 blue, 1 red, 2 green; 8 red, 4 green, 10 blue; 4 red, 4 green
Game 38: 13 green, 3 red, 2 blue; 1 red, 13 green, 2 blue; 20 green, 3 red, 2 blue; 1 red, 2 blue, 12 green
Game 39: 13 blue, 1 red, 8 green; 5 red, 3 green, 8 blue; 6 blue, 4 green; 18 blue, 7 green, 1 red; 4 green, 3 blue, 5 red; 6 blue, 4 red, 1 green
Game 40: 2 red, 2 blue, 9 green; 1 blue, 2 red, 12 green; 16 green, 11 blue, 1 red; 1 green, 2 red; 3 blue, 2 red
Game 41: 7 blue, 1 red; 4 blue, 1 red; 3 blue, 1 red, 2 green; 13 blue
Game 42: 18 red, 1 green, 13 blue; 2 blue, 2 green, 7 red; 16 red, 12 blue; 1 green, 10 blue, 14 red
Game 43: 15 red, 6 green, 2 blue; 3 blue, 9 red, 3 green; 13 red
Game 44: 2 blue, 5 green, 3 red; 4 red, 4 blue, 19 green; 5 red, 3 blue, 9 green; 19 green, 6 red, 5 blue
Game 45: 5 red, 4 green, 13 blue; 12 red, 10 blue; 3 green, 9 blue, 5 red; 10 blue, 18 red, 5 green; 16 red, 6 green, 17 blue
Game 46: 3 green; 3 green, 2 blue; 4 blue, 2 red, 3 green; 5 blue, 3 green, 4 red; 1 green, 1 blue
Game 47: 2 blue, 1 red, 10 green; 2 red; 6 red, 1 blue; 16 red, 2 blue, 8 green; 5 blue, 8 red, 7 green
Game 48: 11 green, 4 red, 2 blue; 2 blue, 5 green, 8 red; 9 green, 6 red; 3 red, 3 green, 1 blue; 2 blue, 12 green, 17 red
Game 49: 10 blue, 4 green, 1 red; 10 red, 10 blue; 12 blue, 7 red; 13 blue, 6 green
Game 50: 1 red, 19 green, 7 blue; 4 red, 1 green, 5 blue; 16 green, 8 red, 8 blue
Game 51: 12 green, 18 blue; 13 green, 14 blue, 4 red; 7 green, 4 red, 14 blue; 8 green, 2 blue, 3 red; 16 blue, 8 green
Game 52: 9 blue, 9 green, 3 red; 8 blue, 1 green, 13 red; 2 red, 8 blue, 9 green; 13 red, 4 green; 6 green, 15 red; 11 blue, 11 red, 9 green
Game 53: 2 red, 4 green, 3 blue; 5 blue, 16 green; 4 blue, 8 red, 12 green
Game 54: 6 red, 16 green; 6 red, 15 green; 8 green, 8 red, 2 blue
Game 55: 9 red, 2 green; 4 blue; 2 green, 2 red, 7 blue; 1 red, 16 blue, 1 green; 17 blue, 5 red
Game 56: 14 green, 3 red, 9 blue; 14 blue, 15 green, 2 red; 8 red, 13 blue, 15 green; 15 blue, 2 red, 12 green; 3 red, 7 blue, 10 green; 10 blue, 13 green
Game 57: 1 blue, 10 green, 2 red; 4 blue, 9 green, 11 red; 2 blue
Game 58: 4 red, 2 blue, 5 green; 1 blue, 5 green, 4 red; 3 green, 4 red, 8 blue; 4 blue, 7 green; 5 green, 4 blue; 1 blue, 6 red
Game 59: 5 blue, 4 red, 3 green; 8 blue, 12 green, 5 red; 5 red, 8 blue, 15 green
Game 60: 6 red, 12 blue, 1 green; 10 blue, 20 green, 4 red; 6 blue, 1 green, 5 red; 9 red, 12 blue, 14 green; 15 green, 1 red, 14 blue; 10 green, 13 blue
Game 61: 1 blue, 12 green, 3 red; 4 green, 1 red, 4 blue; 8 red, 4 green, 6 blue
Game 62: 6 blue, 7 green, 3 red; 6 blue, 3 red, 3 green; 11 green, 6 red, 2 blue; 2 red, 6 blue, 3 green; 2 green, 3 blue, 3 red; 3 blue, 11 green, 11 red
Game 63: 5 green, 6 blue, 4 red; 6 green, 12 blue; 3 green, 9 blue, 10 red; 1 blue, 4 red, 5 green
Game 64: 10 green, 14 red; 1 blue, 9 red; 3 green, 10 blue, 14 red; 5 green, 3 blue, 12 red; 5 blue, 12 red, 13 green
Game 65: 1 red, 5 green, 10 blue; 14 red, 5 green, 10 blue; 10 blue, 10 red
Game 66: 9 green, 8 blue, 1 red; 8 red, 14 blue; 8 red, 7 blue, 2 green; 4 blue, 3 green, 5 red; 2 red, 8 green, 8 blue
Game 67: 4 red, 3 green, 3 blue; 4 green, 1 blue, 4 red; 1 blue, 3 red; 10 blue; 16 blue, 6 red, 4 green
Game 68: 6 blue, 6 green, 9 red; 4 blue, 9 red, 3 green; 3 blue, 8 red
Game 69: 4 green, 12 red, 3 blue; 2 red, 3 blue; 2 blue, 4 red, 2 green; 1 blue, 3 red
Game 70: 4 red, 3 green, 15 blue; 1 green, 4 red; 1 red, 1 green, 5 blue
Game 71: 4 blue, 2 red, 10 green; 7 red, 6 blue, 11 green; 4 blue, 7 red, 8 green
Game 72: 9 red, 9 blue, 1 green; 4 red, 6 green, 5 blue; 3 green, 7 red, 2 blue
Game 73: 3 green, 9 red; 4 green, 15 red; 12 red, 2 blue; 14 red, 3 green
Game 74: 2 red, 6 blue, 1 green; 3 red, 6 blue; 1 green, 12 blue, 14 red
Game 75: 3 green, 18 red; 1 green, 7 red, 1 blue; 2 red, 2 green, 3 blue; 11 red; 2 red, 3 green, 2 blue
Game 76: 6 green, 2 red, 5 blue; 13 green, 5 blue; 5 blue, 1 red, 1 green
Game 77: 4 blue, 6 green, 3 red; 15 red, 1 green; 4 green, 11 red, 13 blue; 8 blue, 6 green, 9 red; 3 blue, 1 green, 11 red; 3 green, 3 red
Game 78: 11 green, 1 blue, 2 red; 7 red, 16 blue, 11 green; 9 blue, 10 red, 6 green; 1 green, 8 blue, 10 red; 8 blue, 6 red, 1 green
Game 79: 2 blue, 5 green, 4 red; 1 blue, 1 red, 1 green; 1 blue, 5 red, 10 green; 6 red, 3 green, 3 blue; 8 red, 9 green, 6 blue; 7 blue, 6 green, 13 red
Game 80: 10 green, 7 blue, 5 red; 5 red, 1 green, 6 blue; 8 blue, 2 red, 8 green
Game 81: 3 green, 10 red; 6 blue, 8 green, 14 red; 4 green, 4 blue, 13 red; 5 blue, 11 green, 6 red; 16 red, 8 green, 5 blue; 6 green, 18 red, 6 blue
Game 82: 13 red, 1 green, 7 blue; 8 green, 4 blue, 12 red; 18 red, 5 green, 3 blue; 13 red, 4 green, 9 blue
Game 83: 1 red, 3 green, 4 blue; 5 blue, 4 green, 1 red; 3 green, 1 red, 12 blue; 4 green, 11 blue
Game 84: 3 blue, 10 green, 2 red; 3 red, 8 blue; 11 blue, 12 red, 14 green; 2 red, 11 green, 2 blue
Game 85: 8 blue, 2 green, 1 red; 13 blue, 6 red; 3 blue, 5 green
Game 86: 16 red, 8 blue; 7 blue; 16 red, 16 blue, 1 green; 15 blue, 11 red; 2 green, 7 red, 5 blue
Game 87: 6 green, 9 blue, 4 red; 1 red, 1 green, 4 blue; 5 blue, 13 green, 3 red; 2 green, 4 red; 16 blue, 10 green, 3 red
Game 88: 1 blue, 14 red; 14 red, 3 blue, 8 green; 1 blue, 5 green
Game 89: 12 green, 14 blue, 3 red; 2 red, 3 blue, 3 green; 2 blue, 8 green; 1 red, 3 green, 15 blue; 3 red, 5 blue
Game 90: 3 blue, 17 red, 11 green; 2 red, 2 blue, 7 green; 7 blue; 8 blue, 4 green, 10 red; 1 blue, 4 red
Game 91: 10 red, 9 blue, 8 green; 5 blue, 10 red, 2 green; 11 red, 17 green, 7 blue; 12 blue, 16 red, 18 green; 20 green, 5 blue, 15 red
Game 92: 1 green, 14 red, 1 blue; 2 blue, 6 green; 9 red, 6 green; 5 blue, 5 red, 2 green; 3 blue, 3 green, 10 red; 5 blue, 1 red
Game 93: 10 green, 1 red, 6 blue; 16 red, 5 blue, 2 green; 3 red, 7 green, 11 blue; 12 green, 5 blue, 4 red; 8 green, 7 blue, 10 red; 1 red, 5 blue
Game 94: 3 blue, 1 red, 3 green; 1 blue, 4 green, 4 red; 9 green
Game 95: 3 green, 5 blue, 9 red; 2 green, 9 red, 2 blue; 12 red, 9 green; 11 green, 9 red, 9 blue; 9 blue, 6 green, 10 red; 13 red, 2 blue, 5 green
Game 96: 2 red, 19 blue, 2 green; 10 blue, 1 red, 2 green; 9 blue, 1 red; 2 green, 3 blue; 1 green, 1 red, 11 blue
Game 97: 6 green, 7 blue, 5 red; 7 green, 1 red, 11 blue; 6 green, 6 red, 5 blue; 2 red, 9 blue, 1 green
Game 98: 5 green, 8 red, 15 blue; 16 green, 9 blue, 8 red; 5 blue, 3 red, 2 green; 13 blue, 12 green, 4 red; 2 red, 15 green, 3 blue; 1 green, 11 blue, 2 red
Game 99: 1 green, 7 blue, 6 red; 16 blue, 9 red; 1 green, 17 red, 12 blue; 15 red, 7 blue; 8 blue, 14 red
Game 100: 5 blue, 11 red, 6 green; 11 red, 2 blue, 5 green; 6 blue, 6 green; 2 blue, 6 red, 15 green; 7 red, 4 blue, 7 green
+5
View File
@@ -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
+140
View File
@@ -0,0 +1,140 @@
.679.....662....71............................805..........862.680...................................................................687....
............*....-..811..........846..855......*.............*..$........230.92@............................=.....................92........
..........360..........#....664.....=.*...881...677...934.780.......426.*..........8......654.....*959.....539..........21.........*........
.....................+.........*......379..*.........*.........=.........969........*........*.976..............872....*....../....579......
.......566......652...809....482.394......492..303.650..../...38....%...............106...385..................#.....793..484.865...........
......*...........*................*..347.......*.........220.....349...691...392*..................18..797.......................+.........
.....11......890........870.......156............733.................../..........921.....................*......*.............203..........
.............#...238.....*...........................188......294./58........408...............677.......778....104.903............%........
.411+...828.......*.....706.....249..=.....638...848*...........%...............*948............*.....+......+...........917.......817...346
................69.................*..310.*....@..........118*......428=..785...................931...217.....934....475...@.145........*...
...844.885.........#66...........587.......74...773...........194......../.........&107................................%...............375..
......*....826.190.......498........................960............24........212............................398...........474*925...........
...........*...*......../......949.-...213./353.................................@...........853......33*164....+....998...............325...
........640..823....957........&...746..*........*777.............134.......264.......904+..=........................*......./........%.....
....43...............*....457............325..390...........618.........265....*670............=...#165........909..634.......810...........
.....................503.*.....438..904*.............+.........*..563..*............345@......597.........758.*...................*154......
...941...................612...@........691.....&...336.......837..*....489...............................*...462.689....995...106..........
......*383..824...................911........*..467.................44....../.........&445...$...765.647..464.............&..........226....
......................151.....116*........249..................929*.......500..140.........18.......*.........823.....454............*......
..................968..@..........................118*.....300.................*....762.........541......59...*....35....*..........8.......
.....304.........*.......620..@...573.878................................@...@.273.*......572...............661........527.971*.......259...
....*.............83.....%...983.*......*.32..603.....201..............492.166.....339.....*...978$..............373...........340.....*....
.761..758...934..................550.148.................................................25......................*.....*236.............624.
........&......*...393..62*.................167/..716........$........910.767.......380............873*812.362.115..537......48.............
.....#........697..*.......159.....................*.........522..............41.....*.........+............*...........812......13.........
....529.............374......../...%.............................143...........*......109.......365..........952...........*....*...........
...........122*...............555.937......674....................../...529.774..371.................#.38.........../.......304.750....715..
..................873*....819..........165....*..928*345........................*..........77......478..*...440...743...................*...
964...........417.....802..*......230..-....509..................573...........219...675....-.865.......13............25.62*4...980..145....
....*556........&.............278*.................957.....85#.....*................*............=....#.....442........$.......*............
.972.....................541...........91*614..485...............680..792...+........541.325..........486......&..653....#.....247..778.....
.......680.................*.980*710............*...494...............*......88...........................825........#.629.............$....
.399...*......439.........89...........430*....401.....*660....693......407&...........#883....#265......*.....438..........................
........390....*.....388.........21........861............................................................798.-....#........................
..417&.......551.102.$..............332............/804.....463*649..188.........992.....754.203....912..........732.490....................
...................*................*......214.134......................*805.%.....*.....*....*.....#.....*..........*....302.....934..=....
....835.........622..............8...541...*....*..861....442....874..........458...955...985..172.....497.310........341......$....*...644.
....*......246......909....320.............893.150....*.....*....*........717................................................833.178........
...622....*....309.+.........*.........681..........414......612..678....*...........336.................+.....715..........................
...........407.......611.....42...........*159........................................*..97..............355...*..........*954..............
.......967.....120..=...............................................................519....+.....382............974...................651...
739.......*.....*........155.....539................132*.....702......@....923...............905*.........................971...............
....453...149...717.400............*.........618........295.....#..644.......-...786....................*...287...........$.................
...#..................*.............810........*.908$............................*......+........168...903.....*.....&.......@..............
.................306...483..750.108..........570...................934......523..736..#..889......*.........557.......913....107.852..241...
...............................*.......................899............*974..%........42............268...........807..............-...@.....
..958.......610............/......................894.........................242.........300...........$............941..150...............
...........#....131.907.....924...529.267............=.....-./.....692*505...*......265%............$...95.....538........#.................
....137...............$...........*...*.........219.....347..268.............753....................12.....351.................955....875...
......*....258.................854..253...15........................506....#.................559........&................&........*.........
.....376...*.....892.466..160............*.......$................*....*..593.............../............682....721...750..10......187...540
...........866...=..................$...437....994......730....404...703................507...&...........................*....126......@...
....300...............301....@...315.....................*......................572........-...793.......309.518.437..182.310.*.....&.......
...=.....-176.129*........882............................256...............249..*.....+.....................*.....%..+.........71...76..586.
......54..........910............*......734....*..............-.......445.....@.....807.....75.907....477%..................................
.....*........................247.855....%...647.....@.....558...407....#....................%...*................................447..129..
......322..235.......821..............*...........767...............*35..........824.338.55....232...814................546*582.......*.....
..............*........./...........509......270.......-33...673................/.......*..............*......-.....................257.....
....793*831....805.871.....701..........503.....$............%.............710......37..../.........897...-....516.....330...371............
....................*..324*............$............875........293.........*.........@..510..............332..............*..*....2*558.....
.........../......147........373..........%926.........@......-......426...142...............%.......184.........#.....746..................
.......589..755.......285............221+.................$.........*.................571.....539......*.....60...644.............333.......
258....................*.....499............$.107......510.......257..........583.......@...........408.............................*.......
.....................396......*.../..../..493.........................489*380....*........908.711............772..........561......24..559..
.............................548.769.630..........504*........893................605.........*.........*..10................*..653.....*....
........=418..........*576................-..............815.....*.389......481.........*.......859.180....................137..+....275....
..77...........551.901.....535............683.............../.638............./......671.908.....@......360.....611....136..................
...&...........*.......722...........................702.............514............................520.$.........*...&.....$315...#...147..
.......830............*.............#377........39.....%.......384..*.........748..265......271.............885..882...............45...+...
..329.-...........787.311.........................*........115...@..840.........&...*.......*......513..695..........515....................
....*......666...*..............256*999......897.651.......*............457.........34..&...933...*......*......................156.........
..627.......*....24...........@.........................177...22........*...775........668......685...947.....110................*..........
.........172..........295*....540.856..76......................+...337.343.=.............................................18....914..449.....
.............239..........163.........*......770....594.........../..............200.....824*513..........146............*..........-.......
..............#................841...199......=............317..........97.*..........-.............165.....................................
...570...../......................*.......122.......179#..*......138........647......376........65..............735.........................
.....@.221..50..350...@....757.....88........*582.........893.....*.....230.................403...$......................865...927....892...
..........*........#...130..*......................232.........709....&...........105......*..............926=.......966.*.......*...$......
....200...884..............338....*155....822*609....&..84.........935..............#.....481...968.64................+..337.....152...254..
.......*.........203............70......................%...................../................*....*........................627............
.......491........*......321.......$...-.......282............................512.282........564.625........746*825..#..........*361........
...................908...$........335.332.509$....*..../..........216.....-.......*...................617.............896...................
......946...299............657..................255...724..../......*.....830..122..........487.........*.....645.................56.66.....
..984..@...........@....15*.............*858...............150.....91..................498.........654..969.......+............&.....*......
.........104.870.281.........$.......796.......................................................................853.............316..984.....
.........*.....#......=...288.............86......376.804...515...............405..265*................................%....................
.336....152..........671............545.....&......*.....*..............549...*........37.....-....313.#......110.....578..414*.............
..............496.....................*...........536..20........471...*.......397..........437.....*..996...&....18...........200..........
.................=..........308.....147...319.12................*.....465..............$992........71..............@........................
............712.......*123.=..............#.....*629.......%..............................................#..........153..945...........36..
.....+340.....-....850................922...%............812..259*577...#452...-........620.567-.784....985.934.427...@..*.........280......
216............................394......*..589.........-.....................191....622./..........*........*.............124........*......
......764......................*......663...............165...318.....................*....200.83...896..856................................
.....*.......705........751..46...............................-....698....132.......-..81...........................264.....................
...538.......*......170....*..............808........166..........+......$........130........428............852.......*.................902.
..............803...........938..51....66.*...514.......*430..................................*......@..............=............/469.......
.........26@.........90...................473..../..273..............13......656.......242$..829......682...........594...968...............
...180............+.........872..131....................176...781...-.......*.....294.............990.............#..........=.@...../......
....@..344.........184..........*.............................*.........42..153..#.................*.....577......32...........303..334.....
........&..620..................821....172....32.....470....698..........%....................397..301.......................*..........569.
.../........./.........325.@.............*...*.........*........$.....*....+......124...200......*.......827....*861........857.876.........
..808.................*.....581..............644...3..190.607.175..76.712..724.......$........16.358......*...31.......270.........*915.....
...............894...453...............845..........#.......*.....................#......................793..............*...914*..........
..................&......................+...............99.596..597*813...958.831......261*95.....922..........&.......537.......302.414...
...931*.................................................+..........................394......................65.679..........%.........*.....
.......839....644......./262......461...424.....682........................954.............43*.............*.......778..*....464......822...
.............#.......................=..*...........706....289*.....459......*..........-.....234........11..$.......@..373.................
.............../620...536+....100*......907.....159..+.........998.*..........832.....806...........695.....516....................126......
..................................268.............*....893.........12.86.................................................*..................
......+....355.........998..630..............$.....815...*..............*.....168...554...........735............+......861....490..........
.....176...*....513....%....*.................120......568....*314.404+.325..........*..662...855.....495.........467..........*............
..........132......*......677..708.................424.....715.....................520..*..................................36.410...........
..419...........454..............#...730...401&....*.....#............696..............267.=802...................761......*................
............394.........................*........650...637....695......*.....................................586....-...735..154.....423*344
........458..%.....*...728..+..........488.435......................241........795.552.....9.&...............................#..............
...........*....86.981....*..633.........../................762.700.....70*.........../....*.837......-.........20..................%.......
.519...+.652...*........614.......+....................924....*............663..591......192.....952.25.........*....600....#.*239..381.....
...*.366.......845.512......@...200...-....280............*...207............................297...*......828...249.*.....408...............
.189......5........*.....353........245.......#...153..680..............295..50...............+....296.../...........906.............+......
......741*.........466....................710....=.........561*........*..............831............................................909....
...........+.................421............*..........+.......661..103...............................922..752..................431.........
181......218.707....*....273....*..130.$273.980.........656..............517..712..578.......&.524.....@....*.....996..............*....#709
.................442.432..*....64.*......................................../..*....#.......534....*........498.............727.....434......
233*559....................869.....316../..........&.....502..+...884.731.....503................239...499.....94..........*................
........352.......231...................340.....177..584.....922.....*....57...........................*.........*349...222...212&...433.520
...........-.........*981..479..637.....................*969.....*.........=..$.........601...=826...312....................................
..............205.................*../...@.....213.............41.64..........80....889*.............................@....76.=702...........
....353.......*..................114..97.867...*.....542.........................................721...395............816..............*112.
....*.......367.*............478.............42..../..........947.................................*......@......956...........+...883.......
.....870........460............*...................26...........*...........960......212...479....422...........*.......780..595..*.........
....................978*368....921..760=..................416...665..$.........$.381*.......*............933.744....=..*...........792......
....52..........300..........................................*........293.162%........................@...*........259..283.................
......%..........%........119.......575.......#..%......./.748......................945...212&.....595.....248.286...........839..106/......
..940........$...........%............%....880....539.659.............*.........353*.....................=.....*................*.......188.
.....*....254...............794..550...............................701.797............500#................34..475...507..........763........
..649............58..691&.....%............................................386..............@.$44.101.....................997..*............
.........255............................376....732....-..............869......$...........473........*376....220.........@.....721...443....
...........@.913.....168....=909..431......=......@..976.......+.......*..........155............................620.......250......@.......
......806.....*....................*...........@................45.....475...724..*......&45.........+202..-576.....*.........*.............
...............383...........................372..................................474...................................432.471......729....
+10
View File
@@ -0,0 +1,10 @@
467..114..
...*......
..35..633.
......#...
617*......
.....+.58.
..592.....
......755.
...$.*....
.664.598..
+201
View File
@@ -0,0 +1,201 @@
Card 1: 91 73 74 57 24 99 31 70 60 8 | 89 70 43 24 62 30 91 87 60 57 90 2 27 3 31 25 39 83 64 73 99 8 74 37 49
Card 2: 92 38 67 81 28 16 82 30 11 45 | 92 84 67 40 75 44 57 89 11 28 99 81 83 14 77 51 61 27 16 45 30 63 53 38 82
Card 3: 16 21 36 18 9 5 27 43 76 52 | 75 44 11 20 54 33 40 18 22 13 85 17 51 98 77 12 73 58 84 64 76 90 53 95 6
Card 4: 2 4 14 88 19 99 3 84 1 77 | 61 59 53 88 31 72 62 11 9 50 46 42 66 79 55 87 30 63 37 69 95 83 15 21 35
Card 5: 58 85 47 8 52 68 81 16 56 64 | 79 54 88 17 74 89 51 40 98 18 69 48 1 55 26 13 87 45 78 33 65 83 67 36 37
Card 6: 31 46 60 12 68 44 5 90 2 15 | 12 81 36 24 48 68 37 27 97 44 85 5 42 59 52 47 2 90 3 63 26 28 31 87 53
Card 7: 95 84 91 68 23 15 76 80 30 73 | 55 70 60 43 18 73 30 92 15 9 23 39 95 17 98 33 25 91 80 68 1 76 61 84 35
Card 8: 79 7 17 68 19 11 70 51 78 24 | 56 30 34 88 74 65 55 60 61 51 42 78 12 52 26 18 49 38 14 10 97 50 85 33 66
Card 9: 18 30 91 65 25 22 17 12 99 5 | 26 9 30 23 44 64 91 95 36 34 8 18 4 22 81 99 94 15 59 70 19 65 25 28 63
Card 10: 53 3 8 32 86 87 77 78 59 25 | 72 42 17 69 63 67 82 84 56 22 32 75 33 14 77 61 95 92 57 59 16 20 90 76 68
Card 11: 63 44 6 45 66 11 93 48 18 74 | 23 48 66 21 55 97 89 11 41 44 75 18 6 49 91 85 40 53 95 74 37 93 36 63 45
Card 12: 56 74 43 42 93 31 2 79 67 48 | 89 86 73 35 6 84 47 61 62 2 65 80 81 14 19 58 24 77 39 26 71 36 5 34 78
Card 13: 51 89 44 93 90 17 61 32 95 53 | 28 22 14 12 76 36 98 33 50 56 61 40 13 21 5 54 87 43 67 47 46 83 23 90 44
Card 14: 99 25 85 51 3 27 26 16 73 89 | 8 17 20 33 65 38 70 9 7 53 86 96 35 28 99 4 40 66 76 31 95 57 49 69 36
Card 15: 42 95 30 60 70 67 59 61 5 71 | 66 5 41 65 74 47 24 86 8 37 68 54 12 1 44 75 48 90 16 30 99 96 98 70 21
Card 16: 95 44 98 40 18 81 45 70 37 94 | 59 27 28 93 6 63 33 82 94 61 16 53 47 85 67 54 10 17 90 20 31 7 77 88 11
Card 17: 10 7 77 80 92 29 64 99 18 14 | 70 23 7 99 72 49 12 52 73 94 4 91 57 78 97 16 50 26 68 89 80 20 15 87 64
Card 18: 8 77 62 36 99 30 92 86 81 91 | 49 14 99 6 77 47 44 84 98 57 48 33 9 80 93 66 10 12 32 97 40 71 18 26 65
Card 19: 87 38 27 92 35 94 88 75 37 74 | 89 7 24 54 9 98 13 42 32 60 8 6 90 35 75 18 68 96 80 59 44 85 95 21 17
Card 20: 21 59 31 90 66 42 7 24 64 41 | 47 87 51 38 6 34 74 22 82 44 14 71 45 11 81 15 27 83 63 46 79 92 56 80 39
Card 21: 67 34 30 82 42 3 8 77 61 31 | 38 92 87 84 28 6 66 25 7 51 29 75 85 80 50 71 13 69 31 74 20 62 88 64 45
Card 22: 67 60 88 39 65 12 75 16 26 41 | 56 91 42 45 24 33 84 64 44 73 83 13 90 14 30 6 1 72 15 4 7 49 82 71 94
Card 23: 60 27 1 46 47 61 98 11 95 40 | 40 72 32 81 46 12 1 34 44 91 11 27 94 61 54 80 24 47 95 18 67 98 60 19 99
Card 24: 87 17 74 69 68 50 58 33 23 73 | 29 33 58 51 74 69 7 22 9 73 87 50 24 76 15 10 23 68 59 5 78 56 17 43 13
Card 25: 36 43 83 65 99 25 7 45 6 53 | 61 63 74 7 10 76 4 22 59 31 6 47 45 41 24 21 53 68 99 15 91 46 65 97 69
Card 26: 71 30 23 27 62 16 38 97 8 57 | 73 90 8 41 71 86 93 69 62 30 70 61 28 14 27 97 17 38 4 34 16 99 25 57 23
Card 27: 38 46 70 79 64 7 40 63 60 99 | 63 79 28 10 85 11 64 60 70 24 99 39 12 27 7 38 31 20 67 40 95 75 46 54 45
Card 28: 65 47 39 90 70 99 40 76 26 86 | 46 35 56 38 4 96 26 60 43 66 94 7 29 16 78 69 64 87 37 41 27 80 57 42 12
Card 29: 33 39 49 31 36 61 23 94 46 1 | 15 49 36 61 40 83 24 39 13 3 86 92 27 55 1 31 29 94 8 21 7 60 73 4 66
Card 30: 14 34 91 83 48 79 45 98 92 46 | 86 74 24 82 53 51 80 14 77 38 32 78 98 68 45 92 91 34 88 95 15 79 46 29 58
Card 31: 53 12 68 17 44 54 29 77 92 37 | 74 86 23 44 36 4 69 53 65 13 98 77 67 17 68 29 11 54 12 51 99 37 14 92 64
Card 32: 83 75 9 94 30 44 3 22 71 85 | 77 33 88 31 78 80 58 62 53 14 35 12 73 57 98 94 87 11 17 84 81 91 69 68 26
Card 33: 43 42 17 85 99 65 52 36 78 46 | 1 41 17 18 80 44 62 47 46 74 67 10 29 37 92 57 9 65 30 14 45 32 55 75 40
Card 34: 57 82 29 22 38 76 3 25 16 58 | 94 46 16 5 9 3 14 36 44 23 39 52 20 49 7 28 17 74 76 22 93 92 6 71 96
Card 35: 61 95 18 38 87 68 89 24 53 91 | 39 71 86 87 44 29 64 41 70 50 85 3 96 38 89 24 17 81 30 21 42 26 16 76 79
Card 36: 30 81 54 63 92 91 13 22 90 6 | 9 30 40 60 5 91 38 45 8 42 6 81 58 24 29 1 13 48 25 41 43 54 69 83 97
Card 37: 26 77 91 25 58 10 15 52 13 44 | 98 89 50 39 97 46 49 38 3 64 4 87 2 30 95 54 91 40 41 68 20 93 78 36 17
Card 38: 21 74 28 5 52 24 7 87 13 2 | 69 38 40 78 17 60 96 10 29 42 85 26 56 51 30 9 48 7 36 23 21 77 1 81 13
Card 39: 55 58 31 7 19 14 73 89 3 9 | 80 15 65 45 66 81 2 82 14 41 48 24 40 11 69 52 3 58 4 70 20 51 29 71 62
Card 40: 11 73 21 93 89 68 48 95 49 25 | 14 54 32 18 7 96 56 3 37 98 53 38 31 84 4 92 86 45 9 5 71 40 49 1 46
Card 41: 59 94 97 52 64 36 73 14 23 85 | 68 29 1 51 99 44 35 7 71 91 16 54 37 77 45 41 82 2 13 17 22 27 63 96 53
Card 42: 77 36 91 83 97 42 98 10 30 80 | 8 47 24 93 88 48 59 38 44 68 99 72 75 49 64 6 85 23 50 29 74 95 5 62 20
Card 43: 89 43 72 22 94 79 26 55 13 63 | 35 75 39 50 94 79 48 99 5 76 22 32 46 7 80 44 43 55 16 89 26 63 95 72 13
Card 44: 51 89 60 27 97 47 50 98 13 22 | 89 67 22 18 76 27 75 28 6 47 13 34 84 21 50 10 57 97 49 51 60 56 19 98 11
Card 45: 62 35 76 38 61 94 29 73 80 60 | 86 87 81 74 84 14 73 76 94 20 19 11 1 78 38 93 29 61 2 80 60 35 72 46 62
Card 46: 70 26 86 71 47 20 80 64 67 8 | 93 25 20 14 80 31 91 60 36 12 52 70 26 47 40 22 19 67 95 71 33 58 64 53 75
Card 47: 72 37 74 81 14 3 29 77 5 49 | 5 88 89 81 37 14 71 95 63 54 49 24 67 62 77 29 72 92 39 80 60 74 59 3 93
Card 48: 75 24 3 20 15 42 98 80 71 99 | 72 81 27 78 96 44 37 91 65 30 4 93 64 15 28 34 48 39 38 66 57 45 24 47 5
Card 49: 87 31 80 8 78 83 97 92 66 94 | 56 97 92 51 59 29 47 2 44 4 9 83 41 14 80 87 31 39 75 23 19 82 35 78 60
Card 50: 82 75 11 35 29 78 89 38 2 84 | 1 63 91 5 41 45 93 23 60 64 97 58 46 87 18 8 76 30 73 26 43 20 67 54 94
Card 51: 92 55 48 66 18 41 37 69 52 36 | 3 26 94 1 37 84 76 43 78 30 87 4 38 20 49 83 66 60 99 89 51 9 36 61 7
Card 52: 81 61 94 32 54 93 33 9 1 8 | 39 54 2 21 74 81 61 77 33 83 8 93 32 58 46 13 94 86 90 9 96 4 1 27 47
Card 53: 44 2 29 69 86 91 50 92 53 98 | 35 64 62 93 41 96 10 50 67 90 30 53 27 80 32 81 51 3 31 43 86 69 44 60 2
Card 54: 63 42 78 59 7 64 77 23 24 16 | 5 48 40 68 93 39 43 15 51 89 92 22 37 30 76 8 70 7 67 36 75 13 73 64 23
Card 55: 99 40 83 12 9 86 96 50 64 42 | 19 3 20 68 6 33 56 46 50 16 77 23 99 96 39 4 90 25 61 47 8 54 12 41 15
Card 56: 63 34 17 33 52 12 47 21 96 97 | 71 63 66 29 61 24 83 91 52 96 33 45 23 22 56 32 80 94 15 65 55 69 47 27 26
Card 57: 70 93 45 7 71 12 84 72 77 26 | 97 15 96 92 63 40 68 34 57 4 36 38 61 26 2 23 59 98 25 24 72 43 88 12 1
Card 58: 46 22 7 8 34 94 35 36 53 11 | 43 83 31 24 50 95 20 87 92 66 17 71 16 19 65 48 67 68 72 99 12 59 35 4 11
Card 59: 2 38 44 95 5 20 22 90 35 7 | 1 97 8 56 10 35 72 26 71 40 31 99 58 88 64 38 85 25 20 89 46 47 57 5 78
Card 60: 90 32 82 1 9 22 50 94 63 60 | 22 72 81 46 33 19 47 35 36 89 15 75 42 6 88 17 69 2 9 78 77 37 41 61 74
Card 61: 49 29 23 68 59 55 50 24 41 75 | 65 91 73 48 13 15 59 41 61 85 94 80 27 7 44 17 69 63 92 37 39 6 64 43 82
Card 62: 83 82 88 8 95 80 4 87 91 32 | 40 89 41 1 70 28 77 20 97 3 99 53 65 61 98 57 22 4 92 68 15 69 47 84 94
Card 63: 66 30 9 84 14 67 44 5 68 54 | 99 86 7 17 89 10 28 71 39 55 46 61 29 58 50 63 15 57 42 85 25 36 83 13 8
Card 64: 59 9 73 17 19 30 53 67 23 46 | 58 75 5 9 2 53 25 73 16 71 63 23 67 10 18 29 59 17 90 46 19 30 42 28 38
Card 65: 56 68 21 9 52 11 40 83 86 23 | 60 63 1 54 58 18 42 9 22 16 73 68 87 26 69 4 71 84 30 67 23 17 86 37 47
Card 66: 70 47 10 59 97 66 30 6 71 96 | 42 70 91 21 66 79 71 97 37 6 48 96 86 59 47 3 88 10 80 11 30 73 18 14 50
Card 67: 16 47 83 48 73 86 14 51 55 42 | 70 14 47 67 9 77 56 10 73 24 50 81 54 3 83 55 51 7 42 1 16 80 41 48 86
Card 68: 54 25 28 78 64 43 88 20 57 95 | 16 83 63 21 18 58 40 62 95 51 30 70 64 71 23 25 28 20 8 57 46 35 78 49 54
Card 69: 56 5 81 35 42 59 82 40 37 54 | 67 95 92 60 83 23 39 14 27 44 86 3 72 88 49 75 25 47 51 99 18 61 37 2 5
Card 70: 29 89 6 71 55 50 92 66 17 47 | 31 72 36 95 78 2 14 1 42 52 57 99 84 21 17 39 51 10 48 66 4 71 26 25 32
Card 71: 27 62 33 52 11 70 39 93 58 75 | 33 26 98 52 92 35 66 39 11 84 75 62 3 34 8 21 2 61 54 58 65 53 80 27 36
Card 72: 69 66 38 84 8 87 77 96 80 51 | 22 63 54 23 21 84 89 55 9 96 8 43 68 2 6 98 71 65 97 51 38 82 80 87 77
Card 73: 55 20 1 72 54 78 35 30 17 87 | 17 33 35 78 27 87 1 65 84 8 20 47 60 25 72 55 61 88 58 50 30 10 66 54 56
Card 74: 66 63 1 75 82 23 59 68 94 2 | 31 23 55 58 87 66 85 15 42 10 43 28 96 44 99 16 63 79 89 65 60 38 75 56 78
Card 75: 47 68 56 86 57 8 69 70 22 17 | 10 26 76 24 79 86 63 2 90 44 17 51 32 1 50 3 6 67 15 27 31 13 45 83 25
Card 76: 5 22 18 83 47 2 76 14 26 88 | 18 42 46 22 80 71 76 60 29 68 45 51 26 64 17 62 69 91 28 73 32 21 85 86 79
Card 77: 8 22 41 23 46 64 85 16 91 52 | 91 67 54 83 97 15 56 86 59 49 37 62 80 96 70 14 98 30 26 82 7 87 85 1 89
Card 78: 1 39 33 31 44 64 81 11 56 35 | 67 92 72 94 41 93 11 28 69 34 71 1 35 79 39 36 64 61 55 63 22 33 77 27 62
Card 79: 55 75 39 92 33 77 9 25 52 90 | 11 46 97 99 77 62 29 93 23 40 49 33 34 44 74 60 92 48 54 80 12 14 70 43 71
Card 80: 65 57 42 76 26 1 95 60 16 45 | 39 9 75 56 57 94 65 60 63 76 33 91 8 27 68 73 17 19 21 96 66 97 52 3 86
Card 81: 6 19 10 16 68 83 1 71 47 55 | 39 93 27 99 64 20 38 73 79 67 7 6 54 72 86 98 25 57 56 53 85 26 95 4 74
Card 82: 81 25 13 10 91 34 20 42 45 21 | 76 17 42 58 80 90 55 45 66 89 84 33 52 97 96 56 92 86 48 61 1 13 85 62 91
Card 83: 54 83 36 19 43 15 30 7 99 2 | 5 59 58 90 79 12 51 78 89 69 60 57 39 53 63 7 16 28 66 64 23 8 85 13 9
Card 84: 62 10 42 43 88 34 99 78 81 52 | 61 36 98 34 99 25 50 71 4 6 65 55 49 93 95 58 79 57 16 84 39 18 21 5 69
Card 85: 28 75 22 61 62 74 19 93 8 84 | 33 26 85 84 76 55 38 78 11 96 1 36 31 82 35 48 71 12 21 20 9 51 46 53 80
Card 86: 46 96 63 73 11 29 56 78 7 85 | 49 47 43 39 92 66 71 64 44 83 8 2 23 54 75 3 90 5 93 32 59 53 28 94 89
Card 87: 21 23 83 93 49 73 29 87 76 34 | 89 99 94 84 7 38 97 57 82 50 22 37 71 59 69 17 39 41 52 15 67 1 56 55 24
Card 88: 77 16 3 37 20 75 17 30 63 53 | 20 77 24 3 93 55 75 4 30 5 73 17 37 13 82 64 16 48 38 63 69 53 10 7 78
Card 89: 35 19 56 41 14 43 82 93 21 72 | 84 43 21 55 35 25 15 41 80 3 72 82 94 29 93 50 51 56 14 46 19 36 96 86 52
Card 90: 37 58 71 21 38 12 49 79 23 43 | 71 86 32 21 70 92 69 37 28 78 49 79 62 59 60 38 47 4 43 12 58 1 2 84 18
Card 91: 13 51 63 21 29 86 88 26 90 16 | 63 42 86 46 50 1 29 43 4 74 14 9 25 92 51 13 87 54 55 10 85 32 21 61 80
Card 92: 79 24 44 20 42 49 50 41 10 66 | 49 50 73 55 10 56 60 9 41 97 17 61 24 14 94 38 11 78 81 51 66 27 33 18 20
Card 93: 38 85 99 95 30 50 68 46 73 98 | 30 73 4 82 68 17 67 9 10 64 50 48 95 37 38 84 26 40 5 58 36 69 15 14 20
Card 94: 86 11 2 33 20 90 3 8 62 87 | 77 11 47 20 10 64 87 93 92 70 86 56 8 82 27 57 7 31 17 60 23 97 22 45 79
Card 95: 80 22 7 78 61 28 86 70 76 67 | 83 56 7 87 77 8 92 70 84 93 14 30 24 5 73 25 76 96 19 49 81 40 37 15 53
Card 96: 43 41 8 17 28 83 18 98 72 16 | 79 25 2 18 97 15 42 91 60 34 40 96 78 49 45 33 51 62 67 56 19 38 7 3 29
Card 97: 77 35 99 60 81 87 18 84 43 29 | 72 32 57 3 16 65 78 15 38 44 91 80 60 71 17 36 31 51 9 14 76 96 4 99 75
Card 98: 29 86 5 48 21 43 16 27 59 6 | 51 10 61 62 92 43 89 44 37 63 19 39 32 77 47 79 27 22 7 30 78 31 41 64 83
Card 99: 20 39 33 4 59 87 86 89 93 60 | 82 77 63 48 9 4 41 61 21 36 7 23 57 54 71 64 8 16 6 65 32 83 37 44 88
Card 100: 24 23 36 12 79 94 15 65 67 14 | 1 39 67 42 6 50 26 15 10 73 92 75 83 38 82 47 31 16 89 52 28 8 19 62 35
Card 101: 39 96 48 37 89 5 71 31 67 58 | 51 58 6 99 33 91 88 26 68 63 22 15 44 2 45 76 80 36 70 62 11 42 18 19 41
Card 102: 93 97 30 54 31 96 26 91 10 33 | 52 56 50 19 78 84 86 70 16 41 36 72 27 43 34 53 74 63 68 89 3 83 38 55 60
Card 103: 21 97 79 5 92 91 34 28 23 40 | 23 16 28 29 5 63 92 58 51 91 86 74 13 9 46 52 88 55 72 85 34 99 57 15 80
Card 104: 97 39 17 93 21 34 91 89 50 27 | 30 27 97 10 34 91 53 63 22 62 21 83 80 93 7 72 56 60 66 79 4 67 39 32 89
Card 105: 98 92 12 26 51 18 46 84 41 54 | 92 30 35 27 54 78 3 40 82 87 84 18 80 14 70 21 46 17 23 51 56 39 49 99 57
Card 106: 11 50 62 80 4 10 16 30 92 52 | 68 72 36 29 70 11 95 2 50 31 23 57 65 58 13 52 71 43 12 4 87 44 96 38 74
Card 107: 69 34 89 63 87 81 4 1 55 19 | 62 14 80 65 96 7 76 43 24 63 60 95 2 79 77 46 28 55 74 41 5 34 35 29 36
Card 108: 70 92 10 47 55 65 85 86 13 41 | 55 18 20 24 85 2 51 66 13 95 10 47 3 93 92 50 56 65 32 80 16 72 1 76 41
Card 109: 13 69 43 75 98 40 56 53 7 50 | 42 77 46 43 51 62 54 33 35 65 16 75 92 23 18 29 28 9 8 76 78 57 71 34 74
Card 110: 10 89 39 7 69 38 87 27 11 62 | 8 10 53 37 42 41 77 70 68 34 17 2 47 89 97 96 33 29 35 31 98 6 61 86 67
Card 111: 65 11 45 95 63 71 44 20 89 57 | 51 30 50 35 98 62 23 95 54 39 80 2 99 91 96 24 67 58 38 85 18 68 19 56 60
Card 112: 83 22 25 96 47 65 11 2 63 39 | 62 99 6 93 65 96 56 84 78 32 94 50 2 39 71 88 26 38 80 4 44 36 19 58 12
Card 113: 26 68 79 73 46 49 57 65 51 5 | 39 21 86 30 67 48 53 89 71 12 51 88 44 35 18 97 16 98 94 75 74 69 60 7 15
Card 114: 51 19 75 48 62 5 46 94 43 56 | 80 71 41 33 62 68 4 67 84 66 92 55 32 24 43 86 35 58 63 23 11 98 10 15 46
Card 115: 19 68 84 70 67 91 40 66 7 57 | 52 16 55 60 37 2 34 35 90 15 1 24 79 48 44 42 73 86 43 99 18 45 65 78 50
Card 116: 1 33 44 70 71 74 55 30 4 23 | 41 5 6 50 10 32 35 18 28 21 42 17 95 98 75 65 36 39 7 83 96 27 31 99 9
Card 117: 77 84 69 17 18 11 4 54 24 56 | 60 20 76 44 99 63 28 70 46 26 21 98 55 85 48 9 64 51 31 75 79 33 67 29 30
Card 118: 19 23 64 82 70 17 95 6 47 13 | 50 47 49 44 53 4 36 96 43 78 39 9 82 38 72 8 14 12 24 26 10 64 65 84 37
Card 119: 80 94 54 84 46 78 18 49 30 81 | 88 8 68 74 35 1 9 33 16 75 19 59 61 55 63 32 76 25 20 90 43 29 23 72 97
Card 120: 7 87 75 59 31 61 29 33 66 39 | 36 20 42 75 61 56 7 37 87 10 29 81 31 66 39 45 68 33 40 1 73 83 52 60 59
Card 121: 68 47 97 53 77 5 49 72 80 10 | 43 45 55 22 65 8 62 66 33 21 24 38 81 70 28 17 93 37 58 16 5 54 26 68 64
Card 122: 29 48 43 45 95 85 50 42 18 73 | 96 2 30 40 52 46 17 98 13 89 7 53 87 26 15 63 28 22 62 19 27 75 21 69 38
Card 123: 65 28 6 43 83 45 1 91 87 5 | 66 37 35 48 6 27 4 22 23 69 46 40 70 75 79 17 24 59 90 39 9 7 57 3 56
Card 124: 71 94 76 77 98 48 95 75 83 17 | 17 4 99 70 81 28 23 78 45 20 94 95 76 42 48 98 19 77 30 39 69 71 87 83 75
Card 125: 95 32 66 41 96 34 4 68 84 36 | 28 8 70 80 73 68 58 91 57 14 42 35 36 6 22 60 38 32 77 82 4 16 67 10 95
Card 126: 88 46 26 45 74 65 80 56 53 8 | 60 63 56 33 78 8 45 74 85 95 65 86 53 70 21 38 68 14 88 79 50 26 90 75 35
Card 127: 59 71 83 32 11 4 56 39 63 96 | 86 23 1 70 26 50 47 82 98 42 13 15 35 12 94 53 81 79 19 76 29 45 75 99 27
Card 128: 55 53 47 95 28 54 38 83 46 67 | 52 67 46 40 94 95 69 97 54 21 99 66 23 4 98 83 48 62 3 11 29 28 38 63 55
Card 129: 86 33 98 10 56 71 70 47 31 38 | 4 52 20 65 93 74 92 77 46 58 48 9 59 27 45 69 47 83 88 40 95 73 76 21 35
Card 130: 81 39 87 51 14 71 4 46 88 63 | 70 37 69 8 65 95 29 6 89 54 33 50 96 66 2 32 19 28 90 48 87 26 61 21 4
Card 131: 94 58 41 40 68 24 98 55 5 4 | 54 87 82 35 53 14 60 58 4 41 43 62 72 16 90 49 74 30 50 42 5 98 18 68 85
Card 132: 55 22 59 97 67 6 90 7 36 51 | 59 66 49 61 25 72 45 93 79 47 50 71 64 69 1 6 16 4 23 7 94 8 53 48 15
Card 133: 65 81 78 4 73 64 36 80 58 39 | 56 54 59 73 64 46 93 76 53 65 75 41 43 91 33 5 89 60 13 98 24 85 1 57 58
Card 134: 23 48 64 31 94 12 13 41 80 99 | 37 68 31 45 5 30 84 22 89 83 41 65 76 9 3 18 53 85 50 69 12 72 99 8 58
Card 135: 6 24 58 1 3 61 45 44 51 70 | 86 78 64 76 66 72 97 5 27 16 18 25 82 32 48 89 62 93 54 75 83 84 57 59 91
Card 136: 79 25 90 32 19 21 2 24 94 67 | 51 22 65 48 70 4 1 84 86 50 9 30 18 3 99 67 89 26 34 42 73 93 27 78 63
Card 137: 24 1 69 7 49 18 4 37 14 68 | 22 2 67 41 56 43 6 60 94 92 23 83 1 31 13 75 70 5 97 64 88 44 73 72 28
Card 138: 12 1 71 46 95 25 37 51 26 27 | 3 11 59 90 92 42 72 65 44 13 97 75 58 39 76 10 45 94 69 86 35 85 73 20 89
Card 139: 39 70 36 62 71 18 92 69 24 96 | 39 16 50 54 92 24 70 97 62 69 10 36 78 33 15 96 18 19 11 42 99 71 86 27 80
Card 140: 2 11 39 42 10 52 33 71 23 31 | 38 62 73 52 78 92 84 10 35 34 2 31 88 71 59 41 42 45 46 95 64 11 33 23 39
Card 141: 47 44 18 9 54 6 31 16 83 81 | 81 88 85 47 18 6 40 9 83 24 68 20 84 95 16 54 82 36 1 56 31 44 74 23 14
Card 142: 32 76 54 78 4 99 53 43 18 47 | 19 83 76 63 74 44 85 75 38 1 17 24 12 7 66 31 84 87 54 22 18 34 88 97 50
Card 143: 25 14 81 19 44 77 92 76 5 54 | 82 14 77 15 69 84 76 25 62 20 24 95 92 44 78 26 5 19 3 54 74 60 37 50 81
Card 144: 49 7 6 5 94 20 54 64 98 97 | 98 93 69 64 97 50 62 5 11 20 6 51 55 2 21 39 28 76 81 71 7 26 52 91 95
Card 145: 1 2 66 49 89 56 10 76 7 39 | 86 81 43 39 54 53 58 14 17 29 24 1 19 80 88 82 73 62 20 22 12 37 91 28 23
Card 146: 41 69 32 57 15 74 27 61 25 78 | 74 15 27 69 25 17 32 19 78 43 6 60 8 41 30 20 62 73 47 61 76 58 22 37 57
Card 147: 11 52 81 6 4 55 73 38 46 50 | 66 4 52 11 59 78 38 73 89 37 35 54 43 99 44 80 55 68 98 29 6 56 50 81 46
Card 148: 34 14 67 27 32 70 61 86 81 72 | 70 86 40 53 44 72 61 50 79 34 46 18 10 14 81 7 30 27 64 28 32 66 67 5 55
Card 149: 80 90 17 95 51 81 61 83 50 3 | 42 4 83 95 11 51 40 43 90 80 38 50 78 18 61 10 23 94 3 8 86 17 62 20 81
Card 150: 96 54 30 34 82 41 76 53 51 85 | 31 47 82 96 22 76 73 25 29 41 10 79 17 9 46 35 30 71 34 97 48 74 56 64 37
Card 151: 28 53 3 51 48 79 73 36 58 42 | 28 61 21 57 43 19 67 75 73 85 80 11 22 25 16 93 70 1 64 97 54 20 86 50 89
Card 152: 31 90 47 70 45 88 49 61 39 5 | 19 9 22 11 74 95 53 93 14 46 67 36 70 32 34 27 55 17 65 89 40 16 90 96 12
Card 153: 96 4 50 16 90 83 48 53 51 13 | 97 33 91 56 23 63 6 70 14 15 61 40 39 94 20 81 84 85 60 80 99 58 38 96 54
Card 154: 44 63 29 65 41 23 7 83 42 75 | 2 75 92 65 80 83 24 10 29 96 25 69 8 71 63 60 15 44 38 6 42 20 41 30 12
Card 155: 32 11 13 85 55 53 14 84 60 1 | 23 29 40 96 89 11 8 14 7 94 10 83 91 4 17 31 80 85 82 72 3 38 15 2 35
Card 156: 60 12 33 95 54 83 55 75 62 51 | 20 29 37 38 96 69 68 47 39 15 50 99 78 30 86 77 74 4 22 40 97 26 71 66 35
Card 157: 41 75 99 89 3 48 52 25 76 46 | 90 64 99 18 55 84 38 88 92 34 75 77 51 48 42 39 3 23 61 81 91 72 52 40 47
Card 158: 92 41 45 24 86 6 77 59 14 29 | 92 67 83 70 37 32 25 80 94 23 86 64 5 34 85 98 8 89 96 90 97 51 73 91 81
Card 159: 60 91 37 80 5 16 98 14 42 21 | 87 91 96 48 59 39 2 9 50 37 19 28 86 11 26 49 46 30 94 36 4 24 13 72 15
Card 160: 66 49 88 17 67 95 14 40 76 27 | 6 55 34 72 75 31 2 1 64 58 17 61 67 96 28 24 89 57 3 40 60 22 78 52 21
Card 161: 60 2 57 77 76 71 83 86 47 90 | 27 31 51 94 55 96 74 88 52 61 40 45 48 25 30 1 92 58 19 95 29 11 99 4 41
Card 162: 52 25 5 95 78 96 45 64 1 97 | 85 74 62 83 16 67 30 13 40 55 93 80 86 21 79 44 9 51 48 54 70 49 18 65 28
Card 163: 87 32 84 63 65 89 76 91 88 82 | 10 14 29 16 47 77 2 6 12 35 5 51 31 25 55 7 9 52 54 36 71 19 95 96 17
Card 164: 87 10 68 76 17 14 85 43 46 54 | 16 91 11 99 26 28 19 46 43 66 71 76 27 14 37 61 57 32 24 85 54 35 10 23 17
Card 165: 1 81 96 5 47 22 18 50 20 30 | 38 97 4 68 13 23 40 63 35 2 30 96 18 60 50 65 20 54 55 81 7 56 71 12 6
Card 166: 32 6 13 30 68 46 80 86 84 57 | 84 55 30 31 46 48 27 53 13 90 70 98 36 37 24 47 80 57 67 79 68 19 86 6 22
Card 167: 7 9 30 92 95 91 45 88 36 65 | 35 15 81 19 60 25 47 6 2 44 46 83 91 95 88 78 23 68 79 10 92 24 40 89 98
Card 168: 90 37 32 3 18 52 95 88 51 48 | 89 4 99 88 48 52 24 32 73 50 18 72 28 33 51 3 68 11 91 67 82 95 85 49 7
Card 169: 10 4 66 41 71 40 61 99 26 25 | 43 44 21 80 92 10 23 96 17 7 66 89 55 52 78 97 4 71 57 31 61 74 9 25 30
Card 170: 16 95 6 49 5 4 25 82 90 54 | 3 43 73 16 82 35 80 60 4 15 68 42 57 49 37 5 13 2 32 89 47 27 95 58 25
Card 171: 93 40 32 45 97 57 69 82 13 8 | 94 40 90 49 82 20 14 74 53 93 79 57 92 96 66 6 30 77 48 45 97 9 70 87 8
Card 172: 19 58 52 85 39 80 76 6 43 94 | 42 50 21 94 51 40 28 82 83 52 86 17 4 35 62 81 99 48 11 14 47 84 39 49 20
Card 173: 88 65 36 24 56 11 30 46 86 55 | 36 93 43 68 42 49 74 62 87 1 57 27 45 66 13 81 5 90 38 16 89 80 85 77 50
Card 174: 53 92 23 87 93 61 30 45 74 27 | 44 25 75 6 27 93 81 49 30 98 61 87 23 88 18 33 70 29 53 26 43 60 74 84 45
Card 175: 79 19 52 6 60 13 88 64 96 32 | 7 86 41 34 85 92 40 39 46 58 3 94 50 99 15 44 38 1 89 73 11 37 54 14 36
Card 176: 94 48 56 28 3 25 41 35 69 51 | 10 58 30 51 80 1 70 83 35 61 90 41 56 54 67 48 42 11 76 74 9 66 86 50 19
Card 177: 2 38 58 92 90 25 20 19 1 29 | 30 69 24 88 82 96 56 3 49 99 59 28 48 74 13 41 8 35 71 22 93 12 33 37 14
Card 178: 66 79 20 37 85 81 57 59 74 6 | 85 94 22 5 63 13 99 25 97 68 71 95 83 98 18 39 53 9 27 30 62 69 38 15 56
Card 179: 5 83 63 48 88 69 58 74 61 24 | 33 96 73 72 76 43 99 21 49 69 10 82 16 75 78 68 24 67 54 57 51 66 97 20 94
Card 180: 79 80 85 56 12 24 64 2 18 88 | 42 73 57 65 66 71 5 15 81 55 37 34 9 28 61 51 36 48 95 3 83 63 77 75 96
Card 181: 78 70 14 88 48 82 3 39 7 17 | 82 49 21 50 24 42 43 29 10 94 86 85 73 3 36 6 27 32 35 57 1 34 33 93 89
Card 182: 89 44 72 14 32 61 50 71 95 5 | 49 60 69 20 28 68 67 98 10 42 12 87 84 53 24 51 7 3 40 36 76 63 33 30 29
Card 183: 13 26 72 88 49 5 50 40 92 98 | 9 70 43 45 86 31 32 66 71 38 57 85 77 90 61 28 44 33 7 37 8 29 54 46 78
Card 184: 49 99 25 65 26 54 76 36 19 10 | 55 38 85 40 10 6 42 72 81 50 92 76 99 49 71 65 30 51 62 52 36 93 69 54 88
Card 185: 77 29 7 74 5 22 75 27 44 45 | 56 18 52 7 6 75 15 45 84 35 5 54 69 29 91 97 77 71 22 76 59 74 27 1 44
Card 186: 1 23 90 57 54 91 26 84 59 36 | 13 36 93 90 99 71 23 61 57 91 49 1 59 30 53 81 84 14 69 9 5 29 76 26 97
Card 187: 44 80 8 63 43 30 53 85 67 96 | 63 66 87 46 55 67 43 80 98 96 54 44 60 72 99 30 4 8 85 7 53 13 77 29 15
Card 188: 59 29 55 98 92 42 74 62 79 16 | 90 59 74 8 33 14 73 79 41 57 65 21 88 12 35 61 66 97 22 48 72 44 9 80 91
Card 189: 35 18 56 44 57 22 3 27 99 39 | 70 22 62 35 44 17 86 72 27 46 38 39 57 69 99 25 21 18 26 56 85 5 97 24 81
Card 190: 24 77 20 49 58 11 2 89 67 32 | 93 65 59 18 16 39 54 23 83 92 48 94 87 89 67 13 78 84 29 63 95 98 37 38 45
Card 191: 45 48 30 52 3 10 95 59 76 44 | 3 50 43 91 90 88 7 76 9 48 14 86 59 40 52 35 44 10 41 13 95 82 62 49 33
Card 192: 31 43 97 75 42 91 34 80 6 99 | 55 22 2 31 3 75 15 90 34 29 82 63 42 93 1 80 99 97 68 65 62 83 50 53 6
Card 193: 24 45 50 40 55 81 14 26 92 6 | 13 64 85 73 14 66 92 56 3 24 70 40 6 45 1 19 37 23 31 63 81 4 39 27 75
Card 194: 36 4 19 20 99 45 54 58 61 79 | 74 59 53 27 11 79 23 29 90 85 38 52 44 69 14 41 7 1 15 80 56 91 35 31 26
Card 195: 71 24 91 55 15 62 68 74 28 78 | 30 24 77 12 98 35 67 66 48 95 65 27 59 4 41 23 82 69 31 15 3 36 92 25 83
Card 196: 42 43 26 49 51 25 75 40 69 20 | 6 16 75 18 64 82 4 36 27 87 60 91 46 42 26 33 93 52 24 31 55 29 19 70 86
Card 197: 52 78 18 87 19 20 26 50 37 67 | 16 52 96 77 13 99 48 53 86 98 51 71 84 81 41 5 25 27 29 3 72 26 22 68 2
Card 198: 48 73 57 9 63 74 42 12 29 85 | 45 77 75 4 69 72 54 55 64 2 86 82 49 95 36 99 34 13 98 79 8 1 23 44 93
Card 199: 95 81 47 40 28 2 20 16 12 77 | 38 75 27 28 73 65 10 24 77 85 78 66 61 4 80 96 69 6 7 18 23 42 83 51 50
Card 200: 71 94 29 5 99 61 56 14 76 54 | 97 70 48 45 89 46 90 79 20 75 66 44 87 19 23 35 47 60 6 61 43 98 18 21 83
Card 201: 67 83 3 45 26 56 4 57 75 19 | 16 1 68 43 27 82 55 71 37 59 33 93 13 8 25 12 15 44 11 48 41 17 47 36 35
+6
View File
@@ -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
+250
View File
@@ -0,0 +1,250 @@
seeds: 1263068588 44436703 1116624626 2393304 2098781025 128251971 2946842531 102775703 2361566863 262106125 221434439 24088025 1368516778 69719147 3326254382 101094138 1576631370 357411492 3713929839 154258863
seed-to-soil map:
2056129205 3495540274 7275274
2093671499 2217398614 16037515
144190400 1167267743 4402289
685148999 560842720 46363553
148592689 1382926008 71816170
241575914 1243634776 139291232
1686196783 543577846 17264874
2601917866 2486088541 222990187
1703461657 1454742178 45658441
4200618033 2052611543 79792525
2063404479 2445531749 30267020
3026695548 4113017544 181949752
73663477 607206273 70526923
3412143232 2195535041 20126067
1381626519 809568775 38912495
4280410558 3277485604 9635485
1285511345 435930218 30230711
2009679577 4060471919 23976534
491535670 129136847 193613329
3016405776 2475798769 10289772
2035393617 2709078728 12153762
1760083914 1171670032 71964744
3988522413 2233436129 212095620
2824908053 4084448453 28569091
799335774 434222608 1707610
2109709014 3568263067 492208852
2047547379 3502815548 8581826
1275917650 466160929 9593695
731512552 475754624 67823222
380867146 698900251 110668524
1315742056 1500400619 65884463
801043384 848481270 151647344
3208645300 3292042342 203497932
952690728 0 129136847
1081827575 1000128614 167139129
0 1731434235 73663477
1749120098 423258792 10963816
2853477144 3511397374 56865693
1585688167 322750176 100508616
3432269299 2721232490 556253114
1420539014 1566285082 165149153
2973473810 2009679577 42931966
220408859 677733196 21167055
4290046043 3287121089 4921253
2033656111 2215661108 1737506
1248966704 1805097712 26950946
2910342837 2132404068 63130973
soil-to-fertilizer map:
3192416630 3819045895 47516706
39972266 597632895 4546595
2584201752 2580457211 100644566
2272135078 174545609 40291463
2819419661 2681101777 89335599
3239933336 3528823147 72816699
44518861 2232362178 145175982
2519969464 2377538160 64232288
1852478702 2770437376 313570784
2166049486 2441770448 106085592
4133995881 3866562601 160971415
1626150228 975660836 106177604
2908755260 422379995 175252900
3312750035 4178991584 115975712
1142288544 1324281099 483861684
833150172 1928293653 304068525
1732327832 1808142783 120150870
2684846318 39972266 134573343
3133663001 4027534016 58753629
189694843 602179490 373481346
3758375673 4086287645 92703939
3428725747 3199173221 329649926
1137218697 2547856040 5069847
4068485661 3133663001 65510220
590707513 1081838440 242442659
2312426541 214837072 207542923
563176189 2552925887 27531324
3851079612 3601639846 217406049
fertilizer-to-water map:
153835826 1814144363 127150990
1926426485 1614900585 14868868
2139872846 3136260217 42408895
3310771078 2202805875 59788141
83898078 1578023222 36877363
652411041 1574694502 3328720
2080480520 3785135933 59392326
3370559219 3272622808 82257970
3132498144 2037809941 164995934
2678755579 3455437189 65205729
3674754588 3844528259 234175097
2182281741 3520642918 59000325
570340096 1492623557 82070945
2779822218 2446205321 138940597
2037809941 2703025450 42670579
3515202222 2342244856 103960465
3998026660 4136896949 144793347
955105072 0 84792564
3452817189 3073875184 62385033
77176799 1459627033 6721279
4142820007 4078703356 58193593
280986816 1091602584 230166265
1701766245 1321768849 78671169
2987155826 2872940965 145342318
2418013523 3615504153 169631780
2587645303 2262594016 79650840
2667296143 3354880778 11459436
2743961308 3579643243 35860910
1880850385 1046026484 45576100
3297494078 4281690296 13277000
2918762815 2804547954 68393011
1854575140 1466348312 26275245
3908929685 3366340214 89096975
511153081 1400440018 59187015
655739761 864167436 181859048
120775441 1629769453 33060385
2241282066 2745696029 58851925
2300133991 2585145918 117879532
4201013600 3178669112 93953696
837598809 84792564 117506263
1039897636 202298827 661868609
3619162687 3018283283 55591901
0 1736967564 77176799
1780437414 1662829838 74137726
water-to-light map:
279076302 606101520 367597147
3291538704 3736283841 125013874
0 1709355698 279076302
2106348780 1988432000 822929157
2929277937 0 362260767
890514202 2811361157 924922684
3416552578 973698667 444745137
1815436886 1418443804 290911894
646673449 362260767 243840753
light-to-temperature map:
208346365 819874354 29069132
731840321 689055790 58614896
4186248520 4104876526 108718776
3429769554 3384048873 23936103
1459123931 2691296758 217855736
790455217 952719646 105546549
1416544830 2047230764 42579101
0 1202755810 208346365
1399364673 1598820754 17180157
2576491919 747670686 452381
901868462 2408707242 282589516
3626168682 4259315983 35651313
341191657 748123067 71751287
2721433915 1411102175 187718579
3822370242 3740998248 198425166
3245552556 4213595302 45720681
1676979667 100628240 254569707
896001766 2041364068 5866696
3291273237 3245552556 138496317
3661819995 3580448001 160550247
2063025564 380090092 308965698
4020795408 3939423414 165453112
237415497 848943486 103776160
1931549374 1909887878 131476190
2576944300 1058266195 144489615
717031505 2089809865 14808816
412942944 2104618681 304088561
1209350123 0 100628240
1309978363 1820501568 89386310
3453705657 3407984976 172463025
2371991262 1616000911 204500657
1184457978 355197947 24892145
temperature-to-humidity map:
4116612848 1770461885 178354448
475467700 3077125572 130863723
1272723717 1181397963 5578998
3758341401 495891106 279864899
1687813623 1591451985 2235236
2530388822 2518678506 215908033
2282034531 2032693852 208761140
1471990450 379604394 116286712
1817301926 3588566075 238614487
3086830522 2960704657 28309403
3692580145 2002277669 19886809
616860797 3221548716 360840790
3115139925 1226570112 16611162
336172750 170230298 133118381
977701587 1693223682 77238203
1366414227 775756005 105576223
2055916413 2734586539 226118118
4038206300 2287329439 78406548
3712466954 2241454992 45874447
3556277513 2516499157 2179349
1278302715 2989014060 88111512
1588277162 1593687221 99536461
2746296855 3827180562 340533667
469291131 3582389506 6176569
1054939790 1960273136 42004533
1247816059 3207989295 13559421
2490795671 1186976961 39593151
1261375480 1948816333 11348237
36107015 881332228 300065735
1096944323 2365735987 150763170
3131751087 303348679 76255715
3558456862 36107015 134123283
3208006802 1243181274 348270711
606331423 2022164478 10529374
1690048859 4167714229 127253067
1247707493 1960164570 108566
humidity-to-location map:
3760908805 3662107228 155796250
1580497895 3884288658 144897726
3166374808 442179790 213926492
121876139 656106282 138383174
393463083 2300882189 128101885
2948945727 3512929162 110263469
521564968 2652674020 210495874
1940349169 3864399213 19889445
1197505529 794489456 93759960
904168980 2539693608 75416982
1725395621 3623192631 38914597
2881030575 888249416 49678445
2116891732 1943237764 146499392
979585962 2615110590 37563430
3143485439 3262014106 22889369
791255257 4029186384 109003936
4209132419 4140663408 85834877
1764310218 192277746 165625801
2023373170 2466550792 73142816
4140663408 4226498285 68469011
2269931546 1003317103 611099029
1291265489 0 119152028
2930709020 3243777399 18236707
732060842 1884043349 59194415
1410417517 1614416132 170080378
1960238614 937927861 63134556
1929936019 2089737156 10413150
3380301300 2863169894 380607505
3916705055 3291443897 221485265
355896365 2428984074 37566718
2254686 3817903478 46495735
2096515986 2280506443 20375746
1017149392 2100150306 180356137
0 1001062417 2254686
260259313 1784496510 95637052
48750421 119152028 73125718
3059209196 357903547 84276243
2263391124 3284903475 6540422
900259193 1880133562 3909787
+33
View File
@@ -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
+13
View File
@@ -0,0 +1,13 @@
import sys
if __name__ == "__main__":
if sys.argv.__len__() != 2:
print("[ERROR] Only the day should be specified")
print(" $ python src/main.py 1")
print(" $ make DAY='1'")
sys.exit(-1)
module_path = "modules.day_" + sys.argv[1]
module_selected = __import__(module_path, fromlist=[""])
module_selected.run()
@@ -0,0 +1,12 @@
import pytest
from src.modules.day_1 import spelled_trebuchet, trebuchet
def test_trebuchet():
path = r"./src/assets/day_1_test.txt"
assert trebuchet(path) == 142
def test_spelled_trebuchet():
path = r"./src/assets/day_1_b_test.txt"
assert spelled_trebuchet(path) == 281
@@ -0,0 +1,12 @@
from src.modules.day_2 import GameRecord
def test_cube_game():
path = r"./src/assets/day_2_test.txt"
game = GameRecord(path)
assert game.sum_valid() == 8
def test_cube_game_power():
path = r"./src/assets/day_2_test.txt"
game = GameRecord(path)
assert game.sum_power() == 2286
@@ -0,0 +1,11 @@
from src.modules.day_3 import Engine
def test_engine_parts():
engine = Engine(r"src/assets/day_3_test.txt")
assert engine.sum_part_numbers() == 4361
def test_gear_ratio():
engine = Engine(r"src/assets/day_3_test.txt")
assert engine.get_gear_ratio() == 467835
@@ -0,0 +1,9 @@
from src.modules.day_4 import count_real_points, count_scratchcard_points
def test_scratchcards():
assert count_scratchcard_points(r"src/assets/day_4_test.txt") == 13
def test_scratchcards_real():
assert count_real_points(r"src/assets/day_4_test.txt") == 30
@@ -0,0 +1,6 @@
from src.modules.day_5 import Almanac
def test_almanac():
almanac = Almanac(r"src/assets/day_5_test.txt")
assert almanac.find_lowest_location() == 35
+58
View File
@@ -0,0 +1,58 @@
import re
def run():
print(f"trebuchet total: {trebuchet(r'./src/assets/day_1.txt')}")
print(f"spelled trebuchet total: {spelled_trebuchet(r'./src/assets/day_1.txt')}")
def trebuchet(path):
total = 0
with open(path) as f:
lines = f.readlines()
total = count_calibration_lines(lines)
return total
def spelled_trebuchet(path):
dictionary = {"one": "1", "two": "2", "three": "3", "four": "4", "five": "5", "six": "6", "seven": "7", "eight": "8", "nine": "9", "ten": "10"}
total = 0
with open(path) as f:
lines = f.readlines()
for line in lines:
found_numbers = re.findall(r"(?=(one|two|three|four|five|six|seven|eight|nine|ten|[0-9]))", line)
new_line = "".join(found_numbers)
for key,value in dictionary.items():
new_line = new_line.replace(key, value)
total += count_calibration(new_line)
return total
def count_calibration_lines(lines):
total = 0
for line in lines:
total += count_calibration(line)
return total
def count_calibration(line):
init = None
end = None
for c in line:
try:
next = int(c)
if init is None:
init = next
else:
end = next
except:
pass
if end is None:
end = init
if init is not None and end is not None:
line_value = init * 10 + end
return line_value
return 0
+83
View File
@@ -0,0 +1,83 @@
import re
from dataclasses import dataclass
def run():
game = GameRecord(r"./src/assets/day_2.txt")
print(f"Total games valid: {game.sum_valid()}")
print(f"Total games power: {game.sum_power()}")
@dataclass
class Game:
id: int
plays: list[list[tuple]]
class GameRecord:
path: str
games: list[Game]
def __init__(self, path: str):
self.path = path
self.games = self.read_games()
def sum_valid(self):
sum = 0
for game in self.games:
red = 0
green = 0
blue = 0
for play in game.plays:
for item in play:
match item[1]:
case "blue":
blue = max(blue,int(item[0]))
case "red":
red = max(red, int(item[0]))
case "green":
green = max(green,int(item[0]))
if red <= 12 and green <= 13 and blue <= 14:
sum += game.id
return sum
def sum_power(self):
sum = 0
for game in self.games:
red = 0
green = 0
blue = 0
for play in game.plays:
for item in play:
match item[1]:
case "blue":
blue = max(blue,int(item[0]))
case "red":
red = max(red, int(item[0]))
case "green":
green = max(green,int(item[0]))
sum += red * green * blue
return sum
def read_games(self) -> list[Game]:
with open(self.path) as file:
lines = file.readlines()
games = []
for line in lines:
game_parsed = re.findall(
r"^Game ([0-9]+):(.*)", line
)
game_plays_raw = str(game_parsed[0][1]).split(";")
game_id = int(game_parsed[0][0])
game_plays = []
for play in game_plays_raw:
game_plays.append(re.findall(r"([0-9]+) (blue|red|green)", play.lstrip().rstrip()))
games.append(Game(game_id, game_plays))
return games
+144
View File
@@ -0,0 +1,144 @@
from functools import total_ordering
def run():
engine = Engine(r"src/assets/day_3.txt")
print(f"Part number sum: {engine.sum_part_numbers()}")
print(f"Gear ratio: {engine.get_gear_ratio()}")
class Engine:
engine: list[str]
neutral_char: str = "."
gear_char: str = "*"
def __init__(self, path: str):
self.engine = self.read_engine(path)
def get_gear_ratio(self) -> int:
sum = 0
for x in range(self.engine.__len__()):
for y in range(self.engine[x].__len__()):
gear = self.position_is_gear(x, y)
if gear[0] == True:
n_1 = self.extract_number_from_position(
gear[1][0][0], gear[1][0][1]
)
n_2 = self.extract_number_from_position(
gear[1][1][0], gear[1][1][1]
)
sum += n_1[0] * n_2[0]
return sum
def sum_part_numbers(self) -> int:
sum = 0
for x in range(self.engine.__len__()):
y = 0
while y < self.engine[x].__len__():
if (
self.engine[x][y] != self.neutral_char
and not self.position_is_symbol(x, y)
and self.position_has_part(x, y)
):
number_pos = self.extract_number_from_position(x, y)
sum += number_pos[0]
y = number_pos[1] - 1
y += 1
return sum
def extract_number_from_position(self, x: int, y: int) -> tuple[int, int]:
n = ""
while self.position_is_number(x, y):
y -= 1
y += 1
while self.position_is_number(x, y):
n += self.engine[x][y]
y += 1
return (int(n), y)
def position_is_gear(self, x: int, y: int) -> tuple[bool, list[tuple[int, int]]]:
if x >= self.engine.__len__() or x < 0 or y >= self.engine.__len__() or y < 0:
return (False, [])
if self.engine[x][y] != self.gear_char:
return (False, [])
total_numbers = 0
position_number: list[tuple[int, int]] = []
b = self.position_is_number(x + 1, y)
t = self.position_is_number(x - 1, y)
r = self.position_is_number(x, y + 1)
l = self.position_is_number(x, y - 1)
bl = self.position_is_number(x + 1, y - 1)
br = self.position_is_number(x + 1, y + 1)
tl = self.position_is_number(x - 1, y - 1)
tr = self.position_is_number(x - 1, y + 1)
if r is True:
position_number.append((x, y + 1))
total_numbers += 1
if l is True:
position_number.append((x, y - 1))
total_numbers += 1
if tl is True:
position_number.append((x - 1, y - 1))
total_numbers += 1
elif t is True:
position_number.append((x - 1, y))
total_numbers += 1
if tr is True and t is not True:
position_number.append((x - 1, y + 1))
total_numbers += 1
if bl is True:
position_number.append((x + 1, y - 1))
total_numbers += 1
elif b is True:
position_number.append((x + 1, y))
total_numbers += 1
if br is True and b is not True:
position_number.append((x + 1, y + 1))
total_numbers += 1
return (total_numbers == 2, position_number)
def position_has_part(self, x: int, y: int) -> bool:
return (
self.position_is_symbol(x + 1, y)
or self.position_is_symbol(x - 1, y)
or self.position_is_symbol(x, y + 1)
or self.position_is_symbol(x, y - 1)
or self.position_is_symbol(x + 1, y + 1)
or self.position_is_symbol(x - 1, y - 1)
or self.position_is_symbol(x + 1, y - 1)
or self.position_is_symbol(x - 1, y + 1)
)
def position_is_symbol(self, x: int, y: int) -> bool:
if x >= self.engine.__len__() or x < 0 or y >= self.engine.__len__() or y < 0:
return False
try:
int(self.engine[x][y])
return False
except:
return self.engine[x][y] != self.neutral_char
def position_is_number(self, x: int, y: int) -> bool:
if x >= self.engine.__len__() or x < 0 or y >= self.engine.__len__() or y < 0:
return False
try:
int(self.engine[x][y])
return True
except:
return False
def read_engine(self, path: str) -> list[str]:
with open(path) as file:
return file.readlines()
+67
View File
@@ -0,0 +1,67 @@
import re
def run():
print(f"Scratchcard points: {count_scratchcard_points(r'src/assets/day_4.txt')}")
print(f"Scratchcard real points: {count_real_points(r'src/assets/day_4.txt')}")
def count_scratchcard_points(path: str):
total = 0
card_list = read_scratchcards(path)
for card in card_list:
total += get_card_points(card)
return total
def count_real_points(path: str):
card_list = read_scratchcards(path)
card_index_list = [1] * card_list.__len__()
index = 0
while index < card_list.__len__():
card = card_list[index]
card_matchings = get_card_matchings(card)
if card_matchings != 0:
for n_card_index in range(index + 1, index + card_matchings + 1):
card_index_list[n_card_index] += card_index_list[index]
index += 1
return sum(card_index_list)
def get_card_matchings(card: tuple[list[int], list[int]]) -> int:
sum = 0
for number in card[1]:
if number in card[0]:
sum += 1
return sum
def get_card_points(card: tuple[list[int], list[int]]) -> int:
sum = 0
for number in card[1]:
if number in card[0]:
if sum == 0:
sum = 1
else:
sum *= 2
return sum
def read_scratchcards(path: str) -> list[tuple[list[int], list[int]]]:
card_list: list[tuple[list[int], list[int]]] = []
with open(path) as file:
for line in file.readlines():
values = re.search(r"Card\s+[0-9]+: ([0-9\s]+) \| ([0-9\s]+)\n", line)
if values is not None:
winning_numbers = list(
map(int, " ".join(values.group(1).split()).split(" "))
)
your_numbers = list(
map(int, " ".join(values.group(2).split()).split(" "))
)
card_list.append((winning_numbers, your_numbers))
return card_list
+146
View File
@@ -0,0 +1,146 @@
import re
def run():
almanac = Almanac("src/assets/day_5.txt")
print(f"Lowest location: {almanac.find_lowest_location()}")
class Almanac:
seed_list: list[int]
seed_to_soil: dict[int, int]
soil_to_fertilizer: dict[int, int]
fertilizer_to_water: dict[int, int]
water_to_light: dict[int, int]
light_to_temperature: dict[int, int]
temperature_to_humidity: dict[int, int]
humidity_to_location: dict[int, int]
def __init__(self, path: str):
self.load_maps(path)
def find_lowest_location(self):
lowest_location = self.find_seed_location(self.seed_list[0])
for seed in self.seed_list:
new_location = self.find_seed_location(seed)
lowest_location = min(lowest_location, new_location)
return lowest_location
def find_seed_location(self, seed: int) -> int:
soil = seed
try:
soil = self.seed_to_soil[seed]
except:
soil = seed
fertilizer = soil
try:
fertilizer = self.soil_to_fertilizer[soil]
except:
fertilizer = seed
water = fertilizer
try:
water = self.fertilizer_to_water[fertilizer]
except:
water = fertilizer
light = water
try:
light = self.water_to_light[water]
except:
light = water
temperature = light
try:
temperature = self.light_to_temperature[light]
except:
temperature = light
humidity = temperature
try:
humidity = self.temperature_to_humidity[temperature]
except:
humidity = temperature
location = humidity
try:
location = self.humidity_to_location[humidity]
except:
location = humidity
return location
# FIXME: Good but not performant, should improve by not storing whole ranges, just init, end and span
def parse_map(self, input: str) -> dict[int, int]:
l: dict[int, int] = {}
convertion_range = input.split("\n")
for r in convertion_range:
values = r.split()
d_start = int(values[0])
s_start = int(values[1])
both_range = int(values[2])
for i in range(both_range):
l[s_start + i] = d_start + i
return l
def load_maps(self, path: str):
with open(path) as file:
file_str = file.read()
seed_list_raw = re.findall(
r"seeds: (.*)",
file_str,
)
self.seed_list = list(map(int, seed_list_raw[0].split(" ")))
seed_to_soil_raw = re.findall(
r"seed-to-soil map:\s*\n(.*?(?=\n\n))",
file_str,
re.MULTILINE | re.DOTALL,
)
self.seed_to_soil = self.parse_map(seed_to_soil_raw[0])
soil_to_fertilizer_raw = re.findall(
r"soil-to-fertilizer map:\s*\n(.*?(?=\n\n))",
file_str,
re.MULTILINE | re.DOTALL,
)
self.soil_to_fertilizer = self.parse_map(soil_to_fertilizer_raw[0])
fertilizer_to_water_raw = re.findall(
r"fertilizer-to-water map:\s*\n(.*?(?=\n\n))",
file_str,
re.MULTILINE | re.DOTALL,
)
self.fertilizer_to_water = self.parse_map(fertilizer_to_water_raw[0])
water_to_light_raw = re.findall(
r"water-to-light map:\s*\n(.*?(?=\n\n))",
file_str,
re.MULTILINE | re.DOTALL,
)
self.water_to_light = self.parse_map(water_to_light_raw[0])
light_to_temperature_raw = re.findall(
r"light-to-temperature map:\s*\n(.*?(?=\n\n))",
file_str,
re.MULTILINE | re.DOTALL,
)
self.light_to_temperature = self.parse_map(light_to_temperature_raw[0])
temperature_to_humidity_raw = re.findall(
r"temperature-to-humidity map:\s*\n(.*?(?=\n\n))",
file_str,
re.MULTILINE | re.DOTALL,
)
self.temperature_to_humidity = self.parse_map(
temperature_to_humidity_raw[0]
)
humidity_to_location_raw = re.findall(
r"humidity-to-location map:\s*\n(.*?(?=\n\Z))",
file_str,
re.MULTILINE | re.DOTALL,
)
self.humidity_to_location = self.parse_map(humidity_to_location_raw[0])