Compare commits
14 Commits
7c310e290e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 2606c6536a | |||
| 441dac30b7 | |||
| fa4e8f7a58 | |||
| 988a2140a7 | |||
| 033c1b3b46 | |||
| 689cd30393 | |||
| 4939af7277 | |||
| 70694d6e07 | |||
| da16807457 | |||
| b8b74c8fac | |||
| 63765cedbe | |||
| fbe12ad205 | |||
| 0ca6d110e3 | |||
| 9c0c7f5df4 |
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
**/__pycache__/*
|
||||||
|
.venv
|
||||||
|
|
||||||
36
2015/data/day11/day11a.py
Normal file
36
2015/data/day11/day11a.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
def check(s):
|
||||||
|
if( 'i' in s or 'o' in s or 'l' in s):
|
||||||
|
return 0
|
||||||
|
count = 0
|
||||||
|
flag = 0
|
||||||
|
char = ""
|
||||||
|
for i in range(len(s)-1):
|
||||||
|
if(s[i] == s[i+1] and s[i] not in char):
|
||||||
|
count += 1
|
||||||
|
char += s[i]
|
||||||
|
for i in range(len(s)-2):
|
||||||
|
if(s[i] == chr(ord(s[i+1])-1) and s[i+1] == chr(ord(s[i+2])-1)):
|
||||||
|
flag = 1
|
||||||
|
if(count >= 2 and flag == 1):
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def gen(s):
|
||||||
|
temp = ""
|
||||||
|
if( (ord(s[len(s)-1]) - 96) == 26 ):
|
||||||
|
temp += gen(s[:len(s)-1]) + "a"
|
||||||
|
else:
|
||||||
|
return (s[:len(s)-1] + chr(ord(s[len(s)-1])+1))
|
||||||
|
return temp
|
||||||
|
|
||||||
|
test = 0
|
||||||
|
string = "hepxcrrq"
|
||||||
|
string = "hepxxyzz"
|
||||||
|
|
||||||
|
while(test == 0):
|
||||||
|
string = gen(string)
|
||||||
|
if(check(string)):
|
||||||
|
print ("yes")
|
||||||
|
test = 1
|
||||||
|
print (string)
|
||||||
File diff suppressed because one or more lines are too long
@@ -3,8 +3,9 @@
|
|||||||
# Python Code
|
# Python Code
|
||||||
# Developer : David Bandeira
|
# Developer : David Bandeira
|
||||||
|
|
||||||
import sys,time
|
import sys,time,re
|
||||||
from helpingFunctions import *
|
from helpingFunctions import *
|
||||||
|
import json
|
||||||
|
|
||||||
setSampleMode(False)
|
setSampleMode(False)
|
||||||
|
|
||||||
@@ -14,12 +15,29 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
def n(json):
|
||||||
|
if type(json) == int:
|
||||||
|
return json
|
||||||
|
if type(json) == list:
|
||||||
|
return sum([n(json) for json in json])
|
||||||
|
if type(json) != dict:
|
||||||
|
return 0
|
||||||
|
if 'red' in json.values():
|
||||||
|
return 0
|
||||||
|
return n(list(json.values()))
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
for dataLine in data:
|
||||||
|
dataValues = re.findall('(-?\d+)',dataLine)
|
||||||
|
for dataValue in dataValues:
|
||||||
|
gameScoreA = gameScoreA+ int(dataValue)
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
|
for dataLine in data:
|
||||||
|
gameScoreB = gameScoreB+ n(json.loads(dataLine))
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
def task(task: int,data) -> int:
|
def task(task: int,data) -> int:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# AOC Day Script Day XX
|
# AOC Day Script Day 01
|
||||||
# Date : 20XX.12.XX
|
# Date : 2024.12.01
|
||||||
# Python Code
|
# Python Code
|
||||||
# Developer : David Bandeira
|
# Developer : David Bandeira
|
||||||
|
|
||||||
@@ -14,12 +14,36 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
listA=[]
|
||||||
|
listB=[]
|
||||||
|
|
||||||
|
def getData(data):
|
||||||
|
global listA
|
||||||
|
global listB
|
||||||
|
for dataRow in data:
|
||||||
|
valueData = dataRow.split(' ')
|
||||||
|
listA.append(int(valueData[0]))
|
||||||
|
listB.append(int(valueData[1]))
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
|
global listA
|
||||||
|
global listB
|
||||||
|
getData(data)
|
||||||
|
listA.sort()
|
||||||
|
listB.sort()
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
for step in range(len(listA)):
|
||||||
|
gameScoreA = gameScoreA + abs(listA[step]-listB[step])
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
|
global listA
|
||||||
|
global listB
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
|
for step in range(len(listA)):
|
||||||
|
gameScoreB = gameScoreB + abs(listA[step]*listB.count(listA[step]))
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
def task(task: int,data) -> int:
|
def task(task: int,data) -> int:
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
|||||||
|
3 4
|
||||||
|
4 3
|
||||||
|
2 5
|
||||||
|
1 3
|
||||||
|
3 9
|
||||||
|
3 3
|
||||||
@@ -14,12 +14,24 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
def isCorrect(row):
|
||||||
|
inc = [row[i + 1] - row[i] for i in range(len(row) - 1)]
|
||||||
|
if set(inc) <= {1, 2, 3} or set(inc) <= {-1, -2, -3}:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
for report in data:
|
||||||
|
reportData = [int(data) for data in report.split(' ')]
|
||||||
|
gameScoreA = gameScoreA + isCorrect(reportData)
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
|
for report in data:
|
||||||
|
reportData = [int(data) for data in report.split(' ')]
|
||||||
|
gameScoreB = gameScoreB + any([isCorrect(reportData[:i] + reportData[i + 1:]) for i in range(len(reportData))])
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
def task(task: int,data) -> int:
|
def task(task: int,data) -> int:
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
|||||||
|
7 6 4 2 1
|
||||||
|
1 2 7 8 9
|
||||||
|
9 7 6 2 1
|
||||||
|
1 3 2 4 5
|
||||||
|
8 6 4 4 1
|
||||||
|
1 3 6 7 9
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
# Python Code
|
# Python Code
|
||||||
# Developer : David Bandeira
|
# Developer : David Bandeira
|
||||||
|
|
||||||
import sys,time
|
import sys,time, re
|
||||||
from helpingFunctions import *
|
from helpingFunctions import *
|
||||||
|
|
||||||
setSampleMode(False)
|
setSampleMode(False)
|
||||||
@@ -16,10 +16,20 @@ filename = getFilename2Data(aocDay)
|
|||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
for dataRow in data:
|
||||||
|
for x,y in re.findall(r"mul\((\d+),(\d+)\)",dataRow):
|
||||||
|
gameScoreA = gameScoreA + (int(x)*int(y))
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
|
multiplicator = True
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
|
for dataRow in data:
|
||||||
|
for x,y,do,dont in re.findall("mul\((\d+),(\d+)\)|(do\(\))|(don't\(\))",dataRow):
|
||||||
|
if do or dont:
|
||||||
|
multiplicator = bool(do)
|
||||||
|
else:
|
||||||
|
gameScoreB = gameScoreB + ((int(x)*int(y))* multiplicator)
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
def task(task: int,data) -> int:
|
def task(task: int,data) -> int:
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
@][mul(345,766);'(^mul(343,555)mul(532,723)'>mul(810,622)mul(163,901)select()@?who()select(643,43)'mul(598,56)#;do()from()~where()mul(905,791)select()/why()-when()~;mul(767,89)[#?&mul(874,668)!what(334,491):@@don't()#what()+{}who()mul(746,753)how()~+! -select(814,465)&mul(961,917)$!}?who()from(239,902)]mul(578,658);~' ]mul(693,262)~;mul(830,470)<%mul(310,717)what()when(392,442) :#${@mul(73,255)mul(673,551)+$[from(780,580)-mul(774,338)*:why()do()what(), >{* select()^mul(802,740)[#*mul(243,183)&don't()mul(806,801)from())where()(who()}>-mul(56,431):{,@/,<#mul(399,880)}how()what()~mul(512,540)}**,where()do()when()??what()>$*mul(365,444)who()]*where()> ^?%mul(114,504)what()who()~from()where()<select()^]why()mul(487,601)-from()>):who()how()<<:mul(953,560)mul(174,660)why()$#~mul(802,446)]from()?*%mul(306,304)who()where();mul(241,492)from()who()why()~from()&<?mul(299,824)]#>where()&[?+}who()mul(870,405)!mul(422,189)+]'what(588,411)select(58,996)mul(276,921)!why()#what(937,725)(where()mul(913,207){select() from()%[{}?;mul(818,262)&/]]what()'+?~&mul(440,835)?$)what()**(mul(347,140)%+mul(12,361) )what()@-mul(432,576)^@why()*#{*when()how()$do()@!*}:-'/~mul(310,592)&&&-:mul(492,471):{:mul(834,524)who()why()when()who())&$mul(234,340)[?<mul(891,396)/,what()when()&mul(142,532)&select()$what()!}^$from()mul(374,447)#+/>;where(){$~mul(155,220)&&mul(721,750)<*#mul(778,260)%,:$why()} what()select(){mul(777,312)@)what()~select();-mul(623,101))&:/]!-mul(127,361)[)%mul(139,822)mul(465,869)mul(677,898):{)'~mul(240,110)/who()mul(994,931)mul(449,745)?select()/what(),]/:mul(217,696)what()!mul(221,836)^^;where(481,276)mul(871,646)]^)(^select()!mul(649,851)why()>how()do()?;why()#what()how()mul(203,549)--^what())$:%~[mul(566,723)@,@when()@{mul(71,88)who()[{?mul(680,450)where()$select(838,381)?^from()mul(43,229))mul(715,689)what()*+who()%:select()mul(244,492)^what()!~ ([~[mul(114,868)what()~#when()+?mul(57,122)[?%[, mul(569,552)',<why()how()[mul(155,379)/how()#why()%]&mul(398,270)<#mul(249,749)who()mul(467,243)/!? >:don't()from()where()select()%who()!,[mul(760,25){~'<mul(993,817)#}(mul(884,716)#[%what()>?do();]]&when()who(439,358)how()mul(352,496)how(859,494)-<who()(-/?*don't()$)+'^*from(),how()$mul(412,194)/select()*mul(686,354)%what())^)from()$:select()don't()?;mul(452,313):mul(920,484){{who(437,704)what()#mul(751,237)^why(621,492)$;+when())mul(701,219)@{@who()mul(54,852))why(824,327)mul(117,489) why())'@<how()select()mul(763,475)%+where()@what()%>what()$,mul(986,853)((mul(43,897)who())+$;&mul(207,469)]^/mul(237,787))!when()'@+what()?]mul(542,157)mul(466,974)how()^+!!-[#[why()mul(678,165)[(:}#'*-!mul(616,117)select()mul(904,600)![why():)who(),$who(904,821)<mul(438,773):what()>/what(116,194)what()why()mul(720,13)mul(18?/^where()-mul(468,137)}$^(mul(990,391)mul(284,783)select()*how()%>mul(788,482)}#why()mul(211,898)where(24,695)-$mul(237,249)
|
||||||
|
:/@+@+mul(280,976)what()what(688,228)when()what()~from()?,/mul(920,121@?]^^mul(102,138)] :}when()&#~mul(171,496)-!mul(775,530)what(40,18)>[why()mul(178,21)mul(533,267)]&,<~-mul(576,4)*<@how()select()what():!mul(436,336)*what()where()>&who()$mul(463,367)mul(102,156)~mul(304,732)mul(970,264)({how()what(27,23)-'do()$*why()(what(932,987)#where()mul(807,956)&:((@()mul(773,746)-'where(); mul(445,526);who())why()^how()how()how()mul(420,885)]){mul(588,810&;how()!~don't()-&&)from()(<{from()%mul(138,683)$>why(707,353)<!mul^-from(),/select()*'$mul(479,204)!,,}%<mul(561,563)#mul(603,943)+({when()?(^ mul(406,737)how()>:how(){%+mul(152,58),((?!:+$ mul(43,304)+mul(715,799),what(),when()select()>select()mul(844,292)@:,'mul(900,791)[;#when()@]%mul(896-:'%>mul(123,811)when()where()why()*>]what(768,291)from()(/mul(612,112)mul(320,45))~&where()((who(68,102),mul(263,865)*why():><>%mul(628,402)don't(); $@how()!^: mul(947,979){-/(-mul(441,144)*;select(599,589)${why()-mul(103,568)}who()what() how()}how()<]mul(239,536)[*mul(537,157)how(640,298)how()@%)who()*mul(142,857) >from()!when()/*how(830,843)mul(199,630)select()do()*>/mul(63,689)$-/[;[when()why()mul(216,315)^where(),mul(181,124)why()%mul(696,385)~~;who()!][:}~mul+<mul(908,253)what()#mul(998,882)what(),+who()what(799,26)'%how()select(753,464)%mul(783,492)who()how();who()mul(863,499)when() ^~<;mul>*?[}{[?'mul(23,341)[select()}%what();who()-from():mul(655,135)^from()&~^how(),mulwhat()mul(661,325)mul(394,949)!$?&^where()'from()mul(564-*?$<do()/]@/!~'~mul(930,22)from(),[':who()who()&mul(891,111)#!#}do()mul(475,603)what():>-[mul(325,618);<from()&how(){<where()!mul(368,116)/mul(713,694)from()!^$}@~mul(231,596);]$/select()&mul(921,63)# %!mul(699,968)what()-]}where(909,380)what(529,893)mul(595,548)select()why()]?+why();~mul(863,866)mul(819,205)+why() ^~^do(){why()<^])where()when()<mul(947,557)what(841,423){mul(566!&'where()when()#how()*from()mul(595,561) ,<mul(766,730);?+?!mul(969,292);when())mul(808,242)where()($;>,]??mul(241,786)@!(,mul(395,180)(%)(%mulwhy(880,593)mul(543,182)!:'}why()what()from(75,377)/mul(242,439)^what() mul(211,696where()?@don't())how()/who()'how()~mul(487,649){{mul(761,854)?!mul(402,396)where()((who()why()don't()!:}{<+-mul(51,725)@where()from()>+{<%;-mul(471%/!from()$)-when()-;mul(468,893)mul(779,665)/what())&^-/mul(82,47)(/$how()[<<#@mul(966,718)]%mul(613,225);select()&%:~%&mul})[from(),[when(43,235)$}mul(635,416)?;%'~who()select(795,993)-mul(729,69)@[mul(754,156)>#]who()%from())what()mul(331,744))mul(536,505)>who() mul(270,727)from()+select()@mul(584,914)^what(188,788)what()mul(770,597)mul(566,371)<{{!}where()mul(431,257)~%{;/[don't()!mul(441,879))select()+~[why(206,654)+&mul(675,232)why(){who()+#how()where()when()mul(803,318){:mul(193,950)$when()?}}mul(850,957)<mul(280,994)@~}#from(642,549)mul(623,577)]why(156,208):mul(942,320)what():mul(795,192))who()'why()mul(602,200)){~!( <mul(429,600)-[where()when()!what()&{^do()<mul(60,862)&}select()-[what()mul(175,546)#how()+<&+mul(65,656)from()}-from()who(239,913)mul(367,375@-&mul(898,626)*&why(),~mulselect()%%when()^^;why()from()mul(705,654)~mul(188,25){')how()select()),who(){select()mul(456,326)who()how()[-<when()>*:~mul(481,93)
|
||||||
|
mul(473,855)mul(714,653):&'mul(98#mul(23,988)who()mul(561,251),@^){?&&mul(315,596)!'why()?, mul(151,933)]who()mul(883,474)$$#where())who()select())don't()why()where(),mul(41,669)! 'why()< mul(73,433)*[what(985,767)<]when()mul(258,921):}from(88,48)from()>~&:]mul(106,615)%(why();~what()[mul(278,729^'[^how()'<mul(963,821)@{$mul(828,159)#,?/mul(423,306)mul(455,647)how(){mul(551,989)]({}who(317,172)&<!mul){mul(785,154)when(734,601)+%^:when()mul(952,124>/!$ $don't() @-where()-$mul(748,984)when()#mul(366,193]where()$(#[mul(650,149); /when()${(mul(386,30)+,/$$$!^$don't() {how()mul(903,99)&/mul(992,909);}-/$'who()when()don't()from()~where())~mul;#who()why()mul(944,954):)#:> ]when()';mul(953,447{+]what()<mul(110,797)what(753,191)#how()don't(),;%[#$how(540,44):[mul(34,388)-%$mul(202,605)(where()where()*why()@)from()},do()#why():;why()mul(209,331)($&select(){don't()!)~what()select()+ }@*mul(132,620)select()}%;mul(555,449)<mul(187,685),~)mul(309,129):mul(152,923)mul(281,513)!~do()select(906,30)when()%/^},#who(18,247)mul(566,845)>-?'(')]when()mul(256,864)mul(359,893)mul(715,923,where()why()why()where(163,418)>^mul(550,432)&<mul(199,811)mul(293,689)()from()mul(298,628)>what()who()where()[@where()why()mul(412,403/{*;#-)&do()what():mul(228,774)&</<how()[<don't()}where()how()~}?<select()mul(351,71)&-from(714,406)@]where()when(416,192)&mul(427,424)!^$/!:mul(732,189):from(464,399)]where()'^#[why()-don't()how()@%':-mul(993,862)(mul(413,474)<-why()mul(388,540):@)/>[mul(386,547)+{from()mul(259,966) )#,/*select()+where()mul(59,320)!who()select()]mul(837,608)when()mul(862,367)where()where()*+)!:-:mul(639,867)?#-/from()<~do();!^@]>>mul(417,713)]why()*mul(751,602)%)mul(731,827)^(!mul(302,377)&!:)$>mul(814,103who()/]$mul(658,242)mul(393,286)(~{{who():-}[mul(143,747)$mul(654,923)when()when())@<-&from()mul(412,619)%'>mul(94,395)^where(36,302)mul(543,140)mul(894,717),where()who()~why()mul(194,32)( !where()how();^mul(952,751)*mul(564,368)&how(35,521)how()[::;:mul(578,119)^why(849,522)%when()?when()why()}mul(257,172)who()who()where()what()from()#>#what()mul(460,165)where()what()select()when()}select()when()!!select(258,759)mul(322,660)/]what()[%mul(341,188)<)(-^who()<mul(365,476) /what(100,508)}{)who(656,338)?mul(411,895)(*;> don't()%*mul(179,768)from()}>mul(633,949)&why()}mul(986,569)from()<select()select()+mul(562,736>(!why()select();mul(973,414)? 'from()how():@from()(mul(904,727)]why()]+mul(201,762)(how()who()what()how()(^mul(903,105)-+how()~?!+mul(344,148)##-mul(921,159)<$from()?--mul(885,837);,]why()from()*select()[who()/mul(542,794):{from()how() ^,mul(511,377)>:why():) when()}*when()mul(991,899)<(/+when())mul(244,653)%where(),where()why()(who()-mul(864,493)~where(645,381)who()where()mul*%)what()mul(585,982)](~mul(104,216)mul-]%select(573,835)>/-mul(888,953), ? !mul(969,193)who()how()^[when()who()%do()$,{%:()#mulwhy()%'+,}/how()-~when()mul(351,397)!;+ @^&mul(591,394)mul(581,992)from(){#)when()/ don't():}select()mul(833who(),when()how()*;when()mul(366,958)mul(41,963)mul(653,973);from()]-mul(902,82)mul(230,836)-when()[when()select()}mul(265,919);mul(748,89)!mul(3,621) ]](don't(){%:;,~&mul(378,465)}@>&mul(637,901)where()~@don't()[<;@>@<^mul(138,394)#!/usr/bin/perl]who();]})mul(356,794)
|
||||||
|
)*/}&{mul(151,94):who()!!!~mul(92,956)mul(188,489)!mul(52,932select(),where()select()$@@[;-do()#%]%:from()&why()mul(416,222)mul(78,182)%who()>{where()+;how()!@mul(456,135)('{how() ),~mul(469,864)$where()select()<#%?;mul(80,492)@][;<)?mul(970,872)-!~>$mul(989,699)where()<*~mul(998,127)mul(246,169)>,&,mul>(mul(564,254)?')from()-why()select()&mul(585,28){++select()who()who()!select()mul(105,926)~{)/@$#?mul(903,224)<where()%what()*!how()-mul(419,745)why()+-~:mul(555,225)mul(768,455){,~##? :how()mul(757,49)<do()>what()mulwho()<(mul(377,343),#+mul(731,518)/]~mul(104,159)<[ mul(864,248):^~[$;do()mul(671,810)from()(mul(373,295)-mul(612,243)*'why()'#mul(517,385)%-'mul(569,660)mul(149,268)why()mul(763,824)]^}!:[mul(432,368)mul(355,593)mul(325,34)%#,}(+mul:%select()-%%;why(),(mul(601,765)&%-//where()from()<don't()} >select()what(),;-mul(174,657~ where():when();&mul(818,690)%) 'how()mul(444,450)(mul(811,633)don't();~&/<from()!what()-mul(575,620)]what()&mul(785,442)'mul(728,359)mul(524/mul(837,37)~></[*;select()mul^$!/+#-{# mul(396,139)]<}[<mul(515,392)($$},{mul(390%%;what()[(*why(836,852)what()mul(209,850)@select(396,328)[select(95,951)who()do()$where(),select()';'& mul(566,669)/:,what()$; mul(859,210)what()/{where(285,363)?%mul(874,799):(]?,where(603,204)select()mul(757,524]'who()when()mul(328,112)]&~//^-!do()what()<#mul(576,717))/%#]$?(^!mul(985,658)*mul(437,756)~don't():(#where();}mul(328,143)?,$mul(861who()]'~*#when(383,63)]>mul(41,34)why()! } >,mul(657,550)mul(341,872) #when()>+/why()&what()don't()*mul(805,568)&}!(#>-@(&mul(938,730)-(,?mul(509,112)?select()+?how()mul(765,701)(-where() what()how(){mul(800,467)[]/mul(401,967)/ +<&*]mul(152,480)do()??why()select()select()&mul(367,114)-mul(857,679)%&@>#mul(710,252)how()<;select(71,168)(^[*mul(106,321)'<>/[what()mul(393,583)mul(733,744)<how(864,645)%;-when()who()when()mul(330,43)mul(79,29<:{%??})&mul(536,145)})where()mul(660,501)--/mul(859,387)'mul(548,10)from()/^,,}what(246,153){when()mul(199,787)how()^'do()' mul(197,500)#where()^/^{$? }mul(709,951)-!<;mul(225,263)^when()#select()what(246,578)^#mul}$from()-mul(771,673)what()<[what()when()%,:,mul(746,291)how(){'mul(887,752)mul(727,513)[ /+}where()?~'*mul(369,667)'{why()[,when()'))~mul(249,441)from()why()(&where()!])what()]mul(999,876)[^+]where()^<[?mul(186,379)mul(417!mul(806,263)#;how() mul(350,362):select());{{:don't()how()mul(426,218)&mul(976,892)-$ *who()from()mul(827<how())select(),;@~~select()>mul(731,76)]?what()$&select()mul(163,611)+})mul(44,657)%+}(when()mul(326,630)mul(316,4)mul(102,24)/^)when():~#%@{mul(586,357)*<;why()-where()~mul(830,113){#when()mul(854,851)-where()from()from()!',@mul(884,829)]-?$%-!who()mul(634,11)/when()mul(940,730)}who();+select()<<@mul(315,377)&:mul(947,179)}^<,&who(954,59)/'mul(354,837),select()from(266,967)['*mul(718,126)$ @*)why()mul(392,406)%*{select():from()[%why()mul(667,160)&%,(who(954,354)/where(){<why()mul(792,751)
|
||||||
|
';+$mul(477,277)}how()@!mul(397,838)from()how(338,380)mul(354,318)from())]why()mul(856,992)mul(884,933)mul(772,762)-where()select()/why()?mul(231,313)#@/^>!^mul(673,986)>;what()$select()mul(782,955)!how()mul(922,151)?why()<??how()~#/mul(666,118)from()@]mul(805,688)+where()why():),who()[):do()% ^){+how():mul(429,343)why()mul(31,538),~what()<^when(),when()mul(707,82)/where()}'mul(299,492)!~mul(668,532)why()mul(292,49):,why(784,47)how()]>]-^from()mul(473,251)when()$';~?%<select():mul(999,765)/()when()~why()mul(177,860)>]what()?+;#{what()mul(488,503)^select()?do()from()when(),^!mul(85,942)-}}mul(227,390)mul(270,642) #where()#?-why()mul(843,712)mul(853,87)what()'!who(682,875);,mul(132,10)??when()select()[%mul(440,436)how()>>^mul(332,464)$':;]~>](from()mul(251,318)why()mul(540,277)who())where()' &}] mul(937,405)>->mul(898,676)what()<where()/@)+what(635,885)}<mul(775,987)]mul(48,384)]$,-&$+mul(204,140)'mul(376,711)(&#<]+,#//mul(149,506)(who(851,170)?)&$-@'mul(192,996)-,<~mul(880,535)@when()*~where()when()^(mul(423,263)mul(866,358)mul(797,13)why(614,141) ~*-how()where();when()&mul(826,995)who()/]what()-,@how()mul(59,148))?select()when()(from();%don't()}# ?mul(645,651)]->when() +)<>@mul(796,954)^;$$when(752,554){mul(28,311)@!;)what()>+don't() }%where()'>mul(903,227)+@??+!mul(624,625)/>from()<:-what()@mul(216,114)&>select()mul(743,469)?where(956,943):];%from()do()&when(){from()@why()how()mul(611,802)where()why()[mul(561,982)who() *@from()'(<(mul(207,619)]$+mul(846,461)what()what():mul(552)-how()^/why()mul(163,195)-)mul(753,176)what()~mul(910,478)mul(209,230)&:mul how()+)select()don't()where()mul(106,878)~how()how()^'+[who()mul(86,13),mul(200,412)mul(285,237)when(){/,how()!'@mul(308,309)(#?select()(>!who()who()&mul(880,171)where(264,559)where()>where()do()what()+[(}where(259,87):!mul(709,722)how()>{who()$*>mul(527,907)from()how();:mul(670,931)%)'mul(855,264)*,>~{mul(548,28)((mul(599,821),}where()from()from()when()]?<when()mul(878,559)why():+%{don't()},<) ;how()'why()mul(994,645)<!mul(209,67)$$^?when()#@how()*mul(349,78);?<{mul(225,901)# ;/when(949,975)$;>-mul(818,682) why()when()^#~ 'how()mul(152,639)@<why()'@when(),*do()mul(177,655)&%:/*mul(600,255);'how(663,924)& [/,mul(5,953)&select()who()'}-!$mul(900,307)from()%*>^from(216,399)~who()mul(441,246)?:'<+#mul(763,310)don't()-'mul(289,172)from()'(!don't()~]^(where()&mul(218,233)mul(390,203';mul(535,511)who():}mul(685')(mul(922,128)$$mul(451/from(758,307)#:]/#mul(203,808)-#,-what(535,949):do()from(917,83)[ why()from()why()mul(338,424);who()what()+mul(170,324)how()mul(895,778)<^ 'when() where()>what()%mul(591,815)~how()who()mul(11,111)(~why()<}:why()mul(416select(550,793)select()&@] #what()mul(229,407)don't()when()what()}from()+(;when()(mul(18,891)-*+{where()do()#mul(435,135),>what()^^~when()*?when(791,112)mul(368,920)$/select()where()#/&what()mul(351}&)%from()mul(930,157)how()where()>who()<])mulwhen()}mul(682,770)from()%/:](mul(537,172); },what();!{&mul(289,489)>@ ;] where()mul(576,338)?~*~%{mul(854,88)&what()mul(726,742)who(32,67)why()@(mul(768,203)@when(23,700)what()/mul(468,338)
|
||||||
|
!-<%>>^/~!mul(543,650)[<*<((mul(528,681);?*$-when()> }%mul(746,92)from(327,471))mul(189,783)(:,(+how()@*mul(560,503):<mul(372,250)&*!<%why();when()mul(223,496)mul(975,639)!%*where()how()#{why()mul(457,568)when()]how()don't()!(?>&;$mul(324,880)why(){who()mul(70,798)~{mul(465,724)!+how())%~mul(85,858)why(520,207)from()&-when()[mul(951,807)'& !mul(678,463)?select(439,910)[%?mul(971,903)where()<~}){)*[mul(712,760)%how()*!!%mul(752,188)'when(729,35)mul(428,573){-~(,;why()mul(461,956)where()mul(456,895:,from())mul(353,754)<( *mul(141,974)why()why(){mul(497,471)]+~[why()mul(115,659)^@mul(662,675)$[}-?@&mul(34,6)why()mul(941,440)$what()%select()when()mul(103,793);why()>?when()what(){from()?why()mul(999,411)['}[~?& how()mul(487,886) :how()@{mul(41,651)mul(392,297)mul(681,343)@&)/how(692,299)who()/*$do()$mul(326,461)-how()>when()(when()do()';~what()why()* *select(839,422)mul(747,631),when()what() )@*don't()what();from()mul(358,222)]mul(100,430)when()+select()(!:,{who()#mul(761,79)*^mul(701,138))from()?,how()mul(389,248)]:-(#?select()+how()}do()[?when())from()>(mul(403,415)why()don't()when())*mul(31,786){mul(219,86)mul(360,469)when()from()$}/why()mul(851,189)*from()()from()? :!who()mul(746,316)(what()~!+-[#select()when()mul(714,622)!:~select()how()#&when()mul(222,991),/<where()mul(830,780)from())mul(57,161)#select()]where()mul(306,589)mul(498,365)/{select(887,432)![select()why()from()when()mul(581,239)how() how()&-?-@what()]mul(238,608)+/!]why() how()what()-mul(951,639)how()?~what()how()~''/who()mul(932,194)what()/(mul(391,952)$(% when()when()$]mul(392,789)^select()+mul(851,332)'{why()&%!^:mul(925,423)}[mul(541,179)%&:what()who()mul(123,427)how()])mul(159,908),$mul(917,718)how()(@]/where()~<mul(140,59)&$+]'%)how(162,710)mul(433,609){:mul(133,858)+-who()??}$select()%#mul(367,417)mul(517,827):mul(128,355)@'@->where()select()mul(389,819)where()*<mul(408,435)>what()/do()<&^{$mul(218,540)select()how();& ~where();%mul(593,988)where()},mul(277,30)#]+}mul(896,116)mul(59,615)who())do()!-why()?:when()>>when()mul(367,136)why()##what()what()mul(185,184)$~)+[what() mul(225,500)*why()what()'+who())}mul(178,560)select() when()don't()why())>+}>why(),>,mul(514,558)'?< >-'?,mul(36,747){~-why()?)who()~:mul(287,362)&mul(32,838)how()from()#when()what()%;who()mul(62,989)mul(199,673){*~mul(315,155)!where()$why()?:mul(10,649))'-{'mul(629,27)&#)'[who())!mul(195,137)%,what()~#}who()mul(606,783)!mul(481,349){mul(28,389)mul(628,171)<!]~>why()mul(208,827)?}{~why():why()don't()&,from()why()/%mul(735,558)@<%; where()select()+mul(178,387)+:>~?#where()-how()^mul(565,609)#$,why()<{^+:mul(130,74)from(815,775)){/#what(60,600),>where()#mul(347,919)what():/mul(377,21)>>@'^where()@/mul(395,896)who()/~{what(347,8)#(mul(335,630)/<select()who()]mul(932,564):,*}mul(180,332)mul(988,195)/how()~~)($^:
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
xmul(2,4)%&mul[3,7]!@^do_not_mul(5,5)+mul(32,64]then(mul(11,8)mul(8,5))
|
||||||
@@ -3,10 +3,10 @@
|
|||||||
# Python Code
|
# Python Code
|
||||||
# Developer : David Bandeira
|
# Developer : David Bandeira
|
||||||
|
|
||||||
import sys,time
|
import sys,time #,re2
|
||||||
from helpingFunctions import *
|
from helpingFunctions import *
|
||||||
|
|
||||||
setSampleMode(False)
|
setSampleMode(True)
|
||||||
|
|
||||||
aocDay = identifyDay(sys.argv[0])
|
aocDay = identifyDay(sys.argv[0])
|
||||||
aocYear = identifyYear(sys.argv[0])
|
aocYear = identifyYear(sys.argv[0])
|
||||||
@@ -14,12 +14,78 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
def checkNextChar(inputChar):
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def countXMAS3(data):
|
||||||
|
#ret = re2.findall("M.M\n.A.\nS.S", data, rotate=True)
|
||||||
|
|
||||||
|
|
||||||
|
for i in range(n):
|
||||||
|
for j in range(n):
|
||||||
|
if word_search[i][j] != 'A':
|
||||||
|
continue
|
||||||
|
if not is_inbounds(i+1, j+1):
|
||||||
|
continue
|
||||||
|
if not is_inbounds(i+1, j-1):
|
||||||
|
continue
|
||||||
|
if not is_inbounds(i-1, j+1):
|
||||||
|
continue
|
||||||
|
if not is_inbounds(i-1, j-1):
|
||||||
|
continue
|
||||||
|
if not (word_search[i-1][j-1], word_search[i+1][j+1]) in (('M', 'S'), ('S', 'M')):
|
||||||
|
continue
|
||||||
|
if not (word_search[i+1][j-1], word_search[i-1][j+1]) in (('M', 'S'), ('S', 'M')):
|
||||||
|
continue
|
||||||
|
result += 1
|
||||||
|
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def countXMAS2(dataMatrix,searchWord):
|
||||||
|
for x in range(len(dataMatrix)):
|
||||||
|
for y in range(len(dataMatrix[x])):
|
||||||
|
if dataMatrix[x][y] == searchWord[1:2]:
|
||||||
|
|
||||||
|
|
||||||
|
def countXMAS(dataMatrix,searchWord):
|
||||||
|
moves = [-1,0,1]
|
||||||
|
findings = {}
|
||||||
|
for x in range(len(dataMatrix)):
|
||||||
|
for y in range(len(dataMatrix[x])):
|
||||||
|
if dataMatrix[x][y] == searchWord[:1]:
|
||||||
|
for moveLength in range(1,len(searchWord)):
|
||||||
|
for moveX in moves:
|
||||||
|
for moveY in moves:
|
||||||
|
findingKey=(x,y,moveX,moveY)
|
||||||
|
try:
|
||||||
|
findings[findingKey] = findings[findingKey]
|
||||||
|
except:
|
||||||
|
findings[findingKey] = dataMatrix[x][y]
|
||||||
|
|
||||||
|
indexX = x+moveLength*moveX
|
||||||
|
indexY = y+moveLength*moveY
|
||||||
|
if (indexX < 0 or indexY < 0):
|
||||||
|
findings[findingKey] = findings[findingKey] + " "
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
findings[findingKey] = findings[findingKey] + dataMatrix[indexX][indexY]
|
||||||
|
except:
|
||||||
|
findings[findingKey] = findings[findingKey] + " "
|
||||||
|
return list(findings.values())
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
dataMatrix=[]
|
||||||
|
searchWord = 'XMAS'
|
||||||
|
for line in data:
|
||||||
|
dataMatrix.append(list(line))
|
||||||
|
findings = countXMAS(dataMatrix,searchWord)
|
||||||
|
gameScoreA = findings.count(searchWord)
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
|
gameScoreB = countXMAS2(data)
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
def task(task: int,data) -> int:
|
def task(task: int,data) -> int:
|
||||||
|
|||||||
44
2024/day04/day04a.py
Normal file
44
2024/day04/day04a.py
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
word_search = []
|
||||||
|
with open('/home/bandeira/git.bandeira/aoc/2024/day04/input.day04', 'r') as f:
|
||||||
|
for line in f.readlines():
|
||||||
|
word_search.append(list(line.strip()))
|
||||||
|
n = len(word_search)
|
||||||
|
|
||||||
|
def is_inbounds(i, j):
|
||||||
|
return 0 <= i < n and 0 <= j < n
|
||||||
|
|
||||||
|
# part 1
|
||||||
|
result = 0
|
||||||
|
for i in range(n):
|
||||||
|
for j in range(n):
|
||||||
|
if word_search[i][j] != 'X':
|
||||||
|
continue
|
||||||
|
for di in [-1, 0, 1]:
|
||||||
|
for dj in [-1, 0, 1]:
|
||||||
|
if (di, dj) == (0, 0):
|
||||||
|
continue
|
||||||
|
if is_inbounds(i+3*di, j+3*dj):
|
||||||
|
if ''.join(word_search[i+k*di][j+k*dj] for k in range(4)) == 'XMAS':
|
||||||
|
result += 1
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
# part 2
|
||||||
|
result = 0
|
||||||
|
for i in range(n):
|
||||||
|
for j in range(n):
|
||||||
|
if word_search[i][j] != 'A':
|
||||||
|
continue
|
||||||
|
if not is_inbounds(i+1, j+1):
|
||||||
|
continue
|
||||||
|
if not is_inbounds(i+1, j-1):
|
||||||
|
continue
|
||||||
|
if not is_inbounds(i-1, j+1):
|
||||||
|
continue
|
||||||
|
if not is_inbounds(i-1, j-1):
|
||||||
|
continue
|
||||||
|
if not (word_search[i-1][j-1], word_search[i+1][j+1]) in (('M', 'S'), ('S', 'M')):
|
||||||
|
continue
|
||||||
|
if not (word_search[i+1][j-1], word_search[i-1][j+1]) in (('M', 'S'), ('S', 'M')):
|
||||||
|
continue
|
||||||
|
result += 1
|
||||||
|
print(result)
|
||||||
@@ -0,0 +1,140 @@
|
|||||||
|
SXMSMMXMASMSSSSXAMXMXAMXXAAXMAMSAMMXMAMXSAMXMXMMMMSMMXMXMASMMSMMSSSMAXXMSMSSXMASMXSSSXSMMSSSSSXMASXSAMXSMMSSMXXXXXMASXMXMSSSMMSSMSSSMMMMSSXM
|
||||||
|
SAMAMSMSMSXAAMAAXMSXMSSSXSXMSMMSASASXSMSMSSMSSMXAAMXMASXSAAMAXASAXMASXSASMASMMSMMAMXSAAXAAXAAAASAMAXAXASAAAAMMSMMSMMMASASAMXSAAAAMASMAASMMAS
|
||||||
|
SAMXSAAXAMMMMMMXAXSAMMAMAMXMAAXSXMASAAMSXAXAAAXSMSSSSXSAMXMMASMMMSXAMSAAXMAMMMAAMASAMXMMMSSMMMMMASMXMMXSMMSXMAAAAAAAXMASMASAMMSMMMAMMMXMAMAM
|
||||||
|
SAMXSMSMAMAAXSXSSXSAMMAMAMASXSMSXXXMMMMSMMSMMXMSAAAMXXMXMXXMXXXASAMXMSMSMMXXAXXXMAXAMSXXAAMXSAASMMMSXAAXMAXMSMSMMSXMXMMMSXMXSXMMMMXSXSMSSMMS
|
||||||
|
MSSXMAXMASMSSMAXMAMXMMASAXMXAMAMXMMMXMXMAMXXAXSMMMSMXMMAMMXMAMSMMMSSXSAXMSASXXSXMSSMMSAMMMSAMMMMAAAAMMMSSXMAMAAAAMMSXXAAXXSASAAAXMASAAAAMAXA
|
||||||
|
XAXASMXSAMAMAMMMMAMASMMMMSXMSMSMSAASXSXSAMAMSMSAXSAMXAAAXMAMAMAAMAAMAMAMAMASAASAMAAXAXAMASMMSSSSSMMSAMAAMAMAMSSMMSAMMSMXXMMASMSMMSAMXMMMSMMM
|
||||||
|
MMSMMMAMMSXSAMAASAMXMAAAXMAXMAXAMSMSAMASXSXAMASMMXAAXXXMXMMMASMSMMSSSMSMSMAMMMMAAXXMXMMMXMAAAAXAAMAMMMMASMMXXAAAAMAMMAMXMXAAMXMAAMXSASXMAXAX
|
||||||
|
XAAAAMMSAAASXMSASASXSSMMSMMMSAMSAMXMAMAMMAMSMAMMXSXMSMSASXMSXSAMXMAXMAXXXAXXXASXMASMXSAMSSMMSXMXMMAXXASAMAASMSSMMSSMMASAASMXSAMMMSMSXSASASXS
|
||||||
|
MSSMMSMMMMMMMMMAXAMAAXMASASASXMXMAMSAMXXSAMXMAMMXSMAAAMSMAASAMXMSXMXMAMSSMMMSASMMXXAASXMAAAMAAMSXSSSMMMSMMMSXAXXXAAXSAXAXMAASXSAMXAXXSAMXSAS
|
||||||
|
XAAASXXAAMAAXAMSMMMXMMMMXAMAXAMXAMMSXSXMXSSXSAXXASMMMSMAMMMMAMMAMXXXMASXMAAXMAXASMMMMSAMSSMMMXMAAAMAAMAMMMSMMMSMMMSAMAXSAMXMSAXXSMMMAXAMAMMM
|
||||||
|
MMSMSAXSSSMMMMAXAXMASAXSMSMXSAMXXXAMMMMMAMMMSMSMASXMXMMMMAXSMMSASMSSSXMASXMXMMMAXMAMSSMMMAMXXSSSSMSSMMASAMAAAAAAAAMMMXMAASAXMXXMXMASMMSMMSAS
|
||||||
|
AXAXMAMMAXAXAMSMSMMAXMXSAXAMSAMXMMMSAAAMAMSAMXAMAXASXMASMMMMMASAMAXAAXSMMMXAAXMXMMMSAMASXAAAAAAAXAXXASASMSSSMSSXMXSXXXMXAMXXSSMMAMMAXSMAXXMA
|
||||||
|
XSASMMMMAMMSXSAAMAASXSASXMAMMSMASAMXMXXXAXMASXXSSSMMXMASAAXAMMXXMSMMMMMAAAXSXXMSASXMASXMSAMMMMMMMMMSMMXSXXXMAXMMSMSMSMSAMASXSAAAASMMMAMMMSXM
|
||||||
|
XSAMMAXMMMMSMSMSMSMMAMASASXMAAXXMASAXXSMSSSMMAXAAMAAXXASMMSSSSMSAMASAAXMMMMMAAAAMMASXMXMAXXXAAAMXSASAXMMMSSMXMAXSASAAAXXSAMXMSMMXMAASAMSASAX
|
||||||
|
AMAMSXSXMASMAMAMMMAMMMXMXAMMXSSMXXMAMSAMXAAMASMMSMSASMXXAASXAAASASAMSSSSSXASMMXMASAMASMMMAMXSSXSAMXSAMSAMXAMASMMMAMSXSXXMAXAXMMSMXSMMMMASXSM
|
||||||
|
AMMMXAMASMMMAMAMSSMMXSASXMMSAMAMAMMMMXAMMXMAAXMXXAMXXAXXMMSMSMMSAMAXXXAAAMXAXMXMAMASAAAAAAMXMMXMMMXMMMSASXMMXAAAMXMXXMMMSSMMASAAMMMMASMMMMMM
|
||||||
|
MSSMSAAAXAASMSMSXAXMMSASAAAMASMMASAMMSMMMXXMSSSMMAMXMSMXSAMMASMMMMSSMMMMMXXSXXAMAXAMXSSMSMSAAAXMAMXAMXXMAAXAMSMSXMXMSMAMAMAMAMMMXAASAXMXXAAM
|
||||||
|
MAAXSAMXMSMSAMXSMXMXAMAMMMXMMMXSMSASAAMAMAXXAAAMSAMAMAAMMAMSAMMAAAXAAAXAXMMMMMMMSXMMAAAAAASMSMSMAMSAMXMXSSMXAMAMMMAXAXAXXXAMASXXSSMMMSSMSSMS
|
||||||
|
MMSMSXMAMXMMXMAMMSMMXXAMXXSSXSASASAMMXSAMSSMMSMMSMSMSASXXAMMMMSXMXSSSMSMSMAAAASMMASMMSAMMMMAMAMXXXASMMSAAAASMMAMAXSSSXSSMMASASMXAXAAAAAAAAAS
|
||||||
|
MMAAXAMXXSAMXSSMASMAMXSXSSMASXAMMMMMXMXAMAAXXAXXSXSASAMMMSSMMASMMMXAXXAAAMMMSASAXXMAAAAXMXMAMAMMMSMMXAMMSMMAAMMXSMMAXAMAMSAMAXAMMXSMMXSSMMMS
|
||||||
|
MSMSMMSAMXAMAMAMAXMASMMAMXMXMMSMSAMSXMSSMSSMMSXXMAMAMAMSAAAXMASASMMAMSMSMSMAMXSAMSMSMSSMSASASASAAXXXMMMMAAMSMMSAMASAMXMAMXMMXMSXSAXMAXMAMMAX
|
||||||
|
AAXXAAXAXMAMXXAMXXMASAMSMMMSMAXMMAMMAMAMMXAMAXSMMSMSMXMMMSSMXXSAMXMAMXAAAAAMXAMMMAAXAAXASXSAXXSMSMMXMXSSMSXAAAMASMMMSXMAMAXMXXXAAXSXMASAAMAM
|
||||||
|
SXXMMMSXMMSXMSSSMMMASXXAAAAAMAMMMSMXAMASMXAMXMASAAXMSMXMAXAAXMMMMASAMMSMSMSSMAXMXMXMMMMAMMMMMMXMXASAMAMAAXMMMMSAMMASAASASXSXSAMMMSMMXXMAMMAS
|
||||||
|
AMSXSAMXSAMXAAAMAMSXMASXXMMSXSAAAXASMSXAMMXXAAXMXSMMAXMXMSMSMXAXSXSASAAAAXAXMAMSMSMXMMXXXAAAXXAMXSMXSASMMMXXAXSXAMMXMAMXAAAAXAAXXXMASMXSAMAM
|
||||||
|
XMAXMASAMASXMMSMSMSASXXMASXMAMMMMSASAAAMXASXMSMSMMASMMMAMMAMASAMMASAMXSSMMMSMSXSAAAASAMXSMSSMSASMAAASXSAMAMSMMMXSSSSXSMSMMMMMXSMXMMASAAAAMXS
|
||||||
|
SAMXSAMXSMMXMAXXXASXMXAMXSAMAMXXXMXMXMMXMMAAAAAAASAMXMSASMAMXXXAMMSMMAMAMXXAMMAMSMMMSAAMMMMAMSAAXMMMSASXMAMAAAXAXAAMAAXAXMAXSXMMSAMXMMMMXMXM
|
||||||
|
MAXAMASXSAMXSASXMAMXSXMAMMAMMMXMMXXXSMSXSMSMMMSMMXXSAMSASXMXAMXMSAMXMXSAMSSMMMAMXSXMXMXSAMSAMXMAXMAXMMMMSSSSSMSXMMMMSXSSSSSSMXAAMXMXSASMMMMS
|
||||||
|
SXMASMMMSAXXMASAMXXAXASMXXMMXXMSAAMMMMAMSAXAAXXXXSMMAMMAMMSMSSXAMXMXXAXAMMAMXSAMMAMSAMASAMXASMMSMSMSSXAASAAXXAAMMXMAXMAMAMXAMSSMSAAAMAAMAAAX
|
||||||
|
MAMAMASASAMXMAMXMMMMSAMXXSSSSXAMXMMAAAASMAMSMSMSMMXXXMMMMASAAAMMMSSSMSMSMSMMMMASXAMMMMASAMSSMXAXXXMXMSMSMMMMSSMAAXMXXAXMXMSAXAAASMXXMMMSSMSS
|
||||||
|
MMMASMMAXXAMMMSMMMAASXMMMAAAMMAMXMMMMSMSMSMXXMASAAASMMXSMASMMXAAAAAXAMAMMMAAMMMMMXSXXMASAMMXAMXMMMMAMSXAAXMAXAXSSXSMXSXSMASXMMSMSASMXSMAXXAX
|
||||||
|
SASXSXMMMSXXMAAAASMMSASAAMMMMASMSSMSAXAXAAMMSSSMMMXSAMMMMXXAXXSSMXSMSMAXAMSMSASASAAXMAXSAMXMMMAAAAXAXXAXXMMXSAMXAASAMAAAMAMAMAMXMAMXAAMASXMM
|
||||||
|
AMSAMXMMASAMXSSSMSMXSAMXSXXMXSAAAAAAAMAMMMSAMXAMXMXSXMAMXASXMXMAAXMXMMXSMMMXSASASMAMSXAMAMMAMSSXSSSSSMMSAAAXAMXMMMMSAMXXMASXMASAMSMMAMMXXAAA
|
||||||
|
SXXAMXMMAXAAMAMAMXAAMAMXXMAMXXMMMMMMMMXMSAMASXMMAXMSASXXMAASMSXMSMXAXSASXSAAMXMXMASMXXXXAMAMXAXMXAXAAMAAXMMSAMMXSXXAXXMXXAXAMXSAMAAMMXMAXSMM
|
||||||
|
ASXSMXMMSSMXMAMAMMMASAMXMSMXXSXMAXAXMXAAAASAMAASASASXMAASXMXXAAXAXSMMMXMASMXXAMXSAXXSMMSMSSXMASMMSMXMMMXXMXMAXSAMXMMMAMXSSMSMMMMSSMMMAMSMXAA
|
||||||
|
MAMAAXXAMAMASMSSMMXMMASXMAMXMASASXSSMMSMSAMXSSMMMMAMMMMMMAASMSSMMXXXASAMXMMMSSSMMASAMAXMXAMXMSAMXMASMSSMSSSSMMMASMAAMAXAAAAXMAAAMMSXSAAAASXM
|
||||||
|
XXMAMMMXXAMAAAAAASXMMMMMSASXMASMMXXAXXXAMXMAMMMXXMXMAMXMSMMMAAAAXSASAXXMMAXXAAAAMAMXMSMSASMMXMAMXMAMAAAAMXAAAXSMSMMSMSSSMMMMSSSMSAAMSMSMXMAA
|
||||||
|
XXASASXASXMSSMMSMMAMASXXSAXXSAMASXSSMMMMMAMXMAMXMMAMXMAAXXXXMMXMMXAMMSSMSAMMMSMMMASAXMAMMXAXAMAMSMMXMXMMMMSMMXMAMMSMAMAXAMXMMMXAMMMXXAXMASXM
|
||||||
|
XMAXAAXMASAAXMAXAXXMAMAAMAMXMXMAMAAAMAAMSXSSSSMASAMMSAMXMASMXSXMXMXMMAXAAAMXAXAAMXSAMMSMXSAMASAMAAAMSASASAAAXMMAMSASMMAMMMAMAXMXMSMSMSMMMXAA
|
||||||
|
SXAXXMMXAMMSMMMMAXSMSXSAMAMXAAMSMMMMMSXMXMAXAAMASAAASASAMMMMAXMAMSAMXMMXMMMMXSSMMMSAMAMXAXAMXSXMSSMXSASAMSSSMMSMSMAMXMXMMSMSMSAMXAAXAAAMSSMM
|
||||||
|
AMXSSMXMXMSAMASMXMMAXAMXSXSMMMXMAMMXXXSSMSMMSMMMXXMASMSASXAMXSMMMMSAAXMMMAXMAXASAASXMXXMSSMMXSAXMAMXMMMAMAMAMAAMXMAMXMSSMSAXMAMXSMSMMMMMAASX
|
||||||
|
MAXAMXAMMMMASAXAMXMAMAMAAAMXSAMSSMAAXMASAAMMMMSSMXMAMMSAMMSSMMMSAAXXXXMASMSXMMAMMMMASMSMMAMXAXMMSAMXMXSAMXSAMSMMASASAMAAAMXMMSMMXAAXXAAMSXMM
|
||||||
|
XSMXXSXSAXSAMXSSXMASXXMXSXXAMAXAMXXMMMMMMMSAASAXAXMXSAMAMAXXMSASMSMASMMMXAAXXMAMSASXMAAMMAMMMSXXMAMSAMXMMXMXMMXSAXXMMSSMMMMSAAASMSMSSSSMMASA
|
||||||
|
SXSAAMMSAMMXMAMXASAMXSMMMAMSSMMSSMSMSAAMMXSMSMMXSAMAMXSAMXSMXMASAMXMMAMAMXMMXMSXSASMASMSSXMAAMXMSXMAMMAXMAMMMMXMMSMSAMXMAASMMSSMAAXXXAMAMAAS
|
||||||
|
SASMXMAMXMAXMAXMAMXSAMXAMAMAAMAMAXAAXSMSAASXXMXAXAMAXMMAXMAXAMAXMASXSSMAXSAMXAMXMMMXMAXAASMMSSSXSAMSMSSSSSXMAMXAAAXAMASXMXSAMXMASASMMXMAMMMA
|
||||||
|
MAMXMSSSSSSSSSSMSMMMXSAMXAMXMMASMMMSMXMXMASAMXMXSASXSMSAMSMXXXMXXASXMASAMSAMXSSSXAAXSMMMSMMAXAMASAMMAXAAXAASASXMMMSAMXSAXASMMAXMASXAXMSXSSSM
|
||||||
|
MAMAAXAAAAXAAAMAAAAAMMASMXMASMXSMMMAAXAMXAXAMAAXSAMXAASXMAMMSAMSMXSASXXXMMAXAXAMMMSXMXMSMMMSMAMAMAMMAMMMMSMMASXASAMXXXSAMXSASMSXXMMMMMMXMAAX
|
||||||
|
MAXXMMMMMMMMMMMSSSMSSXAAMXXMXMAMAAMMXXSSMMSAMXSAMXMMMMMXSXXASAMXMMSAMMMMSSSMXMMMASMMXAXMAXAMXXMXSAMXXAMAMXAMAMMMMMSMAMMASXSAMXMXAMAMXXXAMSMM
|
||||||
|
SSSMMAXAXXXSMSXMAAAAMMMMXASXMSSSMMSMSMMAAASXMXMXMAXAXSSMMSMASXMAMAMSMAAAXAXAAMASMSAXXMSSMMSMMMMXAASMSSMAMSAMMSMSAMAAXXMAMMSASAMMSSSSSSSMMAMX
|
||||||
|
XAAASXMMMAAMMSAMXMAMXMASMMSAAAAMMSAMAASMMMMMMASMSMSSXMAAAXMMMMSASASMSXSXMXMSASASXSXMSMAAAAMAAAMAMMMAAAXAMAMXAAMMASMSMXMAMAMMXAXAAAAAAAMSAAMX
|
||||||
|
MMMMMMASMSMXAMXMAMXXMSAXAASMMMMMMSASXXMAXXASMXMAMXAMASXMMSMAMASMSXSAMXXXMMXAXMAXAMMAAMSSMMSSMMMMSMXXMSMXMXSMMSMSAMXMASMMMSSSSSMMSSMMMMMAMSMM
|
||||||
|
ASXSMSASAAAMSSMXXSAAXMSMMMSXMXMAXSAMXMMSMSXSAXMMMMASXMASXXXAMASASMMXMAMAMSXMAXSMASASMXMAXMMMMSMSAMXSAAAASASAXAAMASXMMMAMXMAMAMMMAMMXXXXMAXXA
|
||||||
|
SXAAXMASMMMMMAXMASMSMAMXMASASXSMMMSMMSMMASASAMSMSAAXMMXSXASMSASMMMSMMASAMAMXMAMXXMAMXSXAMMAAAAMXAMAAMMSMMASMMMSMSXMAXSAMAMAMAMASAMMAMXSMXMAX
|
||||||
|
MMMMMMAMXXXASAMMAMAXMAMAMAXAMAXSXAXMAAAMSMXMAMAAAMMMSMAMMXMMMMSASAAMSASXSAMAMMSASMAMAMMMSSSMSSSSSMSMXMAAMXMAAXAXMASMMAMSXSXSXSMSASXXXASMSSSM
|
||||||
|
SAXMASMMXASXMAXMSSSXMSSSMSMSMMMMMMMSSSSMMMAXAMMSMXSAAMSSSSSMSSSXMMXXMASASXSXSAAAMMMMMSMXAAAAXXMAXAMASXSSMMMSMSMSMXMMAMXMASMMXSXMXMASMMMAAAAS
|
||||||
|
SMMMXMAASMMMXSMAXAMASAAAAXAMXSAXSAAMMAAMXXSSSSMXXAMMASXAAAAAXASAXMXMMMMMMMMXMXMSMXSAMAAMXSMMMSMAMXMASAMAXAXAAAAAAAXMAXXMAMASAMMXSAAXAAMMMXMM
|
||||||
|
MAAXAXMMSAAMAXMMMAMXMMXMMMASXXASMMXMMMMSXXMAXMXSMASMMSMMMSMMMSMMMMMMAAAAAAXAMXXAAASASMSMMMASAMMXSMSAMAMMMMSMSMSMSMSSXSXMASAMAMAXAMXMSMXSSMAX
|
||||||
|
XSXSSSMASXMMMMASMMXMAXXXXMSMASXMXMMSSMASMMMAMMASMAAAAXXXAXXXSXSXAAASXSSSSSMMSAMXMMSAMMAMXSAMAXXAXAXXMAMXAXAXAMXAAXXMMMAMAMXSMMSMMSMXMMSAXSXM
|
||||||
|
MMXAAMAMXXXMXMAMMXAAASMMAXXMAMMAXXAAAMXMAMXMMMAXMSSMMSXMMMMXMASXXXMMXAMMAMXSAMSAXXXMXSAMMMAMXASMMMMMSMMSSSMSAMXXXSAAAMAMASMSXXXAXAXAAXMMMMXM
|
||||||
|
XMASMMSAMXMXSMMSMSAXMAAXSSSMSSSMMMMSSMSSSMMSXMMSAAAAAXMAMASAMXMASMSSMSMMAMSXAMSMSMAMXMAXMMAMXMAXAMAMASAAAAMAMASAAXMAMSASMMMXMMSMMMSMSMMXMMAA
|
||||||
|
ASAXXAMAMASAMXMAMMMMMSAMXAAAAMAAXXAMAMAAXMAMAMSSMSSMMSAXSASASAMAMAAXAAXSXSSMMMXMAMAMMSMMSSMSMXMXXXASMSMMXSMMSAMMAMAXMSAMAXMMSAAAMXXAXAXAAXAS
|
||||||
|
MMAXMXXAXSMMXXSASXSAAXMMMMMMMSSMMMAMAMMXMMSSSMXSAAMAMXXXMXXMMMMSMMMMSSMMXXXAAAASASXMXAAAMAAAXAXXMSASXSASAAXAMXSXMMMMAMMSMMXAMXMMMMMMMSSSSSMM
|
||||||
|
MMSMMSMXMMASAASMSAMXSXMXASXSAXXAXMASMSXAMMAAXSSMMMSMXMASMSSSSXAAAAXMAMMSSSSSMSMSXSAMSSMMSMMMSASAAMAMASAMSSMXSMSMSAASXMAAXAMSSSSSSXSAAXXMAAAX
|
||||||
|
XAXAAMMMASAMMMMAMMMMAAMSMSASXMSMMMMAAMXXSSMMMXMAMXMMAXMASAAAXMSSXMSMASXAAMAAAXAMAMAMAAMMAXXXXAXMXMAMAMAMXXXXAAXXMSXMAMSSMMAXXAAAMAXMXXAMSMMM
|
||||||
|
MMSMMSXAMMMMXXMMMXMMMSMAAMAMAAAXXMMXAMXXMMAMMMSXMASMSSSXAMMMMMMXAASMASMMSMSMMMASMSSMSXMMAMMMMSMMMSASASMMMAMSMMMSMMMSMMXAMXSXMMMMMMMMAMSAMXAA
|
||||||
|
XXAAAXMSXSMSSXSAMXSAAAXXMMAMMSMSASMSAMXAXSAMAAAASMMMXMAMMSXXXSASMMMMAMAXAMXMAMXAXAXAXMMMXMAAAMAAAXASASXAMAMAMAAAAAAAMXMAMAXASASXAASMASAAMSSM
|
||||||
|
XSSSXSAXASAAXXMASASMSMSSXSXSXAMAAAASAMSMMSXSMSSMMMSSSSMXAAXMAMMSMAMASXSSXSXSSSMSMMSAMXSAMSSSSSMMSSMMAMMXXAXASMMXSMSMSASAMASMMXSSSXSSXSAMXAMA
|
||||||
|
XMAAAXAMMMMXSASAMAXXXMXMAMAMXXSMSXAMAAMAMXMSAMXAXSXAAMXMMSSMAMXXXAXAAAXMASXAAXAAAXMXMAMAMAAAAAMMXXXAAMMMSSSMSXSAAAAMSMSXMAXAMAMMMMMMMMAXMASM
|
||||||
|
MMMMMMXMXAXAXAMSSXMSSMAMAMAMMMXMMMXSMMMAMXAMSMMSMAMMMMAASAXXAMXMXSSMMMMMAMMMMMMXSXMAMXMMMSMXMASMMSMXMAXMAMAAXAAMMMMXSAMXMSSMMAMAAXAMXXXMMAMM
|
||||||
|
AAXMASAMXXSMXMAMXAMXASMSXSXSXXAAXSMXASXSSSSMAXXMMMASMSASMXXMXSXSAMXMASAXMAMSAAXSMMSASMXXAMXXXXAXAAXMXSMMSSMMMSMSSXXAMAMMMXAXSASXXSAMXXSAMAAX
|
||||||
|
SMXXAMASXMXXSXSXSMMSMMMMMMXMAMMSASAMXMAXAAXSSXSMAXAMXMMAMMSSXSAMSSXSASXMAMXXXXXAAXSASAAMSMSMMSMMSMMSAMXAAAASXMAAXAMXXSMMSMMMMASAASMSAMSAMXSM
|
||||||
|
XAAMXSMMAXSAMXMASMXXAAAXSSSMXSAMXXMAMMMMMMMAXAXSMMAMAMSASAXMASMSAMXSAMMSMXMXSSSSXMXMMMMMMAMAAAXMMXAMASMMSSMMAMMMSMXMSMAAXAAAMXMMMMXMAMSAMAXM
|
||||||
|
AMSSMAMSXMMAAMMAXMXMSSSMAAAAAXXSAMMSXAAAAMSAMSMSXMAXAXSAMASMMMXMAMAMAMMAMMMMAAMXXMXXMMSXMAMSSMSAMXXXAMXMAXASXMAMAMASASMMSSSSSMXXMMMSSMXAMXMX
|
||||||
|
SXAAMAMMMXSMMMSAMXSMAAMMMMMMMMMXAMXMSSSSSXMASMAMMMMXMMMXMASASMMMSMXMAMXAMAAMMSMMAMAMMAAAMSMMAAXMMSSMASMMAMMMMXAXASMSASMXAMAMAAMXXMASAMSXXXXX
|
||||||
|
MMSSMXSXXAXASASASASMMXMMXSXASASXSMXXAMXAAXSXMMSMSASASXSAMMSMMXMAXASXSSSSSSXSAMASXSASMMXSMAASMMSXAAAMXMASXSAAAXSXMSXSAMXASMAMXSAMXMXSAMAMMMMS
|
||||||
|
MAMXMASMMSSMMASMMASXSMSAASMXSXMAAMMMSSMSMMAMXXAXSASASASMSMMXSAMXSAAAAMXMAMAMASAXASAMXMAXMXMMAAXMMSSMXXXAASMMSMMAXXAMXSXMXSMSXMMMMSASAMMAAAAA
|
||||||
|
MASAMASXAAAAMAMMMSMAXAMMXMAXXMMSMMAAMXXAXMASXSXMMMMAMAMMAXXXMAMAMXMMMMAMAMMSMMASMMSMAXMMAMSXMMSMMAXAMXMMMMXXMASMMMXMAAAXAXXMMMAXAAAMXMXSSSSM
|
||||||
|
SASXMASMSMSMMMSXSAMXMSMSMSXAAMMMXSMMSASMXMAXMAXSAMMSMXMSASMMSSMMSSMMMSXSASXSASAMXAMSXMXMSMSASXAASMMMAAXXXXXXMAMMASAMXMXMMSXMAMSMSMSSMXXMAMAX
|
||||||
|
MASAMXSMMXXAMXSMSASAMXAAASMMMMAMMMXSMAMMAMMXSAMXAMAMAMAMAXAAAAMXAXAAMMMXMXXXAMXSASMMSAXXMASAMSSXMAXMSXSXXMASMAMSSSXSSSMAAMXMAXXAXAMAAASXMSSM
|
||||||
|
SAMXXMSASASASAMAXSMAMMMMSMAXMSMSAMSAMXMXAMMMMASMSMMSAMMMSSMMSSMMSSSMSXAXSSSMAMAMAMAAXSMXMXMXMXMAMMMXAASMSAMXMAMMAMAXAAXMMMXXMXMAMXMMSMMAXAMX
|
||||||
|
MAXMAXSAMASXMAXAXXXAXXAMAMMMMMXSASMMSMSSMXAASAMMMAAXASXAAMMMAAMXAAAAXMMSMAXSAMASASAMMXXMMMSMMAXAMXSMSXSAXXXMXMXMAMXMXMMXASMAMSMMMAXXXXSSMSSS
|
||||||
|
SAMASMMXMAMMAMXSSMSMXSASASMSXSAMXMMAMMXAASMXMXSXSMMSMMMMXMAMXAMMMSMMMMMAMMMSXMXMXSASAXMAMAAAMMSSXXMAXAMXMSMSAAMSSMAMMAXSAXSAMXAAMMXMXMXAAAAA
|
||||||
|
MASMMAAXMASAMXAMAAAMXXAMASMSAMXXXMMASMSMMMMAAAMMMMMAMXSSXSXSASAMXAAAAASMMXXMASASMSAMXSASMSSSMXAMXSMSMMMSXAAMMMMAAMASMMMAMMSMSMSMSSSXAMSMMMSM
|
||||||
|
SAMXSMMXMASASMSSSSSMMMMMXSAMSMMMSSSMMMAAMASMMAXAAASASXAXAAASAMXSSSSMSAMXSXAASAMXAMXMAMXMXXMAMMASASAAAAAXSMSMSAMXSMXMAAXMMXXXSAAAAAMXXXAMXMAX
|
||||||
|
MMSASAXXMASAAAAAAAMAAAXMAMXMMSAASASAXXMXSASXXMAMSXSASMSMMMMMAMMMAMXXMMXMAXMXXMXMSMAMMMAMXMMMXSSMAXXAXMSMMXXAMASAAAASXMMXMAMAMSMMMXMASMMSSSMS
|
||||||
|
SMXAXMMSMASMMMMSMSSSSSSMASXMAMMXSAMXMMSAMXSMMMSAAXMXMAMSXAXAMXMMMMSXSSMSAMSASXMAXSMSSSMSMSAXASAMXMXSAMXAXAMXSAMMSMXAMXSAMAMXXAXASXMMSAXXAAAA
|
||||||
|
MMMSSMAXAMSAXMXXAAAAAAAMASMSMSMAMAMXMAMASMMXSAMMAMXAMSMSSMXXMAXAXXXAAAXMAMMASXMAXAXAXAAAAMASMSXSXMAMMXSXMSSMMXMAXMMXMASAXXSMSXXXSAAXSXMMSMMM
|
||||||
|
SXAMAMXMMXMASMMMSMMMSMMMMMAAAAMASAMMXAMSMXAAMAMXAASMSMMMSMASMMSASMMMMMMMAMMXMAMXMMMSSSMSXSAMXMASMMMSMAMMMXAMXAMXSMSXMASMMSMMXSSMSMMMMAAXMXXX
|
||||||
|
AMSSMMXMSAMXMAAAAXXAAXXSXMSMSMSASASXMSSXAMMMSAMSMMMMAAAAMXXSAAMAMAAXMXSXXSMMSSMAAXAMXAAAAMXMAMXMAMXAMASASXXMSXSMAXSMMMSAMXAAAXMASAMASXMMMMAM
|
||||||
|
MXAMXMAMAASXSSMMSSMSSSMXAXMAMMMAXXMAAMAMXMAXXMMMXAAXSSMSXMAMMMMXMSMMMASXAMXMAAXSMMSSSMMMSMMMXXSSMMSXMASAMXAXAASMSMMAAAMXMSXMASMAMAMMSMMAMAAX
|
||||||
|
XMAMAAXXAXAMXAASXMAAMAMXMMXMXSMSMXMMMMASXMASXSAMMSSMXXAAXMAMMMMMMAMXMASMSMAMSSMXAAXXMAXAAXMASMMAXASMMMMXMSMMMSMAXASXMMSAXMAMSAMXSSMAXAXAMSSS
|
||||||
|
AXSSSSMMMMMXSXMMMMMMMAMMXSXMMXAMMSSMMSAMXMASMMAXXAMXMMSMXSAXAAAAMASAMMSAAXXMAAXSMMSASAMSSXSASASXMMSAMXASMAMXMAMMMXMAAASAMXSMXXXMAMMSMXXAMAMX
|
||||||
|
SXMAAMAASASXSAXSAAAXMMXSAMASAMXMAAAAAMAMXMAMAXAMAMXSAXAAMSAMSSSSSMSASAMMMSMXMAMXAXXAMXMAAAMASXMAAASAMMMMSMSSSMSMSSMMMMMSAMXAMXMMAXAAAMXSMMSS
|
||||||
|
AXMSMMMMSASASMMMSASMXSAMASAMMSXMMSSMMSXMXMMSSMMMXSAXSXMSMMXMAAMMAMXMMAMAXAMMSMSAMXMAMXMMSMMAMXSMMMSAMXMAMXAAAAXAAXASAMXAMAMAMSXMMMMSSXAMXXXA
|
||||||
|
MXAMASAAMMMMMMXXAMMAAMMMMMXSXMASAAMAMSXSAAAAAAXXAMXSMXXMXMMMMMMSSMSMSMSMSMSAASAXXAAAMAXAMASXSASXMASMMXMSSMMMMMMMMXXXAAMMSSSXMXSAASAAMMMSAMAM
|
||||||
|
XMAXAMMXMAAAAXMMMSMMMMAAXMASAAMMMXXSMSASMSMSSMMMSSSXMAMMAMMMSAMMXAXAAAAAMAMMSMMSXSMSSSMMSAMMSASMSAMXXAXMAMASXMSAXXSMSMXXAAXMAAXXAMMMMMXAAMAX
|
||||||
|
MSAMSMMSSSSSXSAAASASAXSXSMAXMMMXXXAXAMAMAXXMAAXAAXMASXMSSMSASMSMMMMSMXMSMAXXAAXMXXAAMAAAMMSAMAMXMASXSMMSAMASAASMSMSAAMXMMMMSMSSSSMSAASMSSSXS
|
||||||
|
XMAMMAXXMAMAXXMMXSAMAMMASMSSXXMASMAMAMSMMMASMMMMXMSAMXMAXMMASXAMASAMXXSXXMMMXSMMAMMMMSMMSASXMMMMSSMMMMAXXMXSMMMAAAMSMSAMAMAAXXAAMAMSMMAMXMAM
|
||||||
|
XXAMSAMMMSMMMMSMMMAMXMMAMAXMASMASMMMMMXAXXMMMMAXMAMASXMSSXMMMMMSAMMMSMSAXSASXXMMAXMAMMXMSAXXSAAMXMSASXSSSSMSAAMXMSMXXSMSAMSASMAMMAMMSMSMSMSM
|
||||||
|
SSMMXMAXAMAAASAAAXAMXSMMMXMMASMMMAXMMAXXMMSAMSAXSASAMXAAXXSAMXXMMXAXAAMAMMASAAXSAMSASMMMMSMXSSSSMMXSXAMAAMASMMSSMXASASASXMAXSAMMSAXMAXAAAAAM
|
||||||
|
XAMAMMSMSSSMXAXSMSMSXSAXMMMSASAMSAMXMASMAXSAMMAMSAMXSXSMSASASMMASMMSMSMXMMAMMSMMAMMASAAAAMMAMXMXAMMXMMMMMMMSMXMASMXMAMMMSMSXMAMAXXMSMSMSMMMX
|
||||||
|
SAMXSMAMXAAXSMMMAAXXASXMAAAMMMAMXMMMMAMMSMMXMXMXMSMMXAAXXMSAMXMAMAASXXMASMXMAAXXSMMSMMSMSMMASXMXAMXMASAXXMAMMXSAMMSMXMXAAXMASMMSSXMAXAAAXMSS
|
||||||
|
SAMXMMAXMSMMAXASMMSMXMMSSMSSXSSMMSAMMASAAXXAMASAAAMMMMMXXXMXXAMASMMMMMMASXSMSMXAMAXAAXXMXXSASAASMMMSAMMSMMMSAAMAMXASASMXSAMMMAAMAMSAMMSMSAAX
|
||||||
|
SMXASXSSMXXAXMXXAAXMAMXMAMAMXAXAASASXMSMMASMSASMSMMXSAMXMASMSMSXXMAXMSMASXXXMASMSXMMXMMMMAMAXMMMMAXMAMXAAMXMMXMAMXMSXXAXMXMMSMMMSAMXXXMASMSM
|
||||||
|
SMMXSAMXAMXSSMXSMMMSAMMSMMASMMMMMSMMXMSASMAAMAMMXAXAMAAMSAMAAAXAMMMMAAMMMMXAMXMXAMXSAXAAAXMASMSMSSMSAMSMSXXXSMSSSSXMMSMMMSMXAMXXMMXSAAMAMXAA
|
||||||
|
XXAMMXMMXMAMAXMAXSASXSAMAMSSMAAAASMASMSAMXXMAMMXSMMMSMXXMAXSMSMSMASXSMSAAXMXMAXXXSMSASMMMSAXXAAAMMAMMXAAMMMMMAXAAMXMAAAMAAMXAMXXXXASMSMAAXXS
|
||||||
|
AXSXXAXAAMASAMMSXMASXMAMSMAMXSSXXSMASXMXMASXSSMXXAAAAXMXXXMMSMAXMASAAXSMXSASXMXSMMAMAMXAASXMMSMMSMSMMSMXMAXAAXMMMMAMSSSMMSSSSMMMSMMSAMMSSSMM
|
||||||
|
SAMXSMSSXSXSXMXAMMAMMMXXXAMXAMAMSMMMSASXMXSAMXMASMMSSSMSAMXMAMSMSXMXMMXXASMXAMMXAMSMAMXMMSAXAAASAAMAMXSAAMSXMSSXAMXMMAAMXAAMMAAXMASMMMAAAAXM
|
||||||
|
MAXAAAAXMMMMAXXMSMASMMMAMAXMAMAMAAMXXAMAXXMMMSMAXAAXAAAXMMAMMSXMASAMXAXMASXXSMASXMMMASMMMMMMXXSMMXXAMASXSXXXASAMXMMAMXMXMMSMSSMMSXMAAMMSSMMS
|
||||||
|
SSMMMSMSMAAXAMXMAXASAAXXSXMXMSSSSSMMSSMMMMSMSAMMSMAMMMMMXXAMXMXXMASXXXSAMXMSMMMXMAXMAXMASXSAMSAMXSSXMAMSAMXAMMAMAMSXMMSXXXMMXAXASXSXMSAMAAXA
|
||||||
|
MXAAAAXSMSSSMSXMAMSSMSAAMMMMXAAAAXAXAMASMXAXSAMXAXXXXASMMMXSAAXMXXMMMMAXXSXAXXMASMMMSSSMSMMAXSAMXXASAMXMMXAMASXMAXASMASXMMMXSMMMSASAXMMSSMSM
|
||||||
|
MSXMSMXMXXMAMMASXSXMAMMXMAAASMSMMMSMMSAXASXMXMMSXSMMSMSAXAASMMMMSMMAAXMMMMMMSAMXXMASAAAAXAMXMMAMXSAMXMMAMMSSMXASMSAAMASASMMASAMAMAMMXMAMMAXX
|
||||||
|
MAAMAMSMSSSMMSAMMMAMXMXAMSSXSXAAXXXAMMMSXXMASMMSAXXAAXSAMSMXAXSAXASMXSAAXMAXMXSXMASMMSMMMSMMMXMMMXAMXMAAMAAMXMMMMMXMAMSAMAMMSAMMMMAXAMAXMSMM
|
||||||
|
MMSMASXAAMAXMMMSASMMXMSXXAXXMXMXMMXMMAAXXAMXMAASASXSXXMAMXASMMMXXXAAXSMMSSMSAMMMMSXSAXMMAXAXXASASMAXSMSSSMMSSSMXAXASXMMAMXSXSAMXMSMSMSAXSAAA
|
||||||
|
XAAXXMMMMSSMXAXXMAAASMMSMMSSMSSMASASXMXSXXMXSMMMAMXAMSSMMXMAMAMAMMMXMSAMXAASXSAAMXAMXSAMASAMSMSASXMMXAAMAAXAAAXSXSASXMMAMMAASXMAXAAAXAASXMXS
|
||||||
|
MSSSSXMXAAAMSMSMMSMMMAAAXAXAAAXAXSASAMXSXSAMXAXMXMXMMXASXXSMSAMAXXAXSXMSSMMMASXSSMSMMSMAMMXMMAMAMMSMMMMSSMMMMMMXMSAMAMSMSAMXMASMSMSMSMSMXXSM
|
||||||
|
AXAAXMASMXAMAAAXMAAXSMMMMASMMMSMAMAMASXMASXXXXXMASXXSSMMMAMAXXXMXMMSXAXMASMMAMMMMAMMMMXMMMMSMAMAMAAMAAMMAMMSAXXAMMAMSMAAMXXAMXMXMAXAMXAAAMAM
|
||||||
|
SMMMMAAXMASMMSMSSSSXSMAMMMMAMXMMAMAMMSAMAMMMMSMSMSXMAMAAMAMMMSMXAAMXXAMSMMXMAXAAMAMMAMAAAAMXSMXMMSSSMSMXAMASASXSSSMMASXSSSSSSSMASMMAMSMSMMMS
|
||||||
|
XAAXSMMSSXMAAXAAAXMAMMSAAASAMMAXXMASAXXMASAAXXMAAXXSSMSMSMSAXMAMSMSAXMMASMASXSSSSMXSASXSSMSAMXMSXMAXAAXSSMMSAMAMMMSMASXMAAXXAMSASASXMXAXXXXS
|
||||||
|
XSXXAMAMXAMMMMSMMMXMAAXMSMSMSMSXSMXMMSXMXSASXMSMSMMMMAAAAAXXSMSMAAMMMXSASMXSMAMAMAXMASXAXAXMMAMAAMAMMMMMMAMSMMAMAAMMAMAMMAMMXMMXSAMXSMMMXSAS
|
||||||
|
MXMMMSMMMSMSAMMAXAMXMXSAXXMMAMXASAAAAAAMXSXMAXSXAMSAMSMMMSMMMAMAMXMMAMMAXMXXAAMAMAXMAMMMMSMMSXSMSMAXAXSXSAMXASXSMSSMMSXMXMMMAMMMXMMMSAAAMMAM
|
||||||
|
AXAAXAAAAAXSASXSMSAAXMMMMASXXXMAMSSMMXSMAMAMXMSAMXAXMXXMAMXAMMMAXAXMSSSSSMXASXMSMSAMAMAAAAAXXXXAMMSMMMAASMXSAMXXXMXAASAMXMASAMAMMXXXSSMSMMXM
|
||||||
|
MMMMMSSMXXXMMMAXAXSMMMAAMAMXMASAMXMASAMMAXSASXSXXAMMMMSAMXSMSASMSSSMAXAAAASXMSXMAMMSASXMSSSMMMMMMAXASAMXMAASXSMMMMMMMXASASASMSMSAMSMXXMAMSAM
|
||||||
|
XMXSAXMAMSMSSMMMSMAXASASXMXSAAXAMSAAMAMMAMXAMAMMMSXASAMAMMSAMASXAMAMMSMMMMMAAMMMAMXMMSXAXXXAAAAAMAMAMXSAMXMXAXMAAAMAXMXMAMASAAXXXAMMAMMSXSAS
|
||||||
|
XAAAXSAASAAAMASAMXSMXSAXASXMMMMAMAMSSSMMSMMAMXMASAAASXSAMMMSMAMMSSSMAAXAXXSMMMASAMAMXSMMMXSSSSSMSAMAMXSAMMXMAMXMMMSASAAMXMAMMMSMMMASXSAMXSSM
|
||||||
|
XMAMMMXMSMMMSAMMSXMSMMMSAMXMAMSAMASXAXMAXAMXMAMMMMMMMASASMAMMXMXAMAMSSSMSMMXXSMSASASAMAMMAMMMAAASMMSSMXXMXAASMMSAMXAMXAMXMAMSASAMXAXXMAXASMS
|
||||||
|
SSMMSXMXXXSXMXXMAMMASAAMAMAMAXMAMXSMAMMASXMSSXSASXSXXXMMAMAMSMSMMSMMAAXXAAASMMMSASAMMSAMMASAMMMMMAAMAXSMXXASXAASAMMMMXMXMXSAMASASMAMXMSMMMAM
|
||||||
|
MAAASASXMMAAXSMSAMMAXXMMAXXMSXSAMMMMMXMASAXXAASAMAMXMSMXAMAXAAXMXAXMMMMSSSMSAAXMAMXMMSAXSASASXMAMMMSAMXAMSMMMMMSAMAMAMSAMXXMMXMAMMMAAAAAXMAM
|
||||||
|
XSMMMXMAAASMMSAMAXMSMSMSMSAXAASASAAAXXMASMSMMMMMMAMASASMSXSAMXMXSSSXSAAAMXMMMMSMAMSMASAMMXSXMASXSAXMXMAXMAAXXSAMXSASAMMASASXSSMMMMXSMSSSXSSS
|
||||||
|
MXASXSSSMXAMAMXMAMSMAAAAASMMMXMASMSMSMXXSAMXAXMASXSMSAMXXAMXMASAAAAASMSXMASXMASXAAAMMXMXXAMASAMXSAMSASASXXMMXMASXMMSASXSMASAXSXXAXXXMAMXAXAM
|
||||||
|
MSAMAAAAXSMXSXXXXXAAMMMMMMSSMMMXMMMMMMMMMXMSMSSMAMAMMMMAMMMXMAMMXMMMMXMAMAXAMASXSSSSXSXSMXSAMASXMAMMXMASMMSAXSAMMSMSAMXAMMMMMMSSSSMMSMMXSMSA
|
||||||
|
MMMMMMMMMASAMXAMXSMSSXXXMMMMAASASAXAAAMAAAXAAMAMMSSMAAMXSASMMSSMXMSXMSSSMSSMMXSMMAAMAAAXXAMAMXMAMMMXSMMMAXSAMSASAAMMAMXMASAXAAAXXAMAAAXMXAXA
|
||||||
|
XAXXAXXXXAMMXSMAMXAAAMAMAAAMSMSASMSSSSSMSSSMSMXSAMXSXSAASMSAMAAXXMASMAAAAXAMAASMMMMMMMSMMSMSMSSSMAAMXAAXSMMAMXAMMMMXAMXXASXSMSXSSXMMXMMAXMXX
|
||||||
|
SMSMXMMMMMSXMASXAMMMSAXMSSSXMXMAMXMMMMAAAAAAXMXXAMAMMMMXSXSAMSSMXSASMAXMMMAXMMSAMXXAXAAAXAAMAMAASMSSSXMXMAMSMMXMMSSSMSXMASMXMAAMMMSSMMSSMMSM
|
||||||
|
AXAXAXAAAMAAAMXSMMSAXXXMAMMMXXMXMAAAAMAMMSMMMMMSMMAMXAXXMAMAMXXAAMASXMSSXSAMMXMMMMXMMSSSMMSMAMXMASAAAXSASMMMAXSAAAAAAMXSAMXMMMMMAAAAAAAAAAAA
|
||||||
|
MSMMMSXMXXAXMSAXMASMXSMMASMMXXMAMXXSSSMSXXXXAAAAXSAMSSSMMXMSAMXMMMAMAMAMXSXMMASXMMAMMXMAMXMXXMAXMMMSMMMAXMASAMSAMMSMMMAMASMMMSMSMMXSMMXMMSSS
|
||||||
|
MAXAMSMSSXSAAMASMXSAASXSASAAAXSSMSMMAAAXXXXSSMXSMSMMMXAXAMXXASXMAMASAMAXMMAMSMSAMSSSMASAMMMXMXXSAMAAAXXXMMXMXMXAMXAAAMASAAAMXAAXAXXMXSMSMAAX
|
||||||
|
SASXAXASAAMXMASMXAMMMSAMXSMMXXAAASMMSMMMMXXMAXAMMXMAXSMMMMMSXMASASMXAMMMAMAMSAMXMAMAXASXSAMXMAXMAMSSSMMXMXXMXMSSMXMMASAXMSXMMMMMSMXXAXAAAMMM
|
||||||
|
MASXMMMMMMMAMSMMXXSMAMAMMXMAXMMMMMAMASXAMXSSSMMSASXSXMMXAAXSMSAMXMASXMSASMASMAMAMXSAMXSMXASAMSMSAMAMAASAMSXMAAAXMASMASAXMMMMASAMAASMMMSMSAMS
|
||||||
|
MAMMXAXAXXSAMAAAAMXMASAMSAMXSSXAAAMMAMSASAMXAAAAXMAMXAASXSMXAMSSXMASAASAMSXMMAMXSAMXSXSASXMASAASMMAMSAMASAASMSMXSASMAMAMAAMSASASMSXAAAXSXMSX
|
||||||
|
MMSASMSMSASXSSSMMAMSXSASMXMXSAMSSSXMXXSXMXSSSMMSSMXMAMASAAMMXMMSXMSSMMMSMXXMAXSAMXXSAMXXSSSSMMXMXSSMXMSMMMXMMAMXMXSMASMSMXMMASMMXMMSMSSMMSSX
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
MMMSXXMASM
|
||||||
|
MSAMXMSMSA
|
||||||
|
AMXSXMAAMM
|
||||||
|
MSAMASMSMX
|
||||||
|
XMASAMXAMM
|
||||||
|
XXAMMXXAMA
|
||||||
|
SMSMSASXSS
|
||||||
|
SAXAMASAAA
|
||||||
|
MAMMMXMMMM
|
||||||
|
MXMXAXMASX
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
import sys,time
|
import sys,time
|
||||||
from helpingFunctions import *
|
from helpingFunctions import *
|
||||||
|
|
||||||
setSampleMode(False)
|
setSampleMode(True)
|
||||||
|
|
||||||
aocDay = identifyDay(sys.argv[0])
|
aocDay = identifyDay(sys.argv[0])
|
||||||
aocYear = identifyYear(sys.argv[0])
|
aocYear = identifyYear(sys.argv[0])
|
||||||
@@ -14,8 +14,61 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
def extractData(data):
|
||||||
|
pageOrdRule=[]
|
||||||
|
updQueue=[]
|
||||||
|
dataBreak = False
|
||||||
|
for dataLine in data:
|
||||||
|
if len(dataLine) == 0:
|
||||||
|
dataBreak = True
|
||||||
|
elif dataBreak == False:
|
||||||
|
x,y = dataLine.split("|")
|
||||||
|
pageOrdRule.append([int(x),int(y)])
|
||||||
|
elif dataBreak== True:
|
||||||
|
updQueueEntry=[]
|
||||||
|
for dataInput in dataLine.split(','):
|
||||||
|
updQueueEntry.append(int(dataInput))
|
||||||
|
updQueue.append(updQueueEntry)
|
||||||
|
return [pageOrdRule, updQueue]
|
||||||
|
|
||||||
|
def findPageOrdRules(pageOrdRule,inputValue):
|
||||||
|
pageRules=[]
|
||||||
|
for pageRule in pageOrdRule:
|
||||||
|
if pageRule[0]==inputValue or pageRule[1]==inputValue:
|
||||||
|
pageRules.append(pageRule)
|
||||||
|
return pageRules
|
||||||
|
|
||||||
|
def checkRule(queueValue,queueValueNext,pageRules):
|
||||||
|
ret= False
|
||||||
|
for pageRule in pageRules:
|
||||||
|
if queueValue == pageRule[0] and queueValueNext == pageRule[1]:
|
||||||
|
ret = True
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def validateQueue(queueList,pageRules,queuePos):
|
||||||
|
ret = False
|
||||||
|
|
||||||
|
queueValue = queueList[queuePos]
|
||||||
|
queueValueNext = queueList[queuePos+1]
|
||||||
|
|
||||||
|
for i in range(queuePos+1,len(queueList)):
|
||||||
|
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def getOrderedQueues(pageOrdRule, updQueue):
|
||||||
|
orderedQueues=[]
|
||||||
|
for queueList in updQueue:
|
||||||
|
for queuePos in range(len(queueList)-1):
|
||||||
|
pageRules = findPageOrdRules(pageOrdRule,queueList[queuePos])
|
||||||
|
validQueue = validateQueueValue(queueList,pageRules,queuePos)
|
||||||
|
return 0
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
pageOrdRule, updQueue = extractData(data)
|
||||||
|
res = getOrderedQueues(pageOrdRule, updQueue)
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
|
|||||||
20
2024/day05/day05a.py
Normal file
20
2024/day05/day05a.py
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
|
input = [line.strip() for line in open('/home/bandeira/git.bandeira/aoc/2024/day05/input.day05') if line.strip()]
|
||||||
|
|
||||||
|
rules = defaultdict(set)
|
||||||
|
for line in input:
|
||||||
|
if '|' in line:
|
||||||
|
a, b = map(int, line.split('|'))
|
||||||
|
rules[a].add(b)
|
||||||
|
|
||||||
|
updates = [list(map(int, line.split(','))) for line in input if ',' in line]
|
||||||
|
|
||||||
|
is_correct = lambda u: all(not (set(u[:i]) & rules[u[i]]) for i in range(len(u)))
|
||||||
|
|
||||||
|
ans1 = sum(u[len(u) // 2] for u in updates if is_correct(u))
|
||||||
|
|
||||||
|
ans2 = sum(next(n for n in update if len(rules[n] & set(update)) == len(update) // 2)
|
||||||
|
for update in updates if not is_correct(update))
|
||||||
|
|
||||||
|
print(f"{ans1}\n{ans2}")
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,28 @@
|
|||||||
|
47|53
|
||||||
|
97|13
|
||||||
|
97|61
|
||||||
|
97|47
|
||||||
|
75|29
|
||||||
|
61|13
|
||||||
|
75|53
|
||||||
|
29|13
|
||||||
|
97|29
|
||||||
|
53|29
|
||||||
|
61|53
|
||||||
|
97|53
|
||||||
|
61|29
|
||||||
|
47|13
|
||||||
|
75|47
|
||||||
|
97|75
|
||||||
|
47|61
|
||||||
|
75|61
|
||||||
|
47|29
|
||||||
|
75|13
|
||||||
|
53|13
|
||||||
|
|
||||||
|
75,47,61,53,29
|
||||||
|
97,61,53,29,13
|
||||||
|
75,29,13
|
||||||
|
75,97,47,61,53
|
||||||
|
61,13,29
|
||||||
|
97,13,75,29,47
|
||||||
@@ -14,12 +14,81 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
posGuard=(0,0)
|
||||||
|
mapGrid={}
|
||||||
|
|
||||||
|
def createMapGrid(data):
|
||||||
|
posY=0
|
||||||
|
global posGuard
|
||||||
|
global mapGrid
|
||||||
|
for dataLine in data:
|
||||||
|
posX = 0
|
||||||
|
for dataPoint in dataLine:
|
||||||
|
if dataPoint == '^':
|
||||||
|
dataPoint = '.'
|
||||||
|
posGuard=(posX,posY)
|
||||||
|
mapGrid[posX,posY] = dataPoint
|
||||||
|
posX += 1
|
||||||
|
posY += 1
|
||||||
|
return (posX,posY)
|
||||||
|
|
||||||
|
def detectNoCollition(startPoint,moveDirection):
|
||||||
|
try:
|
||||||
|
if moveDirection == 'N' and mapGrid[startPoint[0],startPoint[1]-1] == '#': return True
|
||||||
|
elif moveDirection == 'S' and mapGrid[startPoint[0],startPoint[1]+1] == '#': return True
|
||||||
|
elif moveDirection == 'W' and mapGrid[startPoint[0]-1,startPoint[1]] == '#': return True
|
||||||
|
elif moveDirection == 'O' and mapGrid[startPoint[0]+1,startPoint[1]] == '#': return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def rotateGuard(moveDirection):
|
||||||
|
if (moveDirection == 'N'):
|
||||||
|
return 'O'
|
||||||
|
elif (moveDirection == 'O'):
|
||||||
|
return 'S'
|
||||||
|
elif (moveDirection == 'S'):
|
||||||
|
return 'W'
|
||||||
|
elif (moveDirection == 'W'):
|
||||||
|
return 'N'
|
||||||
|
|
||||||
|
def moveGuard(startPoint,moveDirection):
|
||||||
|
if detectNoCollition(startPoint,moveDirection):
|
||||||
|
moveDirection = rotateGuard(moveDirection)
|
||||||
|
global mapGrid
|
||||||
|
mapGrid[startPoint[0],startPoint[1]] = '*'
|
||||||
|
if moveDirection == 'N':
|
||||||
|
newPoint=(startPoint[0],startPoint[1]-1)
|
||||||
|
elif moveDirection == 'S':
|
||||||
|
newPoint=(startPoint[0],startPoint[1]+1)
|
||||||
|
elif moveDirection == 'W':
|
||||||
|
newPoint=(startPoint[0]-1,startPoint[1])
|
||||||
|
elif moveDirection == 'O':
|
||||||
|
newPoint=(startPoint[0]+1,startPoint[1])
|
||||||
|
return (newPoint,moveDirection)
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
|
global posGuard
|
||||||
|
global mapGrid
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
posX,posY = createMapGrid(data)
|
||||||
|
moveDirection='N'
|
||||||
|
|
||||||
|
while True:
|
||||||
|
posGuard,moveDirection = moveGuard(posGuard,moveDirection)
|
||||||
|
if posGuard[0]>posX or posGuard[0]<0 or posGuard[1]>posY or posGuard[1]<0:
|
||||||
|
break
|
||||||
|
mapGridList = list(mapGrid.values())
|
||||||
|
gameScoreA = mapGridList.count('*')-1
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
|
global posGuard
|
||||||
|
global mapGrid
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
|
posX,posY = createMapGrid(data)
|
||||||
|
moveDirection='N'
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
def task(task: int,data) -> int:
|
def task(task: int,data) -> int:
|
||||||
|
|||||||
56
2024/day06/day06a.py
Normal file
56
2024/day06/day06a.py
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
with open('/home/bandeira/git.bandeira/aoc/2024/day06/sample.day06', 'r') as f:
|
||||||
|
input_grid = f.read().split('\n')
|
||||||
|
|
||||||
|
UP, LEFT, DOWN, RIGHT = 1, 2, 3, 4
|
||||||
|
rows = len(input_grid)
|
||||||
|
cols = len(input_grid[0])
|
||||||
|
obstacles = set()
|
||||||
|
for i, r in enumerate(input_grid):
|
||||||
|
for j, c in enumerate(r):
|
||||||
|
if c == '#':
|
||||||
|
obstacles.add((i,j))
|
||||||
|
elif c == '^':
|
||||||
|
guard_start = (i, j, UP)
|
||||||
|
|
||||||
|
total = 0
|
||||||
|
for r in range(rows):
|
||||||
|
for c in range(cols):
|
||||||
|
if (r,c) in obstacles:
|
||||||
|
continue
|
||||||
|
|
||||||
|
obstacles.add((r,c))
|
||||||
|
visited_states = {guard_start}
|
||||||
|
guard = guard_start
|
||||||
|
while True:
|
||||||
|
if guard[2] == UP:
|
||||||
|
if (guard[0] - 1, guard[1]) in obstacles:
|
||||||
|
guard = (guard[0], guard[1], RIGHT)
|
||||||
|
else:
|
||||||
|
guard = (guard[0] - 1, guard[1], guard[2])
|
||||||
|
elif guard[2] == RIGHT:
|
||||||
|
if (guard[0], guard[1] + 1) in obstacles:
|
||||||
|
guard = (guard[0], guard[1], DOWN)
|
||||||
|
else:
|
||||||
|
guard = (guard[0], guard[1] + 1, guard[2])
|
||||||
|
elif guard[2] == DOWN:
|
||||||
|
if (guard[0] + 1, guard[1]) in obstacles:
|
||||||
|
guard = (guard[0], guard[1], LEFT)
|
||||||
|
else:
|
||||||
|
guard = (guard[0] + 1, guard[1], guard[2])
|
||||||
|
else:
|
||||||
|
if (guard[0], guard[1] - 1) in obstacles:
|
||||||
|
guard = (guard[0], guard[1], UP)
|
||||||
|
else:
|
||||||
|
guard = (guard[0], guard[1] - 1, guard[2])
|
||||||
|
|
||||||
|
if guard[0] < 0 or guard[0] >= rows or guard[1] < 0 \
|
||||||
|
or guard[1] >= cols:
|
||||||
|
obstacles.remove((r,c))
|
||||||
|
break
|
||||||
|
elif guard in visited_states:
|
||||||
|
total += 1
|
||||||
|
obstacles.remove((r,c))
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
visited_states.add(guard)
|
||||||
|
print(total)
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
.....#..#................#...#.....#.......................................................#.............................##.......
|
||||||
|
......................#..............................................................#..............#..........................#..
|
||||||
|
.........#........................#.....................................................#..............#...........#........##....
|
||||||
|
..........#......................#.....#...#............#..........................#.....#........................................
|
||||||
|
#....................................................................................................................#............
|
||||||
|
.#....#......................#.......................#...............................#...#.....#...................#........#.....
|
||||||
|
..#..#.......................##........#...............................................................#........#.........#.......
|
||||||
|
..............................................................#...#.........#..#..................................................
|
||||||
|
.............####..................................#................#..#.....................................#.....#..............
|
||||||
|
..........#................#................................................#........................#.....#......................
|
||||||
|
..............................................#.........#.....................#..................#.......................#........
|
||||||
|
.........................................##..#.................................#.....#............................................
|
||||||
|
............#..#...#...............................#.#.....#...............#...............................#..............#.#.#..#
|
||||||
|
.................#..........#..#....#.....................#......................................##............#..................
|
||||||
|
.......#....#.....................#......##...................#..............#.................#........#..#......#...............
|
||||||
|
...............................................#.............#....................................................................
|
||||||
|
..............#..............................................##..................#..........................#............#........
|
||||||
|
................#.......................#..#............................................................#..........#..#.........#.
|
||||||
|
.#.......................###............#.........#.................................................#.............................
|
||||||
|
........#......................................................................................#.....#.......#...#................
|
||||||
|
#.#.........................#..#.............................................#....#........................#......................
|
||||||
|
.......#.....#...............................#.....#......................#.................................#.....#...#...........
|
||||||
|
................................................................................................#............#....................
|
||||||
|
.......#......#...............#...#............................#................................#................................#
|
||||||
|
.#.....................................................................................................................#......#...
|
||||||
|
...........#..........................................#........#...................#..............................................
|
||||||
|
....#......................................................................................#.....##.#...................#.........
|
||||||
|
...#..........................................................................##.......................................#.....#....
|
||||||
|
#........#................#...............#.........#..#.#..............##..............#........#............#....#.....#........
|
||||||
|
......#......................................#...............#....#..#...........................#................................
|
||||||
|
#..............................................................................#............#...#..#....................#......#..
|
||||||
|
.......#.........................................#.........#.......#....................................#.........................
|
||||||
|
......#......#.............................................#.....................#...........#.............#..#...................
|
||||||
|
#.......................#........#............................................##..............................#...................
|
||||||
|
..........................................................................#........................................#....#......#..
|
||||||
|
..........#..#...............................................#............................#.#..............................#......
|
||||||
|
....#...........#..#...................................#................................................................#.........
|
||||||
|
..............#..........#...............#....#.....................................#.......................#.....................
|
||||||
|
.............#........#....#.........#...............#.........#..................................................................
|
||||||
|
.#......#...................#.......#...........................................................................#.............#...
|
||||||
|
.............##...........#.........................................#......................#.......................#..............
|
||||||
|
.....#................#.....#...................##.......#......#...........#.......#............................................#
|
||||||
|
.#..#.............................................................#..............................................#................
|
||||||
|
...#......#............................#..........................................................................................
|
||||||
|
...................................................................................#..............................................
|
||||||
|
#...................................#...................##..................#...............................................#.....
|
||||||
|
................#.....#...........................#...............................................................................
|
||||||
|
.................................#............#........................................................#.............#............
|
||||||
|
..................#......#........................................................#..^.....#......................................
|
||||||
|
..#.....#.................................................#........#.........................................................#..#.
|
||||||
|
................#..............................#....................................................#.............................
|
||||||
|
................#....#..........................................#............................#....................................
|
||||||
|
...............#.......................................#.....................................#..............................#.....
|
||||||
|
..................................................#............#..............#........##.#.....................................#.
|
||||||
|
.#..................................#......#..#............#.................#.............#......#..#.......................#....
|
||||||
|
..................#..............................#..........................#..........................##............#.......#....
|
||||||
|
.........#..................................................................#...................#..........................#......
|
||||||
|
................#....................................#............#............................................................#..
|
||||||
|
..##..........#.#..#........................#....#.................................#.............................................#
|
||||||
|
............................................#.........................................................#..#...................#...#
|
||||||
|
.......................................#......................................................................#...................
|
||||||
|
....#.......................#...#.........................................................................#................#......
|
||||||
|
...........#...........#............#.....#...#...................#........................................#.................##...
|
||||||
|
....#...........................................................................................#.................................
|
||||||
|
..............................................................................#.#.............................................#...
|
||||||
|
.........#..#..............................................#......................................................................
|
||||||
|
#...................#........#............#.......#.....................#................#.#.#............#..................#....
|
||||||
|
.......................#................#.....#...........#.....................#...........................#..........#.........#
|
||||||
|
........................................................................#.#.....................#.................................
|
||||||
|
...#.................................................#..........................#........#.......................#................
|
||||||
|
............................#...........#.......#.................................#.##...........#............................#...
|
||||||
|
...##.....................................#.........................#...........#...................................#.............
|
||||||
|
#.#..#................................#.........#..#.#..........#......................#............#......................#......
|
||||||
|
....#.............................................................#...............................................................
|
||||||
|
...............#.#......#........................................................................#.........................#......
|
||||||
|
................#.....#...#...............#.........................................#....#...........................#.......#....
|
||||||
|
...............#.........................................................................#........................................
|
||||||
|
..........................#..##...................................................................................................
|
||||||
|
.##....................#..#.....................#..............................................#........................#.........
|
||||||
|
............................................................................................#............#........................
|
||||||
|
#...................#...#......................#...............#............#....................................#................
|
||||||
|
...........................#........#......................................................................#......................
|
||||||
|
................................#...#...#.#.......#.................#.......#................##...................................
|
||||||
|
........................#.......................#.................................................................................
|
||||||
|
#...#...............#.........................................................................#.......................#...........
|
||||||
|
.........#...................#...............................................#...................##..............................#
|
||||||
|
.....#............................................................................................................................
|
||||||
|
.#.......#...............................................................#.......................#................#..........#....
|
||||||
|
....................................#..........#......#...........................................................#.#.#..#...#....
|
||||||
|
......................#..............................................##..................#........................................
|
||||||
|
....#......#...................#................#..............................................................................#..
|
||||||
|
...........#.................##.#...................................................#..#................#.........................
|
||||||
|
......#.....#......#...#........#.....................................#....#...........#................#..........#..............
|
||||||
|
#.......##.....#........#...........................................#...#..........#.............#........#.......#...............
|
||||||
|
......................#......#...................#.........................#........................#..................#...#......
|
||||||
|
.....#...........#...#.........................##.......#.....................................#...................................
|
||||||
|
....................................................................#.............................................................
|
||||||
|
........#...............#.........................................................................................................
|
||||||
|
.......................#.........................#..........................................#.#....#..#....#......................
|
||||||
|
........................##............................................................#.....#.........#....#......#..#............
|
||||||
|
........................#........#..................#................#.#.##............#..........................................
|
||||||
|
.......................................................#.........................#...............##...................##....#...#.
|
||||||
|
........#...#.............#...........#........#......................#...#.........#..#..................#.#............#........
|
||||||
|
#.#....................#..........................................#...................................................#........#..
|
||||||
|
...............................................#............#.....#.#...........#........#.#....................................#.
|
||||||
|
......#..........................................#............................................................#..........#...#...#
|
||||||
|
....................#......................................#....#..............................#....................#.............
|
||||||
|
......................#.#.....#......#....#..#....................................................................................
|
||||||
|
.....#..........................................#.........#...................................#................#.......#..........
|
||||||
|
........##....................................................................#...................................#.............#.
|
||||||
|
#.........................................#..#....#................#.#.....#....................#............................#....
|
||||||
|
#....#..#..........#..................#......................#....................................................................
|
||||||
|
...................#..#....#...................#...........................#.#..#............#......#................#.......#.#..
|
||||||
|
...............#......................................................#......#..#..............#.....................#............
|
||||||
|
............#.....................#.........#....#...............#.......#...#...............#.......................##.#.........
|
||||||
|
....#............#..................#....#.......................#..............................................#...#.............
|
||||||
|
..........................................#....#..........#..#....................#......#......................#...#.............
|
||||||
|
............#..........#...........#......#..#......................................................................#.............
|
||||||
|
...#.................#.............................................................#..............................................
|
||||||
|
.....#.#.........#....................................................#..................#...............#........................
|
||||||
|
..#......................##.....#.........#..............#..#............#..#............................................#........
|
||||||
|
...................#.....#.........#........#....................#..................................#................#............
|
||||||
|
....#.............................#.............................#.......................#.......................#.....#...........
|
||||||
|
...#......#....#...........#............................#.....#........#......#...................................................
|
||||||
|
........#..........#............................#..#..#.......................................#....#.##...........................
|
||||||
|
.......#......##........#.................#.............................................................#....#........#...........
|
||||||
|
.....................#............................................#.#......#.....##....#........#.................................
|
||||||
|
...........#.....................##.#....#..#.....................................................................................
|
||||||
|
....................#......#................................#.....................................................#.......#..#....
|
||||||
|
.....................................................#.........#.......................................#.....##..#................
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
....#.....
|
||||||
|
.........#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
..........
|
||||||
|
.#..^.....
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#...
|
||||||
@@ -14,12 +14,47 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
def getData(data):
|
||||||
|
calcs=[]
|
||||||
|
for dataLine in data:
|
||||||
|
calc=[]
|
||||||
|
result, values = dataLine.split(':')
|
||||||
|
calc.append(int(result))
|
||||||
|
calc.append([int(value) for value in values.strip().split()])
|
||||||
|
calcs.append(calc)
|
||||||
|
return calcs
|
||||||
|
|
||||||
|
def is_valid(result, values, part2):
|
||||||
|
if len(values) == 1:
|
||||||
|
return values[0]==result
|
||||||
|
if is_valid(result, [values[0]+values[1]] + values[2:], part2):
|
||||||
|
return True
|
||||||
|
if is_valid(result, [values[0]*values[1]] + values[2:], part2):
|
||||||
|
return True
|
||||||
|
if part2 and is_valid(result, [int(str(values[0])+str(values[1]))] + values[2:], part2):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def bruteforce_calc(calc,part2):
|
||||||
|
ret = 0
|
||||||
|
expectedResult = calc[0]
|
||||||
|
values = calc[1]
|
||||||
|
if is_valid(expectedResult, values, part2):
|
||||||
|
ret = expectedResult
|
||||||
|
return ret
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
calcs = getData(data)
|
||||||
|
for calc in calcs:
|
||||||
|
gameScoreA += bruteforce_calc(calc,False)
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
|
calcs = getData(data)
|
||||||
|
for calc in calcs:
|
||||||
|
gameScoreB += bruteforce_calc(calc,True)
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
def task(task: int,data) -> int:
|
def task(task: int,data) -> int:
|
||||||
|
|||||||
36
2024/day07/day07a.py
Normal file
36
2024/day07/day07a.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import sys
|
||||||
|
import re
|
||||||
|
from collections import defaultdict, Counter, deque
|
||||||
|
#import pyperclip as pc
|
||||||
|
def pr(s):
|
||||||
|
print(s)
|
||||||
|
# pc.copy(s)
|
||||||
|
sys.setrecursionlimit(10**6)
|
||||||
|
infile = sys.argv[1] if len(sys.argv)>=2 else '7.in'
|
||||||
|
infile = '/home/bandeira/git.bandeira/aoc/2024/day07/input.day07'
|
||||||
|
p1 = 0
|
||||||
|
p2 = 0
|
||||||
|
D = open(infile).read().strip()
|
||||||
|
|
||||||
|
def is_valid(target, ns, p2):
|
||||||
|
if len(ns) == 1:
|
||||||
|
return ns[0]==target
|
||||||
|
if is_valid(target, [ns[0]+ns[1]] + ns[2:], p2):
|
||||||
|
return True
|
||||||
|
if is_valid(target, [ns[0]*ns[1]] + ns[2:], p2):
|
||||||
|
return True
|
||||||
|
if p2 and is_valid(target, [int(str(ns[0])+str(ns[1]))] + ns[2:], p2):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
for line in D.strip().split('\n'):
|
||||||
|
target, ns = line.strip().split(':')
|
||||||
|
target = int(target)
|
||||||
|
ns = [int(x) for x in ns.strip().split()]
|
||||||
|
if is_valid(target, ns, p2=False):
|
||||||
|
p1 += target
|
||||||
|
if is_valid(target, ns, p2=True):
|
||||||
|
p2 += target
|
||||||
|
|
||||||
|
pr(p1)
|
||||||
|
pr(p2)
|
||||||
@@ -0,0 +1,850 @@
|
|||||||
|
3227574: 327 47 15 6 7 2
|
||||||
|
9687: 6 72 7 3 615
|
||||||
|
2594771266: 7 6 5 5 8 8 8 4 5 55 326 6
|
||||||
|
9900354400: 8 75 9 9 2 5 451 6 8 50
|
||||||
|
218532: 65 335 7 71 2
|
||||||
|
5776: 4 3 4 4 2 9 25 3 6 1 5 34
|
||||||
|
7309059: 429 5 3 3 22 9 54 7 8 43
|
||||||
|
77080410: 870 8 3 615 18
|
||||||
|
2049996956464: 6 1 8 7 6 609 6 9 4 10 6 4
|
||||||
|
386477825679: 483 8 77 825 682
|
||||||
|
7329: 255 2 545 3 9 1 3 82 2
|
||||||
|
478524813922: 9 202 4 13 8 5 1 1 2 9 22
|
||||||
|
3007459428: 37 5 963 7 7 4 2 4 4
|
||||||
|
422124078: 7 603 23 7 3 76
|
||||||
|
5590: 6 5 86
|
||||||
|
2117616971: 293 840 239 4 7 47 9 5
|
||||||
|
487830: 6 6 673 2 43 5 8
|
||||||
|
61079143573: 403 421 985 302 7 36
|
||||||
|
977246: 9 4 61 72 46
|
||||||
|
49897223040: 82 1 49 20 69 2 7 127
|
||||||
|
103551: 8 81 7 7 483 68
|
||||||
|
804651: 2 9 1 8 92 2 5 45 2 9 78 3
|
||||||
|
57232: 8 14 7 73 1
|
||||||
|
3223472338: 1 8 592 3 7 4 3 85 2 85 4
|
||||||
|
7246: 8 7 7 35 738 72 1 7 2 91
|
||||||
|
8205611676: 6 475 7 4 25 3 77 5 9 89
|
||||||
|
17496: 1 4 2 58 2 97 25 9 5 2
|
||||||
|
6066983: 15 8 8 2 4 9 5 7 1 8 787
|
||||||
|
110265: 59 72 14 589 8 638
|
||||||
|
397765000: 5 233 7 50 76
|
||||||
|
3574: 9 20 9 854 3 445
|
||||||
|
8788843: 5 3 6 42 46 6 448
|
||||||
|
941274: 43 38 64 10 9
|
||||||
|
46254840: 50 1 85 2 90 920
|
||||||
|
9928719793: 99 28 71 97 93
|
||||||
|
8039: 49 881 7 3 942 584
|
||||||
|
4424: 9 10 8 52 56
|
||||||
|
16594: 68 8 8 29 553 3 30
|
||||||
|
32779706264: 9 955 109 34 179 80 5
|
||||||
|
155416: 146 8 58 9 73
|
||||||
|
71402282: 643 1 571 8 892 97 2
|
||||||
|
596625317: 8 6 4 3 8 922 664 443 4
|
||||||
|
1655597: 19 76 93 5 80
|
||||||
|
180478522: 982 31 8 4 15 795 7 7
|
||||||
|
69316854415: 8 8 44 7 90 444 7 88 39
|
||||||
|
23249578: 4 58 4 9 578
|
||||||
|
685309395: 707 54 45 38 1 9 965
|
||||||
|
365768589312: 639 224 868 64 46
|
||||||
|
48064134240: 1 7 9 6 2 1 46 5 24 327 6
|
||||||
|
2165926308: 1 30 94 18 7 306
|
||||||
|
786903: 82 133 61 60 6
|
||||||
|
641179: 1 1 724 1 8 3 18 3 1 847
|
||||||
|
20800560: 4 1 60 5 560
|
||||||
|
6018507918: 4 2 8 99 7 797 6 9 7 8 6 9
|
||||||
|
3328603616953: 207 3 67 54 5 1 2 8 9 53
|
||||||
|
15081270118: 21 436 33 270 117
|
||||||
|
11531217929088: 858 208 962 71 946
|
||||||
|
532575: 4 50 532 8 8 85 5 62 8
|
||||||
|
528903: 244 327 92 9 342 7 1 2
|
||||||
|
60231276: 60 17 2 56 3 27 1 5
|
||||||
|
272934937796: 27 293 4 93 77 96
|
||||||
|
1476196: 10 655 29 520 67 206
|
||||||
|
753127: 1 2 3 3 3 4 710 81 6 2 4
|
||||||
|
1841604240: 7 98 3 83 80 4 8 5 1 7 6 8
|
||||||
|
188949705610: 258 712 740 139 1 8
|
||||||
|
5585592600: 2 4 5 7 88 7 856 7 75 1 3
|
||||||
|
11694266932: 1 3 898 3 2 5 8 8 85 1 7 2
|
||||||
|
31334: 8 2 92 15 59 9 3 7 9 6 9 5
|
||||||
|
134027418420: 21 967 666 10 991
|
||||||
|
360462: 761 59 84 8 598
|
||||||
|
195480415: 488 70 4 3 63 53
|
||||||
|
1711173: 7 22 59 1 73
|
||||||
|
38688: 8 1 39 4 31
|
||||||
|
7066563480: 173 708 3 60 678
|
||||||
|
40914726: 3 5 263 9 4 1 1 5 5 8 54 6
|
||||||
|
73484562626: 4 7 4 628 494 8 3 4 9 24
|
||||||
|
30705937: 3 8 4 2 73 188 44 1 8 3 5
|
||||||
|
107934538: 7 4 385 5 948
|
||||||
|
1364548120: 3 1 44 548 118
|
||||||
|
9327031128: 96 7 487 25 95 3
|
||||||
|
97634211840: 2 4 23 8 55 8 9 6 6 82 4 9
|
||||||
|
126408: 6 92 229
|
||||||
|
58870: 5 53 870
|
||||||
|
24754665: 27 496 8 9 7 9 3 8 3 3 8 2
|
||||||
|
15038158: 404 25 62 6 58
|
||||||
|
267920541: 2 8 8 7 6 293 4 3 8 6 7 3
|
||||||
|
319021767756: 4 4 3 8 686 2 343 741 9
|
||||||
|
6454: 86 3 386 6 1 6
|
||||||
|
38601032: 2 8 4 5 771 9 73 8 5 9 4 8
|
||||||
|
166848: 920 5 688 872 43 66
|
||||||
|
56982752: 8 661 8 39 7 39 8
|
||||||
|
209693: 370 9 7 79 106
|
||||||
|
43128053: 299 5 2 72 52
|
||||||
|
1071: 5 7 989 7 40
|
||||||
|
852390: 405 42 4 630 3
|
||||||
|
7054549: 371 6 692 9 4 7 1 5 4 8 1
|
||||||
|
55776906: 36 5 5 730 1 3 413 1 17
|
||||||
|
873: 55 1 712 5 99
|
||||||
|
303164: 2 5 1 2 1 2 59 7 8 424 3 1
|
||||||
|
2175: 17 808 79 741 533
|
||||||
|
11157263487: 111 514 1 57 634 8 7
|
||||||
|
1471606: 1 884 773 96 839
|
||||||
|
17558973: 5 2 5 2 55 3 4 7 7 811 9 3
|
||||||
|
573: 37 6 81 4 266
|
||||||
|
284703: 97 57 165 5 6
|
||||||
|
689440323: 9 4 783 4 8 1 8 2 1 8 65 5
|
||||||
|
121: 18 2 2 3 7
|
||||||
|
478: 9 1 82 4 1 98 41 1 2 8
|
||||||
|
18735650: 8 7 8 2 3 6 10 197 947
|
||||||
|
102836046: 12 86 24 375 84 60 4 7
|
||||||
|
465281475: 973 695 45 688 837
|
||||||
|
656: 4 1 615
|
||||||
|
136761048: 3 3 84 8 13 3 3 5 11 1 89
|
||||||
|
1783: 68 933 253 1 4 525
|
||||||
|
158: 9 6 83 21
|
||||||
|
115959: 832 265 61 77 5 71 4
|
||||||
|
2487131: 510 62 2 7 9 4 79 1 53
|
||||||
|
5170: 6 6 1 8 4 9 1 6 1 803 36 5
|
||||||
|
1928601600: 8 86 6 5 2 584 80
|
||||||
|
59821: 462 8 3 123 1 987 655
|
||||||
|
398537804644: 853 40 467 4 644
|
||||||
|
339459939: 7 7 4 88 253 7 9
|
||||||
|
481903856: 29 1 60 26 276 675 8
|
||||||
|
680603: 9 20 13 2 9 892 5 2
|
||||||
|
236736973260: 7 6 5 77 52 4 1 6 34 1 6 6
|
||||||
|
398228: 115 4 5 69 98
|
||||||
|
120581: 28 81 65 8 17
|
||||||
|
267735216: 8 19 6 4 81 57 378 216
|
||||||
|
74602849: 5 406 23 1 6 49
|
||||||
|
2719990: 597 521 243 325 10
|
||||||
|
34500: 5 67 7 1 60
|
||||||
|
5140800: 510 7 5 2 36 4
|
||||||
|
190594626: 91 817 84 68 6 4 8 8
|
||||||
|
20232583: 8 7 357 80 28 36 5 2
|
||||||
|
5811831187: 577 8 2 31 8 294 9 8 8 9
|
||||||
|
7866: 2 23 893 372 6
|
||||||
|
10169305: 248 62 409 3 7 5 732
|
||||||
|
249434091: 117 7 5 989 7 962 3 93
|
||||||
|
388494: 7 92 3 49 6
|
||||||
|
912769496103: 45 935 98 733 302
|
||||||
|
2264409594: 51 8 555 958 5 7
|
||||||
|
724415: 2 4 7 8 1 9 942 3 1 9 3 4
|
||||||
|
15942816: 7 8 338 72 562
|
||||||
|
40785800: 6 2 8 24 7 432 25
|
||||||
|
3483666656: 34 83 388 278 656
|
||||||
|
3018057: 5 4 3 138 810
|
||||||
|
170416569009: 3 6 4 2 92 731 7 951 55
|
||||||
|
324724224995: 6 445 72 422 499 6
|
||||||
|
12229264: 1 1 4 21 6 34 562 7 5 1 4
|
||||||
|
3392: 4 7 67 288 58 8
|
||||||
|
305431434300: 6 91 7 76 12 701 8 5 3
|
||||||
|
151905613125: 8 5 5 2 1 28 12 1 31 2 3
|
||||||
|
207879696: 6 4 7 7 9 5 540 7 54 72
|
||||||
|
6913: 37 37 1 1 69 994 1 6 85
|
||||||
|
432614183289012: 5 40 767 729 1 8 901 1
|
||||||
|
82500961: 97 47 679 2 100 1 961
|
||||||
|
3966848: 71 31 206 3 6 9 92 128
|
||||||
|
12453120522: 60 1 850 33 5 6 40 522
|
||||||
|
2982342779: 18 79 2 39 2 1 1 4 3 77 9
|
||||||
|
5445: 6 7 27 1 3 1 56 4 31 1 33
|
||||||
|
81877448: 419 3 7 2 4 173 8 8 17 8
|
||||||
|
1071576868615: 7 81 8 3 2 7 668 8 9 979
|
||||||
|
39301: 4 9 62 46 8 289 94 2 6 1
|
||||||
|
377089313: 68 1 72 8 3 9 4 6 3 7 4 3
|
||||||
|
664442: 113 40 3 7 7 2
|
||||||
|
132694431: 33 1 39 94 428
|
||||||
|
4716520604: 4 7 3 4 7 1 4 3 9 696 4 2
|
||||||
|
835717: 500 97 238 7 17
|
||||||
|
5575854: 13 266 26 9 6 9 5 6 177
|
||||||
|
647629: 612 35 5 82 47
|
||||||
|
62599894469: 5 148 4 8 3 7 19 3 1 4 38
|
||||||
|
93928: 4 13 5 81 5 5 27 771 3 4
|
||||||
|
17496650: 9 3 268 403 6
|
||||||
|
553454090700: 1 7 357 8 20 911 35
|
||||||
|
1661589: 2 373 70 2 480 7
|
||||||
|
3028862: 60 50 23 5 862
|
||||||
|
1122: 35 6 169 1 743
|
||||||
|
97923737484: 2 8 68 9 3 73 74 84
|
||||||
|
1882185081: 146 9 81 604 5 9 2 4
|
||||||
|
193: 180 6 7
|
||||||
|
22771440: 9 6 8 4 2 8 96 4 109 5 3 4
|
||||||
|
100144066185: 7 286 794 352 1 9 1 7
|
||||||
|
117453: 6 6 1 15 2 4 9 3 819 3 47
|
||||||
|
1182792: 8 8 6 33 301 453 9
|
||||||
|
61425: 2 9 2 183 7 585 2 6 75
|
||||||
|
1783100180: 29 589 64 19 4 52 2 4
|
||||||
|
83116480: 3 701 3 5 754 9 4 5 368
|
||||||
|
2554371618: 8 78 7 3 3 9 401 8 7 9 6 6
|
||||||
|
7978985: 7 97 88 1 85
|
||||||
|
81207109035: 810 6 7 7 710 3 5 2 8 3 5
|
||||||
|
3081162: 3 368 3 93 3 3 153
|
||||||
|
484464334: 1 19 9 78 9 426 9 4 1 89
|
||||||
|
255347157090: 7 7 2 5 68 497 413 12 4
|
||||||
|
633738987: 5 9 43 1 7 8 9 8 3 2 137 3
|
||||||
|
384258: 44 2 9 284 3 9
|
||||||
|
23707011: 505 48 7 67
|
||||||
|
1151869: 7 6 5 2 7 282 719 3 25 6
|
||||||
|
9298808: 287 9 60 6 6
|
||||||
|
31106: 969 8 4 94 4
|
||||||
|
325378: 18 3 6 1 379
|
||||||
|
774250866: 49 1 448 457 9 7 61 6 9
|
||||||
|
206132: 36 8 7 80 52
|
||||||
|
530: 35 9 4 78 8
|
||||||
|
3031: 2 28 40 7 91 692
|
||||||
|
81159303: 16 23 5 9 303
|
||||||
|
932115: 56 38 146 3 51
|
||||||
|
3298555318: 5 3 7 3 547 3 1 114 318
|
||||||
|
5418296580: 152 11 259 68 8 23 4
|
||||||
|
54817: 99 1 9 507 61
|
||||||
|
539917: 503 1 3 5 5 2 5 3 3 262 7
|
||||||
|
124292: 85 56 880 212
|
||||||
|
136186: 5 8 2 273 8 6 9 80 26
|
||||||
|
3470: 6 3 7 4 96 293 238 5
|
||||||
|
14215140: 4 16 9 151 523
|
||||||
|
63453: 9 3 77 7 68 46 99
|
||||||
|
6679: 823 8 25 67 3
|
||||||
|
8223408518: 7 59 72 3 524 5 844 8 1
|
||||||
|
76953054: 3 39 8 975 1 67 128 6
|
||||||
|
644630: 889 80 19 7 35
|
||||||
|
1299: 7 6 7 988 17
|
||||||
|
395708417484: 1 8 812 99 1 402 914 6
|
||||||
|
667118: 1 7 886 9 94
|
||||||
|
295533124: 4 418 17 2 7 124
|
||||||
|
210933216: 35 5 794 7 830 42 8
|
||||||
|
15299816: 796 719 9 5 98 14
|
||||||
|
1368564: 6 6 5 82 36 70 9 23 8 8 4
|
||||||
|
93541755: 8 12 49 9 8 235 5
|
||||||
|
65835: 4 2 75 93 95
|
||||||
|
1387924874: 939 40 4 1 9 26 7 542
|
||||||
|
5011: 49 90 8 555 38
|
||||||
|
1109391: 9 14 482 7 91
|
||||||
|
1080359: 1 2 1 97 7 3 9 47 23 6 9
|
||||||
|
921422389333: 4 7 176 7 6 9 4 7 786 7 5
|
||||||
|
24024219: 3 16 5 24 216
|
||||||
|
148: 4 6 6 4
|
||||||
|
14399719: 624 641 12 96 3 7
|
||||||
|
8462256992: 4 66 47 682 991
|
||||||
|
46807: 3 3 1 9 13 36 475
|
||||||
|
1759128: 5 3 49 4 518
|
||||||
|
7123596: 9 14 9 5 3 3 77 27 936 6
|
||||||
|
5643205210: 8 9 2 89 3 40 9 5 618 2 8
|
||||||
|
226923671: 2 7 85 4 5 2 528 9 4 6 7 6
|
||||||
|
96748274741: 5 5 143 551 82 7 7 39 2
|
||||||
|
38772531613: 3 7 20 923 57 8 3 1 613
|
||||||
|
6724653: 960 591 8 40 7 173 6
|
||||||
|
269994403: 26 931 22 507 679
|
||||||
|
166069764: 5 2 6 69 9 582 74 378
|
||||||
|
8340: 6 7 4 4 69 20 60
|
||||||
|
2720: 1 544 5
|
||||||
|
28299754: 2 48 27 5 516 7 3 8 7 7
|
||||||
|
172013600: 5 14 6 9 8 526 9 7 5 32
|
||||||
|
21345727568: 6 3 8 3 456 8 4 7 5 42 26
|
||||||
|
815985723: 969 51 3 782 341
|
||||||
|
1037725392133: 415 5 45 5 39 213 3
|
||||||
|
4941379880: 2 470 6 8 9 6 2 7 59 9 1 8
|
||||||
|
51044: 486 9 1 3 7 328 28
|
||||||
|
6461326925: 2 584 5 25 6 7 2 7 924
|
||||||
|
547138924: 801 5 11 812 4 76 7 21
|
||||||
|
8928: 91 4 3 91 1 3 7
|
||||||
|
3686: 83 3 6 1 4
|
||||||
|
2099160: 42 7 20 357
|
||||||
|
60636749: 732 5 1 253 594 8
|
||||||
|
296684: 6 1 836 3 43 334 92
|
||||||
|
2808: 6 67 386 9 6
|
||||||
|
273506833: 5 7 356 1 64 98 833
|
||||||
|
17: 2 9 7
|
||||||
|
76731026953: 3 9 27 7 475 7 1 5 5 995
|
||||||
|
30914: 2 13 6 161 6 1
|
||||||
|
1624102: 668 7 1 3 6 399 970
|
||||||
|
126619: 26 93 47 46 2
|
||||||
|
362391: 36 2 39 1
|
||||||
|
7123460: 368 872 9 1 4 319 95 2
|
||||||
|
30918666: 281 11 8 6 66
|
||||||
|
22085: 75 5 8 155 7
|
||||||
|
462860: 46 264 9 13 3
|
||||||
|
699209426: 1 3 7 1 11 9 3 3 980 9 3 1
|
||||||
|
140400: 70 20 20
|
||||||
|
352904605: 9 3 603 4 2 7 2 3 8 6 74 3
|
||||||
|
435840: 676 5 640
|
||||||
|
17865408000: 3 5 40 5 5 769 352 48
|
||||||
|
108274521: 5 2 9 318 2 66 3 7 9 8 4 3
|
||||||
|
9621: 9 12 9 25 469
|
||||||
|
1345843: 832 58 1 53 803 8 2
|
||||||
|
683682: 362 5 3 41 4 9 5 852
|
||||||
|
118548: 5 9 6 259 442
|
||||||
|
249315946: 510 7 253 241 2
|
||||||
|
5740521: 7 90 283 14 59
|
||||||
|
303269403: 678 71 700 9 3
|
||||||
|
214801337: 2 558 800 39 383
|
||||||
|
2981629: 21 5 1 6 7 4 8 3 161 1 7 1
|
||||||
|
38879: 1 55 3 656 828
|
||||||
|
883: 452 18 354 1 58
|
||||||
|
1843: 43 56 3 3 6 7
|
||||||
|
49728956988: 4 8 37 7 6 5 4 563 6 5 3 7
|
||||||
|
1970039832: 19 767 68 899 41
|
||||||
|
24756505: 1 9 7 891 1 4 7 9 7 1 1 86
|
||||||
|
2904811: 322 62 90 532 701
|
||||||
|
60197: 45 3 3 3 8 9 18 1 2 9 75 2
|
||||||
|
44194581822: 6 52 657 55 8 49 5 2 8 7
|
||||||
|
4613575465995: 6 2 1 2 4 561 44 74 3 95
|
||||||
|
28976: 86 48 7 56 4 20
|
||||||
|
20970116: 8 1 7 55 768 272 46 2 2
|
||||||
|
6439513: 234 402 23 772 1 4
|
||||||
|
148417892: 148 417 823 70
|
||||||
|
1211760: 6 17 3 55 72
|
||||||
|
3053: 642 3 252 8 867
|
||||||
|
155127: 605 390 390 56 2 7
|
||||||
|
156240683: 7 8 2 2 406 83
|
||||||
|
7319689: 308 1 9 9 25 26 1 67 9
|
||||||
|
1386567: 286 6 21 1 6 94 1 8 7
|
||||||
|
3570: 14 36 4 2 7
|
||||||
|
140313599: 8 6 2 2 2 6 6 7 5 142 559
|
||||||
|
475714543: 61 24 51 314 4 542
|
||||||
|
493472: 9 8 42 31 364 7 9 8 2 8
|
||||||
|
1990446: 4 62 463 9 6 2 3 4 38 9 6
|
||||||
|
19619731: 713 6 622 2 9 817 2 97
|
||||||
|
7245420: 93 7 4 3 762 2 7 96 84 5
|
||||||
|
486048: 5 30 83 90 5 4 16 366
|
||||||
|
189: 7 2 21
|
||||||
|
10588484: 2 2 6 621 2 7 2 6 178 8 2
|
||||||
|
41467203: 8 639 30 16 1
|
||||||
|
7578933659: 9 3 270 87 934 1
|
||||||
|
3253778: 8 33 7 6 39 7
|
||||||
|
1002051099072: 3 477 50 15 7 70 72
|
||||||
|
661076520: 565 5 600 68 390
|
||||||
|
154: 1 6 6 6 82
|
||||||
|
278413050: 55 6 73 9 610 5
|
||||||
|
625523: 8 3 614 523
|
||||||
|
22185893529: 322 689 9 3 52 9
|
||||||
|
1170030: 605 2 623 951 40 260
|
||||||
|
260802428: 820 318 42 428
|
||||||
|
7710585: 7 689 3 5 4 9 212 372
|
||||||
|
4753338: 59 7 72 59 1 6 5 680
|
||||||
|
19263220581: 58 575 1 58 376 7 81
|
||||||
|
143662750: 124 2 2 4 38 3 8 3 9 2 7 5
|
||||||
|
38383696: 805 228 997 4 52
|
||||||
|
23008: 8 4 191 8 7
|
||||||
|
396000: 744 6 66 8
|
||||||
|
20581: 56 36 41 8 3
|
||||||
|
3038974: 7 2 7 31 974
|
||||||
|
2192168: 47 4 9 9 415 3 619 548
|
||||||
|
15190340: 250 124 2 5 49 1
|
||||||
|
1748190: 1 3 5 7 69 4 3 3 56 3 19 5
|
||||||
|
2752122321: 2 3 880 1 6 858 4 4 1 9 9
|
||||||
|
21371: 5 9 471 81 95
|
||||||
|
7077051: 729 24 4 7 351 21 5 1
|
||||||
|
1879651: 70 9 203 68 98 376 30
|
||||||
|
46368: 3 7 2 56 6 6
|
||||||
|
2227217: 6 452 1 78 798
|
||||||
|
10692793: 181 17 6 9 793
|
||||||
|
257695277844: 1 875 3 9 6 74 73 7 2 7 4
|
||||||
|
76560: 1 595 498 5 61 66
|
||||||
|
422674260: 662 2 5 27 234 60
|
||||||
|
29645694: 5 50 7 77 694
|
||||||
|
4077: 7 31 1 3 97
|
||||||
|
20124: 5 38 468
|
||||||
|
52246009: 398 702 4 1 7 676
|
||||||
|
183920019: 8 95 4 605 20
|
||||||
|
1509: 5 4 24 6 3 6 12 6 1 500 1
|
||||||
|
8613945: 20 8 92 3 39 66 15
|
||||||
|
6172100: 52 9 72 10 10
|
||||||
|
2661931: 5 1 8 2 4 8 8 45 6 5 8 963
|
||||||
|
271485: 57 48 99 442 179
|
||||||
|
877576528: 3 4 4 1 25 2 5 3 56 91 5 8
|
||||||
|
1270688: 18 126 7 7 6 8
|
||||||
|
1491826047: 35 6 565 7 92 50
|
||||||
|
44169308: 84 2 36 7 4 5 369 4 5 9 8
|
||||||
|
4088700: 5 6 3 15 35 236
|
||||||
|
42397: 4 231 1 3 75
|
||||||
|
33946371827550: 8 18 94 7 539 4 5 91 90
|
||||||
|
12150505765: 666 48 7 38 561 11 4 5
|
||||||
|
714573758: 916 3 360 6 26
|
||||||
|
31145619648: 372 286 989 8 37
|
||||||
|
139956508803: 59 79 4 3 650 8 800
|
||||||
|
118473952: 7 14 7 783 544
|
||||||
|
7902897756: 617 8 6 10 820 6 26
|
||||||
|
30208315368: 94 4 32 30 548 989 1
|
||||||
|
20053757176: 53 41 71 595 66 47 8
|
||||||
|
2106458913061: 51 894 2 110 7 4 615 6
|
||||||
|
219648: 1 91 98 76 8
|
||||||
|
2660330: 140 79 6 51 8 2 776 5 1
|
||||||
|
8554141: 28 38 9 120 4 5 3 25 3 7
|
||||||
|
181258582: 8 16 5 1 74 9 81 4 2 7 8
|
||||||
|
1251: 96 830 1 4 244 76
|
||||||
|
139494973: 8 64 270 676 8 8 23 77
|
||||||
|
1325910: 6 94 399 1 6 1 1 6 5 229
|
||||||
|
481344: 4 11 3 3 814 7 9 3 8
|
||||||
|
14656187131: 8 9 2 482 5 331 9 3 9 65
|
||||||
|
523740: 2 7 870 43
|
||||||
|
1698: 22 6 935 604 27
|
||||||
|
132: 8 1 90 34 1
|
||||||
|
22006: 537 4 3 525
|
||||||
|
1771262: 3 3 2 7 3 6 90 2 5 2 530 2
|
||||||
|
124740: 31 6 624 77 2
|
||||||
|
158324958514: 98 124 4 4 814 3 8 57 2
|
||||||
|
53688: 8 1 6 8 254 59 4 3 8 6
|
||||||
|
243177827: 132 9 33 959 203 5 62
|
||||||
|
5228981901: 8 849 21 61 899
|
||||||
|
1540177: 7 4 208 6 86 292
|
||||||
|
17690: 138 3 2 4 3 8 5 4 3 84 2 8
|
||||||
|
64581: 524 508 34 60 577 44
|
||||||
|
2074: 5 2 91 898 266
|
||||||
|
42128: 61 226 60 3 494 1 95
|
||||||
|
112104694: 3 481 51 322 72
|
||||||
|
2730604169956: 8 46 22 5 911 27 37 5 6
|
||||||
|
1585980: 91 35 1 6 401 6 9 55
|
||||||
|
4267032808: 40 839 88 8 43 7 985 1
|
||||||
|
858808: 4 501 17 2 31 74 3
|
||||||
|
4662: 250 4 39 373 7
|
||||||
|
3851847147: 61 3 6 3 5 1 79 4 471 4 9
|
||||||
|
6976: 6 5 3 761 2 43 88 7 88
|
||||||
|
85211: 5 843 8 33 4
|
||||||
|
3244: 649 5 2
|
||||||
|
65355595368: 803 628 3 9 9 4 4 2 2 4 4
|
||||||
|
3523359: 3 8 32 3 359
|
||||||
|
11562: 48 4 78 19 40
|
||||||
|
105322: 6 4 9 1 7 1 4 16 51 8 7 51
|
||||||
|
20605500: 1 1 6 6 2 750 723
|
||||||
|
916509775588: 5 419 55 8 781 39 4 7 7
|
||||||
|
103997754: 760 2 4 7 342
|
||||||
|
502644: 481 19 2 112 532
|
||||||
|
160306: 3 396 5 80 706
|
||||||
|
543213320: 1 552 5 7 9 75 290 66 9
|
||||||
|
56777760: 7 1 53 39 2 5 85 26 27 8
|
||||||
|
964: 6 7 1 27 3 890
|
||||||
|
7164611387: 98 4 2 8 14 6 6 6 1 1 3 87
|
||||||
|
39122842249: 4 998 5 633 5 4 1 4 98 2
|
||||||
|
1589106870: 16 7 6 7 56 4 9 65 6 501
|
||||||
|
905335803034: 7 6 76 405 89 90 43 34
|
||||||
|
203076: 13 1 529 5 8 6 5 9 4 6 6 3
|
||||||
|
1149620: 765 4 7 6 7 5 5 59 5 231
|
||||||
|
274240768: 3 6 6 848 153 5
|
||||||
|
28931937070: 400 718 4 9 5 722
|
||||||
|
1709184: 28 42 68 7 589 6
|
||||||
|
4337709: 4 311 8 251 2 4 4 6 2 5 8
|
||||||
|
14701512: 98 991 381 1 512
|
||||||
|
701381793: 6 859 963 842 3
|
||||||
|
71971: 6 7 339 5 1 624 146 10
|
||||||
|
32099: 3 1 765 79 252
|
||||||
|
171771: 1 623 87 36 98 64 1 6 9
|
||||||
|
1042861683: 5 81 4 6 524 811 7 5 8 7
|
||||||
|
41131530060: 712 57 18 7 900 33 60
|
||||||
|
79601176: 1 8 64 6 6 6 2 38 11 7 6
|
||||||
|
2298689026: 999 43 230 2 6 1
|
||||||
|
4023037200: 2 290 1 883 51 780 4 5
|
||||||
|
50040: 624 71 72
|
||||||
|
1860631968498: 665 1 32 52 537 49 5
|
||||||
|
204666336: 5 7 1 726 157 1 4 9 49
|
||||||
|
38462212: 6 6 2 85 9 6 2 92 7 34 86
|
||||||
|
376458353: 140 4 79 52 8 7 5 3
|
||||||
|
5779904174658: 903 1 1 8 8 12 5 2 2 65 8
|
||||||
|
2221128150: 26 21 904 9 3 50
|
||||||
|
85561: 5 9 7 2 7 122 7 146 4 2 2
|
||||||
|
194508948480: 616 4 8 58 642 265
|
||||||
|
13084: 149 315 55 70 719 1
|
||||||
|
1551214: 69 8 7 4 53 2 5 5 59
|
||||||
|
6385500: 5 5 258 99 10
|
||||||
|
735066: 21 350 66
|
||||||
|
32052: 616 909 7 9 3
|
||||||
|
74064: 4 6 681 3 23
|
||||||
|
19992867: 44 5 136 3 716 95 56
|
||||||
|
2573808: 814 4 79 4 304
|
||||||
|
52476: 55 462 7 7 8
|
||||||
|
18836346: 7 6 1 6 3 9 60 1 5 4 4 90
|
||||||
|
143956: 95 54 963 380 89
|
||||||
|
3913319: 2 1 26 3 1 2 4 2 6 813 3
|
||||||
|
2253072: 38 971 5 99 438
|
||||||
|
19921201: 4 980 8 5 2 6 7 91 843
|
||||||
|
199146: 5 68 4 35 32 81 9 84
|
||||||
|
3357288: 6 942 6 33 3
|
||||||
|
578235348: 9 8 19 43 4 46 7 39 1 5 9
|
||||||
|
1120784: 3 3 96 8 4 5 6 56 43 7 7 4
|
||||||
|
3094520: 8 346 95 2 3 3 5 7 5 3 4 8
|
||||||
|
3930: 5 6 7 286 9 619 41 1 2
|
||||||
|
1180: 4 1 9 70 88 7 95 10
|
||||||
|
349358: 4 363 951 83 255
|
||||||
|
716: 5 2 3 93 6 32
|
||||||
|
442532935: 8 195 9 42 6 47 6 4 6 37
|
||||||
|
5558322248: 4 1 34 4 4 3 9 5 5 7 32 8
|
||||||
|
5293550: 529 3 550
|
||||||
|
6571: 2 5 4 447 77 59 3
|
||||||
|
1408672499: 4 320 60 898 238 11
|
||||||
|
561588221: 7 8 158 8 221
|
||||||
|
1617: 161 6 4
|
||||||
|
2746681: 914 82 68 8 3 1 156
|
||||||
|
1068: 490 3 5 2 568
|
||||||
|
416425074: 675 19 6 250 7 4
|
||||||
|
26526852: 6 9 2 2 9 68 3 9 6 6 827
|
||||||
|
6968637: 6 5 1 57 420 244
|
||||||
|
192926880: 7 127 4 9 2 7 1 5 6 666
|
||||||
|
244129082: 49 83 3 5 41 3 9 7 41 2 7
|
||||||
|
24487936: 973 6 52 481 543 645
|
||||||
|
5366629969: 9 2 8 7 948 6 3 7 7 75 17
|
||||||
|
388034111: 2 80 6 479 4 101 586 9
|
||||||
|
5155585: 2 853 5 19 3 87 24 49 1
|
||||||
|
136274810: 483 7 3 62 9 254 35
|
||||||
|
85955764328: 695 6 989 368 411 56
|
||||||
|
5256179832: 1 82 7 2 884 799 428 6
|
||||||
|
62734399669: 79 21 54 1 9 6 9 8 2 96 7
|
||||||
|
256634764: 2 3 5 3 9 63 1 2 33 9 4 7
|
||||||
|
2196189325: 21 961 88 95 7 368
|
||||||
|
70511994822: 2 3 490 5 2 697 91 37 6
|
||||||
|
22088: 5 1 7 1 5 6 4 7 97 82 1 2
|
||||||
|
145941992: 8 6 152 4 6 9 1 5 36 2 5 4
|
||||||
|
173029: 8 4 8 3 984 945 4
|
||||||
|
1022333: 1 34 22 5 365 33 3
|
||||||
|
14867740855: 1 44 2 661 781 54
|
||||||
|
1137433680: 406 8 1 9 8 7 684 3 49 5
|
||||||
|
20443486: 7 94 6 379 8 9 8 4 93 9 7
|
||||||
|
492099487: 2 8 7 3 20 9 7 2 9 658 6 6
|
||||||
|
90834615: 387 6 869 718 11 45
|
||||||
|
1036638056: 945 3 45 243 56
|
||||||
|
1724286: 9 8 31 191 534
|
||||||
|
382158728: 76 42 1 5 5 3 72 8
|
||||||
|
58670320: 42 9 1 9 5 7 401 344 88
|
||||||
|
6194319: 1 330 99 95 6 62 173 3
|
||||||
|
13725249049: 98 14 524 904 6 3
|
||||||
|
475791360: 775 11 43 2 605
|
||||||
|
176078330078: 3 78 77 5 3 1 6 9 203 5 5
|
||||||
|
471606355: 1 65 7 6 335 6 54 1 55
|
||||||
|
13599902: 8 8 3 8 269 20 207 36
|
||||||
|
1311720: 9 57 7 9 474 40 1
|
||||||
|
2782799: 8 82 53 5 5 2 8 671 288
|
||||||
|
151025418604: 4 992 7 412 941 98 4
|
||||||
|
6889365: 334 95 921 211 4
|
||||||
|
1395052: 4 347 9 61 52
|
||||||
|
685202675: 7 85 51 52 8 7 1 2 341
|
||||||
|
106283: 7 30 26 225 25 6 6 2 9
|
||||||
|
423138: 26 1 9 452 4 66
|
||||||
|
443236: 6 70 75 3 957 69 3 895
|
||||||
|
1415392: 9 15 35 5 7 6 9 18 5 6 9 8
|
||||||
|
351077611: 45 7 5 3 3 93 7 7 78 6 5 8
|
||||||
|
1263251133: 43 306 6 15 11 240 96
|
||||||
|
83528: 3 6 97 86 87 95
|
||||||
|
9740501: 80 426 385 50
|
||||||
|
94537: 180 9 5 3 7
|
||||||
|
100647633: 629 16 7 1 633
|
||||||
|
47197641: 47 1 9 764 1
|
||||||
|
80: 1 13 1 62 5
|
||||||
|
30278117: 56 7 5 441 57 5 2 7 6 9 9
|
||||||
|
5978082: 554 8 6 4 394 24 97 66
|
||||||
|
417734832: 6 2 968 720 70 92 6 61
|
||||||
|
670781: 416 6 9 245 2 3 2 9 5 8 5
|
||||||
|
3010: 24 6 10
|
||||||
|
7313227502: 265 8 7 4 1 5 7 1 8 2 88
|
||||||
|
3040362: 63 1 1 1 91 514 52
|
||||||
|
523261333625: 9 1 915 809 1 9 7 616 9
|
||||||
|
276486972: 9 51 8 9 97 7 6 1 455 5 4
|
||||||
|
52758: 18 290 69 7 593 54
|
||||||
|
16390942: 2 3 732 9 4 253 935 27
|
||||||
|
485240: 4 8 552 830 520
|
||||||
|
189880: 18 967 5 120 87
|
||||||
|
57611: 568 93 719
|
||||||
|
39090876: 3 30 82 31 466
|
||||||
|
108551: 53 7 4 3 73
|
||||||
|
29753124395: 828 99 9 265 9 121 7
|
||||||
|
24181: 1 78 8 38 4 6 5 3 6 139 2
|
||||||
|
180774: 83 33 11 6
|
||||||
|
4508292: 3 1 4 60 7 4 35 667 39
|
||||||
|
8739: 30 79 2 2 4
|
||||||
|
1132586025: 1 8 4 8 32 525 141
|
||||||
|
68400: 7 9 9 3 912
|
||||||
|
583127513765: 69 24 3 3 46 423 211 7
|
||||||
|
275528030: 5 4 908 197 44 7 9 87 5
|
||||||
|
100131239602: 90 66 39 43 7 46 7 8 2
|
||||||
|
20364: 916 977 64 9 785
|
||||||
|
3172070: 295 22 7 3 539 69
|
||||||
|
67531026909575: 51 817 214 573 609 2
|
||||||
|
415718109: 376 39 1 718 108
|
||||||
|
143296133: 252 3 351 6 6 90 651 2
|
||||||
|
37274164: 8 696 79 6 1 660 4
|
||||||
|
343291371500: 75 836 634 51 1 70 2
|
||||||
|
201717693276: 5 21 2 7 83 4 66 677 37
|
||||||
|
8035042: 100 39 1 2 5 8 7 6 7 905
|
||||||
|
251: 1 187 64
|
||||||
|
7190499: 882 1 829 2 7 3 3 3
|
||||||
|
13109: 9 7 74 2 72 68 2 1 66 8 5
|
||||||
|
90541248356: 50 164 4 8 368 1 3 4 7 9
|
||||||
|
37488529328: 5 138 24 7 66 27 49 8
|
||||||
|
32596072: 267 8 27 954 556 1 7 9
|
||||||
|
30691934237: 349 34 64 917 3 5 80
|
||||||
|
713691: 78 227 259 206 97 9 9
|
||||||
|
206: 10 1 196
|
||||||
|
19451: 4 1 9 58 6 220 9 7 19 9 2
|
||||||
|
15599: 3 12 599
|
||||||
|
55917665: 2 4 2 2 5 771 2 9 518 83
|
||||||
|
8693847: 66 467 7 3 94 69
|
||||||
|
496064: 655 2 17 8 92
|
||||||
|
119414568967: 58 7 5 9 7 8 906 4 4 2 9 1
|
||||||
|
269963409: 63 494 2 323 5 3 3
|
||||||
|
860479176: 9 2 7 7 3 3 9 8 4 61 2 771
|
||||||
|
4670133944: 4 55 77 876 100 7 392
|
||||||
|
10078381: 875 4 40 39 73
|
||||||
|
3223068: 8 11 2 3 38 62 12 1 54 5
|
||||||
|
179730136: 3 3 73 9 74 208 6 8 8
|
||||||
|
302890364470: 6 5 966 3 5 196 26 95
|
||||||
|
37: 23 1 1 8 4
|
||||||
|
1197312: 8 72 9 63 82 2 6 7 3 48
|
||||||
|
773436: 2 37 198 3 76 860
|
||||||
|
167832000: 2 3 1 1 4 3 98 9 8 333 7 8
|
||||||
|
183161250047: 373 32 268 5 75 45 47
|
||||||
|
675951372: 57 87 921 37 4
|
||||||
|
318979526521: 92 1 866 500 7 520 51
|
||||||
|
34139791032: 828 25 4 947 758 2 2
|
||||||
|
222717817: 380 44 45 25 296 7 10
|
||||||
|
1136290832: 3 5 3 2 7 327 2 6 7 9 4
|
||||||
|
65054925214: 111 990 8 611 74
|
||||||
|
3093328: 14 320 5 6 702 1 7 7 16
|
||||||
|
383323505169: 7 9 8 8 725 2 3 4 6 6 50 8
|
||||||
|
3452869836: 5 2 6 9 5 2 71 3 476 6 6 3
|
||||||
|
6878148: 543 8 33 7 1 5 63 5 5 6
|
||||||
|
90298: 92 810 98
|
||||||
|
14518235: 6 836 466 37 471
|
||||||
|
781556: 7 9 8 30 2 193 1 4 3 6 3 5
|
||||||
|
68649438: 4 714 81 26 899
|
||||||
|
150072145: 19 5 5 2 74 26 1 6 4 84
|
||||||
|
7926: 5 2 49 1 72 11 7 3
|
||||||
|
94176: 269 603 108
|
||||||
|
14903688: 5 298 3 6 88
|
||||||
|
9718059: 7 964 799 7 56 6
|
||||||
|
139950: 2 4 2 5 4 97 7 4 6 5 37 60
|
||||||
|
567382186: 567 2 931 890 85
|
||||||
|
248507: 5 10 68 73 307
|
||||||
|
122844: 71 1 6 5 628 116
|
||||||
|
1682235070: 58 569 4 8 63 532
|
||||||
|
4641: 5 754 865 4 2
|
||||||
|
1494663518: 17 4 859 3 3 6 5 69 86
|
||||||
|
21982951: 44 991 1 8 8 87 9 7 46
|
||||||
|
186041: 1 7 7 1 36 2 744 8 5 7 5 6
|
||||||
|
1938320: 6 478 580 4
|
||||||
|
8719949700: 794 10 8 4 9 5 4 246 62
|
||||||
|
65959576: 5 9 5 69 7 8 9 265 1 10 5
|
||||||
|
39739764: 73 9 4 8 7 192 37 3 332
|
||||||
|
98531785: 9 822 31 17 83
|
||||||
|
1610235387: 44 60 6 427 645 6 4 3 9
|
||||||
|
3635: 6 17 603 22 5
|
||||||
|
65193: 97 7 48 2 9
|
||||||
|
7674: 8 954 7 1 34
|
||||||
|
655960: 51 643 20 7 93
|
||||||
|
403726458: 6 5 54 616 60
|
||||||
|
42426724: 45 2 8 992 91 2 436
|
||||||
|
9119647: 908 3 9 639 8
|
||||||
|
75426: 9 848 88 7 6
|
||||||
|
29444948: 7 374 3 28 4 3 1 3 7 926
|
||||||
|
262760: 5 7 3 3 850 5 4 9 1 5 85 5
|
||||||
|
342333: 84 97 59 1 4 89
|
||||||
|
470790145: 5 755 9 4 2 96 6 3 9 1
|
||||||
|
37850302: 64 5 88 42 102 32
|
||||||
|
3129944268: 26 21 8 819 7 4 4 363
|
||||||
|
2053663: 399 815 17 27 79 99 7
|
||||||
|
12985519: 66 47 51 214 5 74
|
||||||
|
344025: 3 9 7 9 868 9 1 320 25
|
||||||
|
201204: 9 410 2 72 27
|
||||||
|
223396628: 2 7 3 5 212 2 777 5 97 6
|
||||||
|
3567168242: 1 1 2 9 3 12 4 563 242
|
||||||
|
762224: 31 2 4 10 15 7 21
|
||||||
|
81042320613: 30 9 3 4 231 9 67 3 940
|
||||||
|
4476087598: 5 3 54 36 9 3 9 8 1 1 717
|
||||||
|
71990: 95 2 377 7 353
|
||||||
|
1042320: 5 64 581 26 6
|
||||||
|
122005024: 254 3 3 953 1 8 94 7 1 8
|
||||||
|
830286167: 4 18 1 76 627 17 616 7
|
||||||
|
6630: 4 9 49 3 37 95
|
||||||
|
3715488: 12 76 3 679 2
|
||||||
|
1040785: 8 4 10 81 4 1 93 8 13 5
|
||||||
|
73614182544: 92 8 141 82 5 45
|
||||||
|
44451: 444 46 5
|
||||||
|
4160658624: 8 5 3 8 7 952 879 7 6 24
|
||||||
|
545290: 543 9 6 36 754
|
||||||
|
31590: 9 56 9 2 338 65
|
||||||
|
77123745: 82 3 6 92 1 9 2 8 4 3 1 9
|
||||||
|
102178529: 1 5 96 709 6 463 530
|
||||||
|
3115584: 8 593 6 9 96
|
||||||
|
5141881: 20 7 552 9 5
|
||||||
|
7389: 5 48 4 7 669
|
||||||
|
3481344570: 2 82 359 73 8 54 7 7 5 3
|
||||||
|
13601387: 8 1 8 3 89 5 5 5 168 4 8 9
|
||||||
|
692071: 4 79 1 7 891 6 1 95 91
|
||||||
|
85493: 758 11 211 3
|
||||||
|
11201268749: 8 3 5 9 458 54 9 5 2 5 2 9
|
||||||
|
9296: 9 3 3 9 4 6 6 7 507 30 6 8
|
||||||
|
198657: 7 4 705 946 542 845 9
|
||||||
|
36524791: 2 87 82 3 3 6 2 278 39
|
||||||
|
27674: 5 72 39 66 9 51 2
|
||||||
|
685688: 622 235 2 22 4
|
||||||
|
1948912998: 35 2 5 4 5 448 9 129 9 8
|
||||||
|
456756: 698 63 21 5 6
|
||||||
|
465: 3 462 1
|
||||||
|
733622023: 7 3 361 2 24 95 883 1 3
|
||||||
|
969: 429 4 14 2 70 5
|
||||||
|
17420824: 764 26 877 1 3 92
|
||||||
|
9412554613: 266 2 93 35 45 28 85
|
||||||
|
523886552: 178 2 2 3 72 81 74 973
|
||||||
|
3446042: 6 796 263 9 5 9 359
|
||||||
|
456: 8 8 1 23 369
|
||||||
|
7502341408: 30 2 9 7 8 409 748 296
|
||||||
|
3756824: 16 334 23 10 2
|
||||||
|
71585312: 19 90 710 35 24 838
|
||||||
|
9780184: 5 459 2 2 6 709 205 33
|
||||||
|
304945: 2 75 29 1 945
|
||||||
|
7109: 71 4 5 5 7
|
||||||
|
49602855: 8 62 4 1 1 5 2 1 5
|
||||||
|
15879: 61 6 79 3
|
||||||
|
93464118405: 29 4 9 12 6 5 5 7 4 35 7 9
|
||||||
|
303: 9 30 136 73 55
|
||||||
|
4343982708: 2 9 37 26 1 5 47 4 2 3 9
|
||||||
|
853: 79 9 54
|
||||||
|
1405673: 721 683 75 9 2 3 901 8
|
||||||
|
9865074002: 31 3 8 25 73 446 12 2
|
||||||
|
315980: 9 9 5 7 244
|
||||||
|
39166171: 326 30 11 543 4 2
|
||||||
|
480960128540: 1 329 7 900 32 4 542
|
||||||
|
6060315993: 7 94 60 31 59 94
|
||||||
|
9947826: 1 99 478 2 8
|
||||||
|
1303361821: 4 306 29 4 9 3 52 50 23
|
||||||
|
12936284251: 1 46 912 270 6 436 51
|
||||||
|
6912796811: 7 37 899 82 650 28 4 9
|
||||||
|
137282561: 8 132 13 24 4 2 7 4 27
|
||||||
|
2774467: 49 3 666 8 2 774 5 37
|
||||||
|
2799169: 4 3 5 8 3 3 1 6 6 8 7 391
|
||||||
|
25355753280: 5 3 37 437 9 8 4 1 9 605
|
||||||
|
6859: 37 43 57 4 209 58
|
||||||
|
1989634596: 944 7 2 430 25 6 4 7 93
|
||||||
|
94301445: 303 4 464 331 433 2 3
|
||||||
|
4997376: 24 301 488 648
|
||||||
|
6730244: 668 78 424 4 5
|
||||||
|
23888189390: 7 9 189 457 2 878 5
|
||||||
|
8054503859: 6 5 87 5 932 739 42 59
|
||||||
|
4508: 68 7 6 1 8
|
||||||
|
12960: 7 1 3 134 2 9 2 1 84 3 9
|
||||||
|
47545: 94 94 5 5 11 1 39
|
||||||
|
468509: 117 90 516 3 54 1 4 1
|
||||||
|
33132974: 136 3 1 2 4 2 81 4 9 67 8
|
||||||
|
335211: 36 2 53 87
|
||||||
|
1393152: 8 971 29 629 4 6 8
|
||||||
|
551372987: 4 3 165 9 6 4 8 231 2 9 2
|
||||||
|
289352: 20 95 30 807 5 315 2
|
||||||
|
48241: 1 3 60 89 8 18 3 3 91
|
||||||
|
26457: 264 26 31
|
||||||
|
21312: 31 95 455 3 3 5 9 4
|
||||||
|
104014: 65 228 7 271
|
||||||
|
73649: 340 5 444 31 21 69 3 2
|
||||||
|
581256609638: 38 98 2 39 4 609 6 3 4 3
|
||||||
|
3313: 880 465 982 822 163
|
||||||
|
3524987991: 348 3 775 723 1 79 90
|
||||||
|
2003161924: 55 8 38 7 329 9 91 9 4
|
||||||
|
227766085398: 243 9 983 74 95 4 94
|
||||||
|
1573738: 864 1 1 8 3 9 4 5
|
||||||
|
1225301724: 1 7 4 77 56 3 74 95 4 3
|
||||||
|
10569342: 1 9 5 7 9 8 99 912 6 9 34
|
||||||
|
372249600: 3 144 592 50 4
|
||||||
|
7576416001: 64 986 96 296 81 5
|
||||||
|
1241: 2 6 5 5 4 1 7 1 75 880 19
|
||||||
|
38453844: 38 45 384 4
|
||||||
|
3919923: 4 727 8 1 6 4 3 7 4 7 8 35
|
||||||
|
12346626: 27 127 2 70 18 880 83
|
||||||
|
1380741466611: 769 6 3 5 7 69 95 3 1 1 2
|
||||||
|
47924803: 7 40 92 480 3
|
||||||
|
7075706: 827 46 53 9 9 14 8 4 87
|
||||||
|
243615: 686 71 4 8 5 17 8
|
||||||
|
6624: 4 555 97 6 58
|
||||||
|
298170180: 3 345 5 6 6 3 22 99 6
|
||||||
|
457484301: 97 824 59 94 487 97
|
||||||
|
75577385051: 98 797 410 855 7 236
|
||||||
|
489803: 7 75 70 5 25 316 1
|
||||||
|
437274394: 4 30 7 274 394
|
||||||
|
164238341121: 37 854 1 524 92 39 2 9
|
||||||
|
12720: 386 3 3 5 560 3 80 2 7 1
|
||||||
|
1454630436: 7 1 2 183 5 96 6 69 9 4
|
||||||
|
219969689: 1 61 6 61 40 3 8 9 6 8 3 6
|
||||||
|
160720: 41 980 4
|
||||||
|
3948228: 6 50 105 501 994 8 2 6
|
||||||
|
36667292: 531 3 4 4 63 69 206
|
||||||
|
3342: 26 78 3 6 9 30 2 5 8 430
|
||||||
|
30578506: 277 742 3 850 6
|
||||||
|
512028: 512 50 9 2 7
|
||||||
|
1116820: 5 470 5 4 2 95
|
||||||
|
53685674: 6 143 2 5 755 71 1 9 9 8
|
||||||
|
1035146743981: 6 6 3 939 5 324 9 1 961
|
||||||
|
24320006345: 200 380 32 63 45
|
||||||
|
8974: 9 2 28 29 42
|
||||||
|
2027: 51 609 710 629 28
|
||||||
|
47212610: 7 68 6 205 4 61 98 32
|
||||||
|
4887038772: 2 1 568 102 9 142 66 3
|
||||||
|
81593: 7 8 268 8 3 1 2 5 6 7 52
|
||||||
|
976963688: 2 1 3 5 2 8 3 534 8 77 9 6
|
||||||
|
1087998: 6 45 6 7 3 6 10 417 3 3 8
|
||||||
|
3685461: 82 8 61 5 90 7 1 1 33 61
|
||||||
|
6544: 35 6 198 1 16
|
||||||
|
305117254: 610 233 5 46 710
|
||||||
|
4312154929: 960 199 9 38 66 49
|
||||||
|
10980: 4 9 3 8 59 5 8 64 30 2
|
||||||
|
15196220: 26 494 680 256 554
|
||||||
|
1812500: 876 98 996 92 2 8 72
|
||||||
|
8654: 791 64 9 6 8
|
||||||
|
54194529: 774 2 7 510 22
|
||||||
|
3252600236: 3 18 3 6 3 5 1 1 40 236
|
||||||
|
8778363545604: 2 844 49 8 992 635 1 4
|
||||||
|
541583: 7 74 2 21 583
|
||||||
|
973: 5 4 5 63 809
|
||||||
|
367055688: 63 590 1 24 562
|
||||||
|
8989660: 4 4 65 8 5 1 4 4 85 6 5 2
|
||||||
|
273481832: 72 3 1 491 921 4 377
|
||||||
|
144416: 6 54 63 814 21
|
||||||
|
8398731276: 310 3 8 6 544 20 559
|
||||||
|
10285: 8 797 837 650 1
|
||||||
|
9720912: 4 86 20 910 2
|
||||||
|
1951884: 7 34 49 79 6 81 5 8 33
|
||||||
|
78474490: 72 6 474 483 7
|
||||||
|
191780: 4 4 83 83 6 1 7
|
||||||
|
14083858: 6 535 86 7 87 51 3
|
||||||
|
169532467: 7 636 7 20 1 1 68 7 2 2 7
|
||||||
|
511152683: 28 78 4 901 8 3 6 2 1 3
|
||||||
|
8258: 16 9 6 55 8
|
||||||
|
30671310385: 72 94 871 121 43
|
||||||
|
369823052445: 59 9 737 13 1 5 9 4 7 15
|
||||||
|
4610434480: 50 76 82 548 3 5 9 835
|
||||||
|
17336328591458: 27 96 1 82 31 957 2 57
|
||||||
|
480962: 37 19 424 474 486
|
||||||
|
174557: 6 45 5 1 4 633 5 25 1 5 8
|
||||||
|
1560947212: 504 474 33 9 34 11 2 1
|
||||||
|
616150: 8 804 32 365 15 2
|
||||||
|
21103008: 8 9 246 5 8 7 9 2 3 3 428
|
||||||
|
297921036: 4 9 608 103 6
|
||||||
|
5229345: 64 817 5 48
|
||||||
|
545929524: 1 4 9 523 8 8 333 87
|
||||||
|
888: 10 2 74
|
||||||
|
804375: 7 8 208 884 363 2 693
|
||||||
|
17571080: 496 492 9 97 8
|
||||||
|
1513531230: 5 753 402 452 778
|
||||||
|
23059: 2 5 600 14 8 7 5 99 7 1
|
||||||
|
9893779: 3 29 79 3 79
|
||||||
|
13816998: 4 3 35 96 14 88 995 3
|
||||||
|
119452126: 33 9 711 6 3 8 5 2 2 7
|
||||||
|
304380008: 9 391 801 950 8
|
||||||
|
79761428159: 280 4 8 62 1 7 9 7 3 4 4 2
|
||||||
|
13848187: 138 466 1 15 142 4
|
||||||
|
1330031: 3 664 363
|
||||||
|
1329489: 8 571 1 404 364 987
|
||||||
|
1002164664: 2 331 1 614 1 49 4
|
||||||
|
16187: 1 22 701 28 33 3
|
||||||
|
13343236: 545 785 88 300 44 3 3
|
||||||
|
17838: 43 4 2 117 4
|
||||||
|
423814950: 29 983 1 6 5 9 2 465
|
||||||
|
20895899: 78 556 266
|
||||||
|
370759: 62 1 7 582 24
|
||||||
|
6657: 2 14 372 1 85 7 611 1 2
|
||||||
|
44100596: 1 594 84 7 6 25 74 962
|
||||||
|
766963: 6 1 1 669 62
|
||||||
|
19756163682741: 91 54 22 981 8 82 741
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
190: 10 19
|
||||||
|
3267: 81 40 27
|
||||||
|
83: 17 5
|
||||||
|
156: 15 6
|
||||||
|
7290: 6 8 6 15
|
||||||
|
161011: 16 10 13
|
||||||
|
192: 17 8 14
|
||||||
|
21037: 9 7 18 13
|
||||||
|
292: 11 6 16 20
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
# AOC Day Script Day XX
|
# AOC Day Script Day 08
|
||||||
# Date : 20XX.12.XX
|
# Date : 2024.12.08
|
||||||
# Python Code
|
# Python Code
|
||||||
# Developer : David Bandeira
|
# Developer : David Bandeira
|
||||||
|
|
||||||
import sys,time
|
import sys,time
|
||||||
from helpingFunctions import *
|
from helpingFunctions import *
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
setSampleMode(False)
|
setSampleMode(False)
|
||||||
|
|
||||||
@@ -14,12 +15,71 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
def identifyAntennes(data):
|
||||||
|
posAntennes=defaultdict(list)
|
||||||
|
maxY = len(data)
|
||||||
|
maxX = len(data[0])
|
||||||
|
for posY in range(maxY):
|
||||||
|
for posX in range(maxX):
|
||||||
|
dataValue = data[posY][posX]
|
||||||
|
if dataValue != '.':
|
||||||
|
posAntennes[dataValue].append((posX,posY))
|
||||||
|
return (maxX,maxY),posAntennes
|
||||||
|
|
||||||
|
def isinGrid(pos,maxPos):
|
||||||
|
return 0 <= pos[0] < maxPos[0] and 0 <= pos[1] < maxPos[1]
|
||||||
|
|
||||||
|
def calcAntiNodes(posAntA, posAntB,maxPos):
|
||||||
|
X1 = posAntA[0]
|
||||||
|
X2 = posAntB[0]
|
||||||
|
Y1 = posAntA[1]
|
||||||
|
Y2 = posAntB[1]
|
||||||
|
X3 = X1 + (X1-X2)
|
||||||
|
Y3 = Y1 + (Y1-Y2)
|
||||||
|
|
||||||
|
if isinGrid ((X3,Y3),maxPos):
|
||||||
|
return (X3,Y3)
|
||||||
|
return (-1,-1)
|
||||||
|
|
||||||
|
def findAntiNodes(maxPos,posAntennes):
|
||||||
|
posAntiNodes=set()
|
||||||
|
for keys, antenne in posAntennes.items():
|
||||||
|
for (X1,Y1) in antenne:
|
||||||
|
for (X2,Y2) in antenne:
|
||||||
|
if (X1,Y1) != (X2,Y2):
|
||||||
|
antiNode = calcAntiNodes((X1,Y1),(X2,Y2),maxPos)
|
||||||
|
if antiNode != (-1,-1):
|
||||||
|
posAntiNodes.add(antiNode)
|
||||||
|
return posAntiNodes
|
||||||
|
|
||||||
|
def bruteForceAntiNodes(maxPos,posAntennes):
|
||||||
|
posAntiNodes=set()
|
||||||
|
for Y in range(maxPos[1]):
|
||||||
|
for X in range(maxPos[0]):
|
||||||
|
for keys, antenne in posAntennes.items():
|
||||||
|
for (X1,Y1) in antenne:
|
||||||
|
for (X2,Y2) in antenne:
|
||||||
|
if (X1,Y1) != (X2,Y2):
|
||||||
|
dX1 = X - X1
|
||||||
|
dX2 = X - X2
|
||||||
|
dY1 = Y - Y1
|
||||||
|
dY2 = Y - Y2
|
||||||
|
if (dX1*dY2 == dX2*dY1):
|
||||||
|
posAntiNodes.add((X,Y))
|
||||||
|
return posAntiNodes
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
maxPos,posAntennes = identifyAntennes(data)
|
||||||
|
antiNodes = findAntiNodes(maxPos,posAntennes)
|
||||||
|
gameScoreA = len(antiNodes)
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
|
maxPos,posAntennes = identifyAntennes(data)
|
||||||
|
antiNodes = bruteForceAntiNodes(maxPos,posAntennes)
|
||||||
|
gameScoreB = len(antiNodes)
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
def task(task: int,data) -> int:
|
def task(task: int,data) -> int:
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
..........M..........j.............y.....O........
|
||||||
|
...B...............q......m........lGO............
|
||||||
|
....................q......2.l.GQ...O.............
|
||||||
|
.....X.......................................4....
|
||||||
|
.....................q............................
|
||||||
|
....M......P...............xl.K.............2.....
|
||||||
|
....F.........L.......C.K..............m..........
|
||||||
|
..........FM......P....jy......m..........o...r...
|
||||||
|
..X.......P.....RL..............G..x..........4...
|
||||||
|
............L..........NC.....q...................
|
||||||
|
.....C.X...............K....y..........4..........
|
||||||
|
........S...R.............j.x.....V...4...........
|
||||||
|
.....................R..x.....V..i......m.........
|
||||||
|
...........................R.V......N.......X.....
|
||||||
|
.....F.........M......N......E....................
|
||||||
|
................v................T.......F......O.
|
||||||
|
.............................N...V.......Q........
|
||||||
|
...v.....................C.....i..................
|
||||||
|
......c.....W..n.w........................E.......
|
||||||
|
3...................c.....................Q..6....
|
||||||
|
...........h......................j...............
|
||||||
|
.......n.0......h.................E..............2
|
||||||
|
.v.............7.......120.....c..................
|
||||||
|
......n.0............w...........D.t.........E...r
|
||||||
|
....8..3......0.w.hP....z...D..T...............r..
|
||||||
|
.................f........T........G......eQ......
|
||||||
|
......f.n.....7..p................................
|
||||||
|
.....Y..7.......f......I......D......K............
|
||||||
|
............Uf....T..W.....D..r...i...............
|
||||||
|
......I...............................Z...........
|
||||||
|
....5....B.......b..............s..............Z..
|
||||||
|
..........d...W..Uwh.............c..........i.....
|
||||||
|
..I.3..Y......................e...................
|
||||||
|
.....p.b..........k......7........................
|
||||||
|
p...........k....I..b..........s..................
|
||||||
|
.....k.......o...........W........................
|
||||||
|
.A..Y..........U.................a........6.......
|
||||||
|
..A...Y.p...................................6.....
|
||||||
|
B......k..........................Z............u..
|
||||||
|
...3.....................s..............a.........
|
||||||
|
......A.........................g.....a...........
|
||||||
|
.......A....8...b.U......H....sS..................
|
||||||
|
.........................S1.............t.........
|
||||||
|
.....................9z..e.....5..1.g.u...........
|
||||||
|
.......................z....d....g....H.J....o.6..
|
||||||
|
........B................d.....u....9.J.H.........
|
||||||
|
.8........S.................u9.............J.....H
|
||||||
|
.....................Z5.............t1...........a
|
||||||
|
.....................e..v...................o..t..
|
||||||
|
.....8...............L.....z.............J........
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
............
|
||||||
|
........0...
|
||||||
|
.....0......
|
||||||
|
.......0....
|
||||||
|
....0.......
|
||||||
|
......A.....
|
||||||
|
............
|
||||||
|
............
|
||||||
|
........A...
|
||||||
|
.........A..
|
||||||
|
............
|
||||||
|
............
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
import sys,time
|
import sys,time
|
||||||
from helpingFunctions import *
|
from helpingFunctions import *
|
||||||
|
from collections import defaultdict,deque
|
||||||
|
|
||||||
setSampleMode(False)
|
setSampleMode(False)
|
||||||
|
|
||||||
@@ -14,8 +15,60 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
def buildBlocks(data):
|
||||||
|
dataBlocks=[]
|
||||||
|
for inputData in range(0,len(data[0])-2,2):
|
||||||
|
dataBlocks.append((int(data[0][inputData]),int(data[0][inputData+1])))
|
||||||
|
dataBlocks.append((int(data[0][inputData+2]),0))
|
||||||
|
return dataBlocks
|
||||||
|
|
||||||
|
def expandDataBlock(inputData, dataBlock):
|
||||||
|
expDataBlock=[]
|
||||||
|
for i in range(0,dataBlock[0]):
|
||||||
|
expDataBlock.append(str(inputData))
|
||||||
|
for i in range(0,dataBlock[1]):
|
||||||
|
expDataBlock.append(None)
|
||||||
|
return expDataBlock
|
||||||
|
|
||||||
|
def cleanUpString(data):
|
||||||
|
data = deque(data)
|
||||||
|
res = []
|
||||||
|
while data:
|
||||||
|
value = data.popleft()
|
||||||
|
if value == None:
|
||||||
|
while data and value == None:
|
||||||
|
value = data.pop()
|
||||||
|
if value != None:
|
||||||
|
res.append(value)
|
||||||
|
return res
|
||||||
|
|
||||||
|
#def cleanUpString(data):
|
||||||
|
# for i in range(0,len(data)):
|
||||||
|
# if i >= len(data):
|
||||||
|
# break
|
||||||
|
# if data[i] == '.':
|
||||||
|
# for j in range(len(data)-1,0,-1):
|
||||||
|
# if i==j:
|
||||||
|
# return data
|
||||||
|
# if data[j] != '.':
|
||||||
|
# #data = data[:i]+data[j]+data[i+1:j]+"."+data[j+1:len(data)]
|
||||||
|
# data = data[:i]+data[j]+data[i+1:j]
|
||||||
|
# break
|
||||||
|
# return data
|
||||||
|
|
||||||
|
def checksumme(data):
|
||||||
|
ret = 0
|
||||||
|
for i in range(0,len(data)):
|
||||||
|
ret = ret+(i*int(data[i]))
|
||||||
|
return ret
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
|
expandedData=[]
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
dataBlocks=buildBlocks(data)
|
||||||
|
for i in range(len(dataBlocks)):
|
||||||
|
expandedData = expandedData + expandDataBlock(i,dataBlocks[i])
|
||||||
|
gameScoreA = checksumme(cleanUpString(expandedData))
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
|
|||||||
67
2024/day09/day09a.py
Normal file
67
2024/day09/day09a.py
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
import sys
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
|
def Checksum(arr):
|
||||||
|
total = 0
|
||||||
|
for n, num in enumerate(arr):
|
||||||
|
if num != None:
|
||||||
|
total += n * num
|
||||||
|
return total
|
||||||
|
|
||||||
|
L = open('/home/bandeira/git.bandeira/aoc/2024/day09/input.day09').read().strip().split('\n')
|
||||||
|
SPACES = []
|
||||||
|
FILES = []
|
||||||
|
l = L[0]
|
||||||
|
pos = 0
|
||||||
|
line = []
|
||||||
|
file = True
|
||||||
|
fid = 0
|
||||||
|
for ch in list(l):
|
||||||
|
if file == True:
|
||||||
|
line.extend([fid for _ in range(int(ch))])
|
||||||
|
FILES.append((fid, int(ch), pos))
|
||||||
|
fid += 1
|
||||||
|
else:
|
||||||
|
line.extend([None for _ in range(int(ch))])
|
||||||
|
SPACES.append((pos, int(ch)))
|
||||||
|
pos += int(ch)
|
||||||
|
file ^= True
|
||||||
|
LEN = pos
|
||||||
|
|
||||||
|
dq = deque(line)
|
||||||
|
nl = []
|
||||||
|
while dq:
|
||||||
|
h = dq.popleft()
|
||||||
|
if h == None:
|
||||||
|
while dq and h == None:
|
||||||
|
h = dq.pop()
|
||||||
|
if h != None:
|
||||||
|
nl.append(h)
|
||||||
|
print(Checksum(nl))
|
||||||
|
|
||||||
|
p2 = [None] * LEN
|
||||||
|
|
||||||
|
for item in reversed(FILES):
|
||||||
|
num, req, atpos = item
|
||||||
|
moved = False
|
||||||
|
for s in range(len(SPACES)):
|
||||||
|
spos, slen = SPACES[s]
|
||||||
|
if spos > atpos:
|
||||||
|
break
|
||||||
|
if slen >= req:
|
||||||
|
pos = spos
|
||||||
|
SPACES[s] = (spos + req, slen - req)
|
||||||
|
for _ in range(req):
|
||||||
|
p2[pos] = num
|
||||||
|
pos += 1
|
||||||
|
moved = True
|
||||||
|
if SPACES[s][1] == 0:
|
||||||
|
del SPACES[s]
|
||||||
|
break
|
||||||
|
|
||||||
|
if not moved:
|
||||||
|
pos = item[2]
|
||||||
|
for _ in range(req):
|
||||||
|
p2[pos] = item[0]
|
||||||
|
pos += 1
|
||||||
|
print(Checksum(p2))
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
2333133121414131402
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
import sys,time
|
import sys,time
|
||||||
from helpingFunctions import *
|
from helpingFunctions import *
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
setSampleMode(False)
|
setSampleMode(False)
|
||||||
|
|
||||||
@@ -14,12 +15,48 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
def createGrid(data):
|
||||||
|
grid = {}
|
||||||
|
for gridY in range(len(data)):
|
||||||
|
for gridX in range(len(data[0])):
|
||||||
|
grid[gridX,gridY]=int(data[gridY][gridX])
|
||||||
|
return grid
|
||||||
|
|
||||||
|
def findTrails(grid):
|
||||||
|
trails = {}
|
||||||
|
trailStartList = [k for k,v in grid.items() if v == 0]
|
||||||
|
return trailStartList
|
||||||
|
|
||||||
|
def findNextinTrail(pos,trail,grid,p2=False):
|
||||||
|
ret = []
|
||||||
|
trailX,trailY = trail
|
||||||
|
for moveX,moveY in [(-1,0),(0,-1),(1,0),(0,1)]:
|
||||||
|
try:
|
||||||
|
value = grid[(trailX+moveX,trailY+moveY)]
|
||||||
|
except:
|
||||||
|
value = -1
|
||||||
|
if value == 9 and pos == 8:
|
||||||
|
ret.append((trailX+moveX,trailY+moveY))
|
||||||
|
elif value == pos + 1:
|
||||||
|
ret = ret + findNextinTrail(pos+1,(trailX+moveX,trailY+moveY),grid,p2)
|
||||||
|
if p2 == False:
|
||||||
|
ret = list(set(ret))
|
||||||
|
return list(ret)
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
grid = createGrid(data)
|
||||||
|
trailList = findTrails(grid)
|
||||||
|
for trail in trailList:
|
||||||
|
gameScoreA += len(findNextinTrail(0,trail,grid))
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
|
grid = createGrid(data)
|
||||||
|
trailList = findTrails(grid)
|
||||||
|
for trail in trailList:
|
||||||
|
gameScoreB += len(findNextinTrail(0,trail,grid,True))
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
def task(task: int,data) -> int:
|
def task(task: int,data) -> int:
|
||||||
|
|||||||
60
2024/day10/day10a.py
Normal file
60
2024/day10/day10a.py
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
import sys
|
||||||
|
import re
|
||||||
|
import heapq
|
||||||
|
from collections import defaultdict, Counter, deque
|
||||||
|
#import pyperclip as pc
|
||||||
|
def pr(s):
|
||||||
|
print(s)
|
||||||
|
# pc.copy(s)
|
||||||
|
sys.setrecursionlimit(10**6)
|
||||||
|
infile = sys.argv[1] if len(sys.argv)>=2 else '/home/bandeira/git.bandeira/aoc/2024/day10/input.day10'
|
||||||
|
p1 = 0
|
||||||
|
p2 = 0
|
||||||
|
D = open(infile).read().strip()
|
||||||
|
G = D.split('\n')
|
||||||
|
G = [[int(x) for x in row] for row in G]
|
||||||
|
R = len(G)
|
||||||
|
C = len(G[0])
|
||||||
|
|
||||||
|
def ways1(sr,sc):
|
||||||
|
"""How many different 0s can I reach going down from here?"""
|
||||||
|
Q = deque([(sr,sc)])
|
||||||
|
ans = 0
|
||||||
|
SEEN = set()
|
||||||
|
while Q:
|
||||||
|
r,c = Q.popleft()
|
||||||
|
if (r,c) in SEEN:
|
||||||
|
continue
|
||||||
|
SEEN.add((r,c))
|
||||||
|
if G[r][c]==0:
|
||||||
|
ans += 1
|
||||||
|
for dr,dc in [(-1,0),(0,1),(1,0),(0,-1)]:
|
||||||
|
rr = r+dr
|
||||||
|
cc = c+dc
|
||||||
|
if 0<=rr<R and 0<=cc<C and G[rr][cc] == G[r][c]-1:
|
||||||
|
Q.append((rr,cc))
|
||||||
|
return ans
|
||||||
|
|
||||||
|
DP = {}
|
||||||
|
def ways(r,c):
|
||||||
|
if G[r][c]==0:
|
||||||
|
return 1
|
||||||
|
if (r,c) in DP:
|
||||||
|
return DP[(r,c)]
|
||||||
|
ans = 0
|
||||||
|
for dr,dc in [(-1,0),(0,1),(1,0),(0,-1)]:
|
||||||
|
rr = r+dr
|
||||||
|
cc = c+dc
|
||||||
|
if 0<=rr<R and 0<=cc<C and G[rr][cc] == G[r][c]-1:
|
||||||
|
ans += ways(rr,cc)
|
||||||
|
DP[(r,c)] = ans
|
||||||
|
return ans
|
||||||
|
|
||||||
|
for r in range(R):
|
||||||
|
for c in range(C):
|
||||||
|
if G[r][c]==9:
|
||||||
|
p1 += ways1(r,c)
|
||||||
|
p2 += ways(r,c)
|
||||||
|
|
||||||
|
pr(p1)
|
||||||
|
pr(p2)
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
123454078104569871014321021321012349878967874
|
||||||
|
002965169245678562105489110456701256767456983
|
||||||
|
411873254324329453456976522343812323454305432
|
||||||
|
320984589010012306567887431098943210563216761
|
||||||
|
458976673407873210698790346787654329874109850
|
||||||
|
367887654356912348787891245497645698556780943
|
||||||
|
656792343105401059678712312338562107649891234
|
||||||
|
343001643234332769589600404329431236032321104
|
||||||
|
102198756121049878465521565010120345121430213
|
||||||
|
234567987012156912374437674320345034560345412
|
||||||
|
126898776103457809983398983011276127672126703
|
||||||
|
045678945434967618812287034567689018984035894
|
||||||
|
034989876325898507600176127698548109123445665
|
||||||
|
121070165016785216010165018345630678006510778
|
||||||
|
015676234245234345323234509216721565217329889
|
||||||
|
104389892104101059654965432101892674398456788
|
||||||
|
010210743233298128760870123438984583212105998
|
||||||
|
327805654654567637201256754347673294303614854
|
||||||
|
476912348723498542112349861243100185454783763
|
||||||
|
585210239010101443009659870652231256765692152
|
||||||
|
694332108212012356788778778701645899801087001
|
||||||
|
783445098302345653299894389614556732112396503
|
||||||
|
612956789401298764108763210543678945013765412
|
||||||
|
107810987567889655895654101012109876894894321
|
||||||
|
016721076101910346781565092325012345765765010
|
||||||
|
145432345234581232690478783234540332345654321
|
||||||
|
298703876501698701541089654129651231056310145
|
||||||
|
387212965012787650132108543098774340987234236
|
||||||
|
456903454323456043236719612012589656891105687
|
||||||
|
125876561210798101045898703343478797650112793
|
||||||
|
034329870325887232784387643296556788943289832
|
||||||
|
105610711456976545693211234187645019850176541
|
||||||
|
612789804567803456789800105098732134567654320
|
||||||
|
523898714326512101234764306789678325478956010
|
||||||
|
630145625613456780345605219812569210329547854
|
||||||
|
549234034702102395653216984503431678017632903
|
||||||
|
678432129899801234764567893689120589098701012
|
||||||
|
569562101234710109803891012778021432176512343
|
||||||
|
450691032105676541012764569865434501089400154
|
||||||
|
541782145694589132123453678345123671078321965
|
||||||
|
432679238785410016787652101254010982361267873
|
||||||
|
121018019856321125696545610763010973450398654
|
||||||
|
038967025657689434545236789892129887650367743
|
||||||
|
127652134768976521430129865430034796341459812
|
||||||
|
234543089867987010321010178921015601232378103
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
89010123
|
||||||
|
78121874
|
||||||
|
87430965
|
||||||
|
96549874
|
||||||
|
45678903
|
||||||
|
32019012
|
||||||
|
01329801
|
||||||
|
10456732
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
import sys,time
|
import sys,time
|
||||||
from helpingFunctions import *
|
from helpingFunctions import *
|
||||||
|
from functools import lru_cache
|
||||||
|
|
||||||
setSampleMode(False)
|
setSampleMode(False)
|
||||||
|
|
||||||
@@ -14,12 +15,49 @@ aocYear = identifyYear(sys.argv[0])
|
|||||||
path = getPath2Data(aocDay,aocYear)
|
path = getPath2Data(aocDay,aocYear)
|
||||||
filename = getFilename2Data(aocDay)
|
filename = getFilename2Data(aocDay)
|
||||||
|
|
||||||
|
lookup={}
|
||||||
|
|
||||||
|
@lru_cache(maxsize=None)
|
||||||
|
def laserStone(stone):
|
||||||
|
if stone == 0:
|
||||||
|
return [1]
|
||||||
|
elif len(str(stone))%2 == 0:
|
||||||
|
l = len(str(stone))
|
||||||
|
stone=str(stone)
|
||||||
|
j = int(l/2)
|
||||||
|
return [int(stone[:j]),int(stone[j:])]
|
||||||
|
else:
|
||||||
|
return [int(stone)*2024]
|
||||||
|
|
||||||
|
|
||||||
def taskA (data) -> int:
|
def taskA (data) -> int:
|
||||||
gameScoreA = 0
|
gameScoreA = 0
|
||||||
|
stoneRow = [int(stone) for stone in data[0].split(' ')]
|
||||||
|
for i in range(25):
|
||||||
|
print ("Loop:" + str(i) + " = " + str(len(stoneRow)))
|
||||||
|
listStone=[]
|
||||||
|
for stone in stoneRow:
|
||||||
|
newStone= laserStone(stone)
|
||||||
|
listStone = listStone + newStone
|
||||||
|
stoneRow = listStone
|
||||||
|
gameScoreA = len(stoneRow)
|
||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
|
stoneRow = [int(stone) for stone in data[0].split(' ')]
|
||||||
|
for i in range(75):
|
||||||
|
print ("Loop:" + str(i) + " = " + str(len(stoneRow)))
|
||||||
|
listStone=[]
|
||||||
|
for stone in stoneRow:
|
||||||
|
try:
|
||||||
|
newStone = lookup[stone]
|
||||||
|
except:
|
||||||
|
newStone= laserStone(stone)
|
||||||
|
lookup[stone] = newStone
|
||||||
|
listStone = listStone + newStone
|
||||||
|
stoneRow = listStone
|
||||||
|
gameScoreB = len(stoneRow)
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
def task(task: int,data) -> int:
|
def task(task: int,data) -> int:
|
||||||
|
|||||||
52
2024/day11/day11a.py
Normal file
52
2024/day11/day11a.py
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
from functools import cache
|
||||||
|
from sys import argv
|
||||||
|
|
||||||
|
MAX_DEPTH = 75
|
||||||
|
|
||||||
|
|
||||||
|
def parse(src):
|
||||||
|
'''Convert the input to a list of integers.'''
|
||||||
|
return [int(x) for x in src.split()]
|
||||||
|
|
||||||
|
|
||||||
|
def count_digits(num):
|
||||||
|
'''Count the digits of num in base 10'''
|
||||||
|
total = 0
|
||||||
|
while num > 0:
|
||||||
|
total += 1
|
||||||
|
num = num // 10
|
||||||
|
return total
|
||||||
|
|
||||||
|
|
||||||
|
@cache
|
||||||
|
def expand(stone, depth=0):
|
||||||
|
'''Traverse the 'timeline' depth-first and return the number of stones
|
||||||
|
created by blinking at stone from depth to MAX_DEPTH blinks.'''
|
||||||
|
while depth < MAX_DEPTH:
|
||||||
|
if stone == 0:
|
||||||
|
stone = 1
|
||||||
|
depth += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
digits = count_digits(stone)
|
||||||
|
if digits % 2 == 0:
|
||||||
|
mask = 10 ** (digits // 2)
|
||||||
|
left = stone // mask
|
||||||
|
right = stone % mask
|
||||||
|
|
||||||
|
return expand(left, depth + 1) + expand(right, depth + 1)
|
||||||
|
|
||||||
|
stone *= 2024
|
||||||
|
depth += 1
|
||||||
|
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
def main(stones):
|
||||||
|
'''The total number of stones produced after 75 blinks'''
|
||||||
|
return sum(expand(stone) for stone in stones)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
# pass the path to the puzzle input as the first argument
|
||||||
|
print(main(parse(open('/home/bandeira/git.bandeira/aoc/2024/day11/input.day11').read())))
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
0 89741 316108 7641 756 9 7832357 91
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
125 17
|
||||||
34
2024/day12/day12a.py
Normal file
34
2024/day12/day12a.py
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
with open("/home/bandeira/git.bandeira/aoc/2024/day12/input.day12", "r") as file:
|
||||||
|
lines = file.read().strip().split("\n")
|
||||||
|
n, m = len(lines), len(lines[0])
|
||||||
|
graph = {i + j * 1j: c for i, r in enumerate(lines) for j, c in enumerate(r)}
|
||||||
|
for i in range(-1, n + 1):
|
||||||
|
graph[i - 1 * 1j] = graph[i + m * 1j] = "#"
|
||||||
|
for j in range(-1, m + 1):
|
||||||
|
graph[-1 + j * 1j] = graph[n + j * 1j] = "#"
|
||||||
|
visited = set()
|
||||||
|
|
||||||
|
|
||||||
|
def dfs(visited, node, color, dir):
|
||||||
|
if graph[node] != color:
|
||||||
|
if graph[node + dir * 1j] == color or graph[node - dir + dir * 1j] != color:
|
||||||
|
return 0, 1, 1
|
||||||
|
else:
|
||||||
|
return 0, 1, 0
|
||||||
|
if node in visited:
|
||||||
|
return 0, 0, 0
|
||||||
|
visited.add(node)
|
||||||
|
area, perimeter, sides = 1, 0, 0
|
||||||
|
for d in (1, -1, 1j, -1j):
|
||||||
|
a, p, s = dfs(visited, node + d, color, d)
|
||||||
|
area, perimeter, sides = area + a, perimeter + p, sides + s
|
||||||
|
return area, perimeter, sides
|
||||||
|
|
||||||
|
|
||||||
|
ans1, ans2 = 0, 0
|
||||||
|
for node in graph:
|
||||||
|
if node not in visited and graph[node] != "#":
|
||||||
|
area, perimeter, sides = dfs(visited, node, graph[node], 1)
|
||||||
|
ans1 += area * perimeter
|
||||||
|
ans2 += area * sides
|
||||||
|
print(ans1, ans2)
|
||||||
@@ -0,0 +1,140 @@
|
|||||||
|
GGGGOOOOOOOOXXXXXXXXXXXXXXXXXSSSSSSSSSSSWWWWWWWWWWYYYYYYYYYYYYYYVVVVVVVVVVVVVVAGEEEEEEEEGGGGGGGGGGGGGEEBEQEYYYYYYYYBSSSBBBBBBBBBBBBBBBBBBBBB
|
||||||
|
GOOOOOOOOOOOOXXXXXXXXXXXXXXXXSSSSSSSSSSWWSWWWWWWYWYYYYYYYYYYYYYYYPVVVVVVVVVVVVVVEEEEEEEEGGGGGGGGGGEGGEEEEEEYYYYYYYYBBBBBBBBBBBBBBBBBBBBBBBBB
|
||||||
|
GGGGOOOOOOOOOXXXXXXXXXXXXXXXSSSSSSSSSSSWSSWWWWWWYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVEEEEEEEEGGGGGGGGGEEEEEEEEEEEYYUYYYYBBBBBBBBBBBBBDBBBOOBBBBBI
|
||||||
|
GGGGGOOOOOOOXXXXXXXXXXXXXXXSSSSSSSSSSSSSSSQQWWRWYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVEEEEEEEEGGGGGGGGGNEEEEEEEEEEYUUUUUUBBBBBBBBBDDDDDBBBOOBBBBII
|
||||||
|
GGGOOOOOOOOOXXXXXXXXXXXXXSSSSSSSSSSSSSSSSSQQQRRRYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVEEEEEEEEGGGNGGGGGNTTEEEEEEEEUUUUSSSBBBBBBDDDDDDDDDDOOOBBBBBI
|
||||||
|
GGGGOOOOOOOXXXXXXXXXXXXXXSSSSSSSSSSSSSSSSRMMQRRRYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVEEEEEEEEGGNNGGGGGNTTEEEEEEEEEUUSSQQQOBDDDDDDDDDDDDDDOBBBBBBB
|
||||||
|
GGGGGOOOOOOXXXXXXXXXXXXXXSSSSSSSSSSSSSSSRRRRRRRRRJQQYQYYYYYYYYYYYVVVVVVVVVVVVVVVEEEEEEEEGGNNNNNGNNNEEJUUUUUUUUUUQQQQQDDDDDDDDDDDDDDBBBBBBBBB
|
||||||
|
GGGYGYOOOOOOXXXXXXXXXXXXXXXSYYSSSSSSSSSRRRRRRRRRJJJQQQCYYYYYIVYBBVVVNNNNNVVVVVVVEEEEEEEEGGNNNNNNNNNEJJUUUUUUUUUUQQQQQQQDDDDDDDDDDDDBBBBBBSSK
|
||||||
|
GGGYYYOOOOOYYYXXXGGXXXGGGGGYYYYYSSSSOSSRRRRRRRRRRQQQQQQYYYEEIIIBBVVVNNNNNVVVVVEEEEEEEEEEGGGNNNNNNNNNNJGGUUUUUUUUNQQQQQYDDDDDDDDDDDDSSKSSSSSS
|
||||||
|
GGGGGYYOYOOYYXXXGGGGGGZGGGYYYYSSSSSSSSSSRRRRRRRRAVVQQQYYYYEIIIBBBVVVNNNNNNVVEEEEEEEGGGGGGGGNNNNNNNNNJJGGUUUUUUUUUQQQQQQDDDDDDDDDDDDDSSSSSSSS
|
||||||
|
GGGGGYYYYYYYYYXXXXGGGGGGGGGGYYYSSSYYYSSRRRRRRRRRVVVQQQQIYYIIIIIIBBVNNNNNNNVVEEEEEEEUUUGGGGGNNLGNNNNGGGGGGUUUUUHHQQQQTQQDDDDADDDDNDBBBSSSSSSS
|
||||||
|
GGYGYYYYYYYYYYXXXXGGGGGGGGGGYYYYYYYRRSRRRRRRRRRRRRVVVQQIIVIIIIIIIGNNNNNNNNMMEEEEEEEEEGGEEERRRGGGGGGGGGGUUUUUUUHGQSQTTTCDDDXXDDDDNDBSSSSSSSSS
|
||||||
|
YYYYYYYYYYYYYYXXXGGGGGGGGGGGYYYYYYYRRRRRRRRRRRRRRRVVVVQQQVXIIIIIQGNNNNNNNNUMEEEEEEEEEEEEEEEERGGGGGGGGGGUUUIUUHHHHTTTTTCDDDXXDDDDNNSSSSSSSSSS
|
||||||
|
YYYYYYYYYYYYYYYXXGGGGGGGGGGGGYYYYTRRRTRRRRRRRRRRRRRVVVVVVVIIIGIGGGGNNNNNNNNAEEEEEEEEEEEEEEEERGGGGGGGGGGIIUIIGGHHHTTTTTCDDDXXXXNDDNSSSSSSSSSS
|
||||||
|
YYYYYYYYYYYYYYYXGGGGGGGGGGGGGGGGYTKTTTTRRRRRRRRRRRVVVVVVVVVVIGGGGGGGNNNNNNZMMEEEEEEEEEEEEEEERRRGGGGGRRIIIIIIIIOHHTTTTTTTXXXXXXNNNNSSSSSSSSSS
|
||||||
|
YYYYYYYYYYYYYYYGGGGGGGGGGGGGGGTTTTTTTTGTRRRCRRRUUUUUUUUUVVGVGGGGGGGGGNNNNMMMMMMEEEMEEEEEEERRRRGGGGRRRRRIIIIIXITHHTTTTTSSSXXXXXNUUNSSSSSSSSSS
|
||||||
|
OOYYYYYYYYYYYSYGGGGGGGGGGGGGGGGGGTTTTTTTTCCCRRRUUUUUUUUUVVGGGGGGGGGGGGGGTTMMMMMEEEMMEEEEEEERRRGRRRRRRRRIIIIIXTTTTTTTTSSSXXXXXXUUUNNNSSSSSSSS
|
||||||
|
OYYYYYYYYYYYSSGGGSSSGGSGGGGGGGGTZTTTTTTTTCCCCCRUUUUUUUUUVVVTGGGGGGGGGGGGMMMMMMMMMMMEEEEEEDDTTRRRRRRRRRBIIIIITTTTTTTSSSSSXXXXXXUUNNNNSSSSSSSS
|
||||||
|
OYYYYYYYYYYYSSSSSSSSSSSSGGGGGHGTTTTTTTTTTTTCCCYUUUUUUUUUZVNOOGGGGGGGGGGGGMMMMMMMMMMEEEEEUTTTTRRRRRRRRRBIIIIIPTTTTTSSSSSSXXXXXUUUNNNNNNSSSSSS
|
||||||
|
OOYOYYYYYSSSSSSSSSSSSSSSGGGGGHHHTTTDTTTTTCTUUUUUUUUUUUUUODOOOGGGGGGGGGGMMMMMMMMMMMMZUUUUUTTTTTTRRRRRRRBBIIIBBBBTTSSSSSSSSXXNNUNNNNNNNNNSSSSN
|
||||||
|
OOYOOYYYGSSSSSSSSSSSSSSSGGGGGHHHHTTTTTZCCCTUUUUUUUUUUUUUOOOOOOOGGGGGGGGYMTMMMMMMMMMMUUUUATTTTTTRRRRRRRBBBBBBSBBSTTSSSSSSSSXXNNNNNNNNNNNSNNNN
|
||||||
|
OBOOOOYBGGSSSSSSSSSSSSSSTGUGHHHHHHHTTTCCCCCUUUUUUUUUBBBOOOOOOOOPOOGGGGGYYYMMMLMMMMMMUUUUAATTTTTTRRRRRRBBBBBSSDSSTSSSSSSSSSXNNNNNNNNNNNNNNNNN
|
||||||
|
BBBOOYYBGSSSSSSSSSSSSSSSTTIKIHRHHHIIECCCCCCUUUUUUUUUBBBOOOOOOOOOOOIOGGYYYYYLLLMMMMMMUUUUATTTTTTTRRRRRRRBBBBSSSSSSSSSSSSJJJJNNNNNJNNNNNNNNNNN
|
||||||
|
BBBBBBBBBBSZSSSSSSSSSSSSIIIIIRRRRHISCCCCCCCUUUUUUUUUBOBBBOOOOOOOOOOOOOYYYYYYLLMMMMMMMUUUGGTTTTTTGRRRRRRBBBBSSSSSSSSSSSSJJJJJJJJJJNNNNNNNBBNN
|
||||||
|
BBBBBBBBBBSZSSSSLSLSSSSSIIIIIRRRIIIICCYCCCCUUUUUUUUUBOBBSOOOOOOOOOOYYYYYYYYYLLUUUMZMMUUUUGKTTGTTGGRRRRRRBBSSSSSSSSSSSSSJJJJJJJJJJJNBBBBBBBNN
|
||||||
|
BBBBBBBBBVSSSSSSLLLLSSIIIIIIRRIRIIIAACCCCCTUUUUUUUUUVOOBSOOOOOOOOOTTYYYYYYLLLUUUUUUUUUUUGGGTGGGGGGGGRRRRBBSSSSSSSSSSSSSJJJJJJJJJJJJJBBBBBBNN
|
||||||
|
BBBBBBBBBSSSSSSSLLLLLIIIIIIIRIIRIIIJAAJJCCCUUUUUUUUUOOOOOOOOOOOOOOYYYYYYYYYLLUUUUUUUUUQUGGGGGGGGGGGCCRRRBBSSSSSSSSSSSSSJJJJJJJJJJJJJBBBBBBBN
|
||||||
|
BBBBBBBBBSBBSSSLLLLLAAAILIIIIIIIIJJJAJJJCJJUUUUUUUUUVVVOOOOOOOOOOYYYYYYYYYYYYYUUUUUUUUQQGGGGGGGGGGGGCRCCSSSSSSSSSSSSSJJJJJJJJJJJJJJBBBBBBBBN
|
||||||
|
BBBBBBBBBBBSSSLLLLLLLLLLLLIIIIIIJJJJJJJJCJJUUUUUUUUUVVVOOOOOOOOOOYJJYYYYYPYYYNNUUUUUQQQGGGGGGGGGGGGCCCCCSSSSSSSSSSSHSSJJJJJJJJJJJJJBBBBBBBNN
|
||||||
|
BBBBBBBBBBBSSSSLLLLLLLLLLLIIIIIIXXJJJJJJJJJUUUUUUUJJVVVLQQQOOOOOOOOJYYYYYPPPPPNNUUUUUQQQUGGGGGGGGGGGCCCCSSSSSSSSSSSHHSJJJJJJJJJJJJJBBBBBBBBB
|
||||||
|
BBBBBBBBBBBGSSLLLLLLLLLLLIIIIIIIXXJEEJJJJJJUUUUUUUJJJVVLQQXQOOOOOOUYYYYYYPNPPPNPPPUUUQQQQGGGGGGGGGGGCCSSSSSSSSSSHHHHHSOJJJJJJJJJJJJBBBBBBBBN
|
||||||
|
BBBBBBBBBBPWLLLLLLLLLLLLLIIIIIIIXXXXEDDJJJJUUUUUUUJJJJQQQQQQQQQQQOUUYYYYYQPPPLPPPPOOQQQQGGGGGGCCCGGCCCSSSSSSSSSSHHHHHOOOJJJJJJJJJJJBBBBBBNBN
|
||||||
|
BBBBBBBBWWWWWWALLLLLLLLLIIIIIIIXXXXXXDDJJJVUUUUUUUJJJQQQQQQQQAAUUUUUUUUYYQPPPPPPPPOSSSSSSSGGGGCCCCCCCCCCSSSSSHHHHHHHHHOOOJJJJJJJJJJJBBNNNNBN
|
||||||
|
BBBBBBBBBBBWWWALLLLLLLLLLIIIIIIIXDXXXDDDVVVVVVVJJJJJJQQQQQQQAAAUUUUUUUYYYYPPPPPPPPPSSSSSSSGGICCCCCCCCCSSSSSSSSSSHHHHHOOOOJJJJJKKJJJJLSNSNNNN
|
||||||
|
BBBBBBBBBBWWWWJJJLLLLLLLLLLIIIIIDDDXDDVIIVVVVVVVJJJJJTQQQQQQAUUUUUUUUUUUYUUPPPPPSSPSSSSSSSGGGCCCCCCCCCCSSSSSSSSHHHHGHOOJJJJJJKKJJLJLLSNSNNNN
|
||||||
|
BBBBBBBBBWWWWJJJJJLLWLRJSIIIIIDDDDDDDDVVVVVVVVVPJJJJQQQQQQQQQGUUUUUUUUUUUUPPPPPPPSSSSSSSSSGCCCCCCCCCCCSSSSSSSSSSSSSSMJJJJJJJJJJLLLLLLSSSNNNN
|
||||||
|
BBDDBBBDBWJJJJJJJJJJJJJJJIIIIIDDDDDDDDVVVVVVVVVVVJJQQQQQQQQQQQUUUUUUUUUUUUPPPPPPPSCSSSSSSSGCCCCCCCCCCCCSSCSSSSSSSSSSJJJJJJJJJJJLLLSSSSSSSSNS
|
||||||
|
BPDDDDDDWWWJJJJJJJJJJJJIIIIIIIWDDDDDDDVVVVVVVVVVJJJQQQQQQQQQQQJUUUUUUUUUUUUUPPPPPPCSSSSSSSCCCCCCCCCCCCCCCCCSSSSSSSSSPJJJJJJJJJJJLLLSSSSSSSSS
|
||||||
|
PPPNNDWWWWWJJJJJJJJJJJJIIIIIIWWWDDDDDDDDVVVVVVVVJJQQQQQQQQQJJJJUUUUUUUUUUUUPGPPPDDSSSSSSSSSSJJCCCCCCCCCCCSSSSSSSSSSSSJJJJJJJJJJJJSSSSSSSSSSS
|
||||||
|
PNNNNNNWWRWJJJJJJJJJJJJJIIIIIWWWWDDDDDDDCVVVVVJJJJJJQJQJQJJJJJJUUUUUUUUUUUPPPPPPDSSSSSSSSSSACCCCCCCCCCCCCSSSSSSSLSSSJJAJJJJJJJOOOOSSSSSSSSSS
|
||||||
|
PPNNNNNWRRWWJJJJJJJJJJJIIIIIIWWWWDDDDDDDCVVVVVVJJJJJQJQJJJJSJJJUUUUUUUUUUUPUFFPPDDSVSSSSSASAAACCCCCCCWWOSSSSSSSSSSSSSAAJJJAJJTSSSSSSSSSSSSSS
|
||||||
|
PPNNNNNNNRWRRJJJJJJJJXJIIIIIIWWWWWDDDDDDDVWVVVVVJJJJJJJJJJJSJJJLLUUUUHUUUUUUFFPPFSSFSSSAAAAAAACCIIIJCWWWWSSSSSSSSSSSAAAAAAAAATTSSSSSSSSSSSSS
|
||||||
|
PPNNNNNNRRRRJJJJJJJJXXXIIAIWWWWWWHDDADDIIVWWWWVJJJJJJJJJJJJSSSSSSUUUUUUUUUUUUFFJFFFFFFAAAAAAAAAIIIIIWWWWWSUUUUUUUUUAAAAAAAAAATTSSSSSSSSSSSSS
|
||||||
|
NNNNNNNNNRRRRJJGGJXXXXXIAAAAWWWWGDDDAADLLWWWLLMLLLJJJJJJJJSSSSSSSSUUUUUUUUUUUJJJJFFFFFFFFAAKAAAIIIIIWWWWLSUUUUUUUUUAAAAAAAAAATTSSSSSSSSSSSSS
|
||||||
|
NNNNNNNNNRRRRRGGGJXXXAAAAAAAWAWADDDDAADLLLWWLLLLLLLLJJJJJJSSSSSSSSSOPUUUUUKKCCJJJFFFFFFFFFAKKAIIIIIIWWWWWSUUUUUUUUUAAAAAAAAAATTTSSSSSSSSSSSS
|
||||||
|
NNNNNNNNNRRRRGGGGGXXAAAAAAAAWAWAADDAAAAALLLLLLLLLLLLJJJJJJJBSSSSSSSPPPPUUKBKCKFFFFFFFFFFKKKKKAAAAIIIIWWAAAUUUUUUUUUAAAAAAAAAATTTTSSSJJSSSSSS
|
||||||
|
NNNNNNNNNRRRRRRGGGGGAAAAAAAAAAAAAAAAYYYALLLLLLLLLLLJJJJJJJBBBSSSSSSSPPPKKKKKKKFFFFFFFFFFKKKKKKAAIIIIUUWAAAUUUUUUUUUAAAAAAAATATTTTTTSJJSSSSSS
|
||||||
|
NNNNNNRNRRRRRRRGGGGWAAAAAAAAAAAAAAAAYYYZLLLLLLLLLHHHJJJJJJBBBSSSSSPPPPPPPTKKKKKKKKKKKFKKKKKKKKKLLIIIIIWWWYUUUUUUUUUAAAAAAATTTTTTTTJJJJJSJSJS
|
||||||
|
NNNNNRRNRRRRRRRGGGGGGGGAAAAAAAAAAAAYYYYYLLLLLLLLLLHHHHJJJBBBFSXSSSSPPPPPPPCKKKKKKKKKKKKKKKKKKAALLIIIIILZYYUUUUUUUUUAAAAAAATTTTTTJJJJJJJSJJJS
|
||||||
|
SQQNUURRRRRRRRRGGGGGGGGGAAAAAAAAAAYYYYYLLLLLLLLLLLLHHHJJJJBBBBBBSSPPPPPPPPKKKKKKKKKKKKKKKKKKKAALLIIIWWLZYYYYYYYAAAAAAAAAAATTTTTTJEJJJJJJJJJS
|
||||||
|
QQQQQUUUURRRRRGGGGGGGGGGAAAAAAYYYYYYYYYLLLLLLLLLLLLHHHYJJJBBBBBBDPPPPSPPPAKKKKKKKKKKKKKKKKLKAALLLLLLLLLLYYYYYYYAAAAAAAAAATTTTTTJLJJJJJJJJJJE
|
||||||
|
VQQQQQUUURRRRGGGGGGGGGGGGAAAAAYYYYYYYYYLLLLLLLLLLLLHHYYYYNBBBBBBDPPPPSPPPAKKKKKKKKKKKKKKKKLAALLLLLLLLLLLLLYYYYYAAAAAAATTATTTTTTJJJJJJJJJJJJJ
|
||||||
|
VVVQQUUUUURRRRGGGGGGGGGGGAAAAAYYYYYYYYLLLLLLLLLLLLLHYYYYBBBBBBBBDPSSSSSPPAAKTKKKKKKKKKKLLLLLLLLLLLLLLLLLLYYYYYYYAAAAATTTTTTTTTTTJJJJJJJJJJCJ
|
||||||
|
VVVVUUUUTRRRRRRGGGGGGGGGAAAEAYYYYYYYYYLLLLLLLLLLLLLYYYYYBBBBBBEBDSSSSSSSAAATTKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLYYYYYYAAAAAAATAZZZZTTTJJJJJJJJJJM
|
||||||
|
VVVUUUUUTTRRRRRRGJGGGUGXRRRERRRRYYYYYYYLLLLLLLLLLKYYYYYYYBBTWWEEWSSSSSSSSTTTTTTKKTKKKKLLLLLLLLLLLLLLLLLLLLFYYYYYYYYAAAAAAAZZZZZZZJJJJJJJJMMM
|
||||||
|
VVVUUUUUUTRRRRUUJJUUUUXXXRRRRRRRYYYYZZYYYLLLLKKKKKKYYYYYYYWWWWWWWSSSSSSSSWWTTTTTKTKKKKLLLLLLLLLLLLLLLLLLLLYYYYYYYYGGGGGGGGGGZZZZZZJJJJJJJMMM
|
||||||
|
VVVVUUUTTTRRRRUUUUUUUUXXXRRRRRRRVYZZZZZYYLLLLLKKKKYYYYYYYYWWWWWWWWSSSSSSSTTTTTTTTTTTKPPLLLLPZIZLLLLLLLLLLLYYYYYYYYGGGGGGGGGGZZZZZZZZZJJJJJMM
|
||||||
|
VVVVQUTTTTRTRRUUUUUUUUXXRRRRRRRVVZZZZZZZYYLLKKKKKKKYYYYWYYWWWWWWWWWSSSSSTTTTTTTTTTTTKPPLPPPPZZZZZLLLLLLLTTYYYYYYYPGGGGGGGGGGZZZZZZZZMMJMMMMM
|
||||||
|
VVVVVUTTTTTTRRUUUUUUUUUUURRRRRRRRRZZZZZZYGGLGKKKKKKWWWWWWWWWWWWWWWWWSSTTTTTTTTTTTTTTTPPPPPPPZZZZZZLLLLLLYYYYYYYYYPGGGGGGGGGGGGGGZZZZZMMMMMMM
|
||||||
|
VVVVVTTTTTTTRUUUUUUUUUUUURRRRRRRRBZZZZZZZGGGGKGKKKKWWWWWWWWWWWWWWWSSSVRTTTTTTTTTTTTPPPPPPPPZZZZZZNLLLLZZYYYYYYYPPPGGGGGGGGGGGGGGZZMMMMMMMMMM
|
||||||
|
YYYVTTTTTTTTRRUUUUUUUUUUURRRRRRRZBZZZZZZGGGGGGGGGKKKWWWWWWWWWWWWWVVVVVVTTTTTTTTTTTTTTPPPPZZZZZZZZNNNNLLPPYYYYYYPPPGGGGGGGGGGGGGGZZMMMMMMMMMM
|
||||||
|
YYYYYTTTTTTTTUUUUUUUUURURRRRRRRZZZZZZZZGGZGGGGGGKKKKWWWWWWWWWWWVVVVVVVVTXTTTTTTTTTTQPPPPPZZZZZZZZNNNNLNPPYYYYPYPPPGGGGGGGGGGGGGGZZZMMMMMMMMM
|
||||||
|
YYYYTTTTTTTTMMMUUUUHRRRRRRRRRRRRVZZZZZZZZZZGGGGBBBBKWWWWWWWWWWVVVVVVVVVVVVTTTTTTTTQQQPPPZZZZZZZZZZNNNNNPPYZYYPYPPPGGGGGGGGGGGGGGOOZZZZMMMMMM
|
||||||
|
YYVVIIETTTTTMMMUUUURRRRRRRRRRQCQQAAZZZZZZZGGGGGBBKKKKKMWWWWWWWWVVVVVVVVVTTTTTTTTTHQQZZZZZZZZZZZZZZNJNPPPPPYYYPPPPLLLLLLGGGGGGGGGOOZZZZMMMMMM
|
||||||
|
YYVIIIETTTTTTMMUUURRRRRRRRRRQQQQQQQQZZZZZZXGGGKKKKKKKMMMWWWWWWWWVVVVVVVVTTTTTTTTTTQQQZZZZZZZZZZJZZJJNJPPPPPYPPPPPLLLLLLGGGGGGGGGOOZZZMMMMMMM
|
||||||
|
VVVVVEETTTTTTTMMMMRRRRRRRRQQQQQQQMQXZZXXXXXGGKKKKKKKMMMMMMWWWWWWWVVVVVVVTVTTTTTTTTQQQQQZZZZZZZZJJZZJJJPPPPPYIIPPPPLLDLLGGGGGGGGGZZZZZMZMMMMM
|
||||||
|
VVVJVEEGTTTTTMMMMMRRRRRRRRRQQQQQQQXXXZXXXKKKGKKKKKKKMMMMMMWWWWWWUUVVVVVVTVTTTTTTTTQQQWQQQZZQZZZJJJJJPPPPPPIIIIIIIPPLLLLGGGGGGGGGVZZZZZZZMMMM
|
||||||
|
VVVVOEEEEETTTMMMMMMRRRRRRRRQPQQQQQXXXZZXXKKKKKKKKKKKMMMMMMMMWWWWWUBBVVVVTVTTTTJTWWWWQWWQQQZQZZZJJJJPPPPPPPPIIIIIPPPPPLLLLHHOOOOOZZZZZZZZMMMM
|
||||||
|
VVVVVVEEETTTTMMMMMMMRRRRRRPPPQQQQXXXXXXXXKKKKKKKKKKKMMMMMMBMBWBBBBBBVVVVVKKUUTJJWWWWWWWQQQQQQZJJJJJPPPPPPPPPPIPPPPPPPHHHHHOOOOOOOZZZZZZZZZMM
|
||||||
|
VVVVVVEEEETTTMMMMMMMRRRRRPPPPAQQXXAXXXXXXAAAKKKKKKKMMMMMMMBBBBBBBBBBBKKKKKKUUUWWWWWWWWWQQQQQQZZJJJJJJPPPPPPPPPPPPPPPPHHHHHOOOOOOZZZZZZZZZMMM
|
||||||
|
PVVVVVSEEEEEMMMMMMMMMRRRRPPPPAAAAAAAXXXXXAAAAAAAKARMMMMRRMHBBBBBBBBBKKKKKKUUUWWWWWWWWWWWQQQQQZZJJNJPPPPPPPPPPPEEPPLPHHHHHOOOOOOOZZZZZZZZZMMM
|
||||||
|
VVVVVVSEEEEEUUUUUMMMMMRRRPPPPAAAAAAAXXXXAAAAAAAAAARMRRRRRRRRBCBBBBBBKKKKKKKWWWWWWWWWWWWWQQQQQNNNNNJPPPPPPPPPPPEEZPPHHHSSHOOOOOOOZZZZZZAZAAMM
|
||||||
|
VVVVVVVUUHHHGGUUUUMMMMRPRPPPPAAAGKKAAXXAAAAAAAAAAARRRRRRRRRRVBBBBBBBKKKKKKKWWWWWWWWWWWWQQQQQQNNNNNJPPPPPPPPPPPEEEPPEEHSSOOOOOOOOOZZZZZAAAAMM
|
||||||
|
VVVVVVVUUHHHGHUUUUUUUUPPPPPPPGGGGKKAXXAAAAAAAAAAAARRRRRRRRRRRBBBBBBBBKKKKKKUTWWWWWWWWWQQQQQQQQNNNJJPPPPPPPPPPPREEEEESSSSSSOOOOOOOZZZZZAAAAAA
|
||||||
|
VVVVVJVUUHHHHHUUUUUPPPPPPPPPPGGGKKGXXXAAAAAAAAAAAARRRRRRRRRRREEBBEEEBBKKKLKTTTTWWWWWWWWWQQQQQQQQNJJJJJPPPPPPPPEEEEEEESSSSOOOOOOOOOOZZAAAAAAA
|
||||||
|
VVVVVJVUUHHHHHHUUUUPWWPPPPPPPPGGGGGGXXAAAAAAAAAAAAARRRRRRRRRREEWWWWWWWWKKKTTTTTWWWWWWQQQQQQQQQQNNNNJJJPPPPPPPEEEEEEEESSSSOOOOOOOOOOWAAAAAAAA
|
||||||
|
UUUUUUUUUUHHHUUUUUPPPWPPPPPPPPGGGGGGXXAAAAAAAAAAAYRRRRRRRREEEEFWWWWWWWWKKTTTTTTWWWWWWQQQQQQQQQQUUNNJJJJJJPPPEEEEEEEOSSSSSNNNNNNONOOOAAAAAAAA
|
||||||
|
UUUUUUUUUHHHHUUUUUPPPWWPPPPPPPGGGGZZAAAAAAAAAAAAAYYRRRRREEEEWWWWWWWWWWWKKKKKKKKKKWWWWQQQQQQQQQQUYNNYYYJJJPPPXEEEEEOOOSSONNNNNNNNNNNAAAAAAAAA
|
||||||
|
UUUUUUUUHHHHHHUUUUUUUWWPPPPPPPPGGGPPAAAAAAGZAAZZYYYRRRRRREEEWWWWWWWWWWWKOKKKKKKKKIIIIQQQQQQQWWUUYYYYYYYJJYXXXEEFOYOOOOOOONNNNNNNNNNAAAAAAAAA
|
||||||
|
UUUFEFBBBHWWUUUUUUWWWWWWWPPQPPPPPPPPEAAFAAZZVZZZYYYRRRRREEEFWWWWWWWWWWWWWWWWWWWWKIIIHQQQQQQQWWUUYYYYYYYYYYXXXEXOOOOOOOONNNNNNNNNANAAAAAAAAAA
|
||||||
|
FFUFFFBBBBWWWWUUUWWWWWWWWPPQQQPPPPPPPPYZZZZZZZZZYYYFREEEEEFFWWWWWWWWWWWWWWWWWWWWKIHIHQQQQQWWWWYYYYYYYYYYYYXXXXXOOOOOOONNNNNNNNNNAAAAAAAAAAAA
|
||||||
|
FFFOFFFBBWWWWUUUWWWWWWWKKQPQQQPPPPPPPPYYZZZZZZZZZYFFEEEEEFFFFWWWWWWWWWWWWWWWWWWWKIHHHQQQQQWWWWWWWYYYYYYYYYYYYYOOOOOOOONNNNNNNNNNNAAAAAAAAAAA
|
||||||
|
FFOOFFBBBWWWWWWWWWWWWKKKKQQQQQPPPPPPPPPYYZZZZZZZZZFFEEEEEFFFFWWWWWWWWWWWWWWWWWWWKHHHHQHHHWWWWWWWWWWWYYYYYYYYYIOOOOOOOOOONNNNNNNNNEAIIAAAAAAA
|
||||||
|
FFFFFFFBFFFWWWWWWWWWWKKKKQKQPQPPPPPPPPPPPZZZZZZWWWFFFFFFFOFFFWWWWWWWWWWMKKKKKKKKKHHHHHHHWWWWWWWWWWWWYYYYYYYIIIIOOOOOOONNNNNNNNNNEEEEEIAAAAAA
|
||||||
|
XFFFFFFFFFFWWWWWWWWWWWKKKKKQPPPPSSPPFPPZZZZZZZZWWWFFFFFFFFFFFWWWWWWWWWWKKKKKKKKKJJJHHHHHHWWWWWWWWRYYYYYYYYYIIIIIOOOOOONNNNNNNNNEEEEEEAAAAAAA
|
||||||
|
XFFFFFFFFFFFFWWWWWWWWKKKKKKKSPPSSSSSSSPPZZZZZWWWWWFFFFFFFFFFFWWWWWWWWWWKKKKKKKKKJJTTYHHHHHWWWWWWWWJYYYYYYYIIIIIIOOOOONNNNNNNNNNEEEEEENAAAAAA
|
||||||
|
FFFFFFFFFFFWWWWWWWWKKKKKKKKPSSSSSSSSSSPZZZZZZZZWWWWFFFFFFFFWWWWWWWWWMMKKKKKKKKKKJJJTYHHHHWWWWWWWWWYYYYYYYYIIIIIIOOOOOONNNNNNNNNEEREEEEAAAAAB
|
||||||
|
FFFFFFFFFRRRRRRRWKKKKKKKKKPPSSSSSSSSSZZZZZZZZZZZWWWFFFFFFFFWWWWWWWFFJJKKKKKKKKKKJJJJYYYYHWWWWWWWWWWWYYYYYYYYIIIIOOOOOOONVVNNNEEEEEEEEEAATABB
|
||||||
|
FFFFFFFFFFRRYRRRKKKKKKKKKKKKDSSSSSSSSZZZZZZZZVWWWVVFFFFFFUFWWWWWWWVFFJKKKJJJJJJJJJJJYYYYYFWWWWWWWWWWYYYYYYYYIIIIOOOOOOOOAVVNNNEEEEEEEEEEEAEB
|
||||||
|
FFFFFFFFFFRRRRRRRVKKKKKKKKKSSSSSSSSXSSZZZZZZZVVVVVVFFFFFFUFWWWWWWWVVVJJJJJJJJJJJJJJFYYYYWWWWWWWWWWYYYYYYYYYIIIIIIOOOBBVOVVVVVEEEEEEEEEEEEEEE
|
||||||
|
FFFFFFFFFFFRRRRRRVRKKKKKKKKKKSSSSSSSSZZZZZZZRRVVVVZZFFVVVFFWWWWWWWVVVJJJJJJJJJJJJJNNNNNWWWWWLWWWWYYYYYYYYIIIIIIIIIOBBVVVVVVVVVEEEEEEEEEEEEEE
|
||||||
|
FFFFFFFPPPRRRRRRRRRRKKKKKKKKKSSSSSSSSSZZZZZZRRVVVVVZZZVVVVVWWWWWWVVVJJJJJJJJJJJJJJJJNNNNWWWWWLLWLLLLLLYIIIIIIIIIIMMBBVVVVVJJJJJEEEEEEEEEEEEE
|
||||||
|
FFFFFFFPPPRRRRRRRRKKKKKKKKKKKKSSSSSSSSHZZZZZRVVVVVVVVVVVVVVVVVVVVVVVVVJJJJJJJJJJJJJJJNNNNNWWWWLLLLLLLLIIIIBIIIIIMMMMBVVVJJJJJJJJEEEEEEEEEQED
|
||||||
|
FFFFFFRPPPRRRRRRRRRKKKKKKKKKKHHSHSHHLLBXZBRRRRRVVVVVVVVVVVVVVVVVUVVVVJJJJJJJJJJJJJJJNNNNNWWWWWLLLLLLLLIIIBBBIIIIMMMMBVVJJJJJJJJJJJEEEEEEEEED
|
||||||
|
FEFFFFRPPPRRRRRRRRRKKKKKKKKAHHLHHHHHBLBBBBRRRRVVVVVVVVUUVUUUUUUUUUBBBBBJJJJJJJJJJNNNNNNNNWWWLLLLLLBLBBBSSBBBBBIIMMMMMVFJJJJJJJJJJJJJEEEEEEEE
|
||||||
|
EEBBBFRPPPRRRRRRRRRRHKKKJKKJJHHHHHHHBBBBBBRRVRRVVVVVVUUUVVUUUUUUUUUEBBBBBBJJBBBNNNNNNNNZNWWWLLLLLLBLBBBBBBBBBIIIMMMMMMEAJJJJJJJJJHJJEEEEEEEE
|
||||||
|
EEBBBBRPPPRRRRRRRRRRHHHHJKKJCHHHHHHVBBBBBBBRVVVVVVVVVUUUUUUUUUUUUUUBBBBBBBBBBBBNNNNNNNZZZWWWWLZLLLBBBBBBBBBBOOIIIIMDDMEEJJJJJJJJJJJJOJQQEQSE
|
||||||
|
EEBLBMMPPPRRRRRRRRRRHHJJJJJJCHHHHHHVBBBBBBBVVVVVVVVVVUUUUUUUUUUUUUUBBBBBBBBBBBBNBBNNNNNZZWWWWWZZZBBBBBBBBBBOOOIIIIDDDMEDJJJJJJJJJJJJJJQQQQQH
|
||||||
|
EEBBBBBPPPRRRRRRRRRRRHHJJJJJJHHHHHVVBBBBBBYYVVVVVVVVVUUUUUUUUUUUUUUBBBBBBBBBBBBBBBNNNZZZZZZZZZZZZBBBBBBBBOOOOOIIIODDDDEDJJJJJJJJJJJJJJQQQQQH
|
||||||
|
EEEBBBBPPPRRRRRRRRPPPJJJJJJJJJHHHHVBBBBBBBVVVVVVVVVVVVUUUUUUUUUUUUBBBBBBBBBBBSBBBZZZZZZZZZZZZZZZZZBBBBBOGOOOOOOOOOODDDDDJJJJJJJJJJJSSQQQQQQQ
|
||||||
|
BBBBBBBBJBRPPRRRRRPPPJPJJJJJJJJKHVVBBGGBGBGGVVVVVVVVVVVUUUUUUUUUUUBBBBBBBBBBBSBXXZZZZZZZZZZZZZZZZBBBBBBOOOOOOOOOOODDDDDDJJJJJJJJJJJQQQQQQQQQ
|
||||||
|
KBBBBBBBBBDPPPRRRPPPPPPPPPPJJJJKHHVBBHGGGGGVVLVVVVVVVVUUUUUUUUUKKUKBBBBBBBBBSSSSSSSZZZZZZZZZZZZZZBBBBOOOOOOOOOOOOODDDDDDDDDDJJJJJJJJQQQQQQQQ
|
||||||
|
KBBBBBBBBBDPDPRRPPPPPPPPPPPJJWJJHWBBBHHGGMGVVVVVVVVVVVVUUUUUUUUKKKKBBBBBBBBSSSSSSSSSZZZZZZZZZZZZBBBBBBOOOOOOOOOOOIOODDDDDDDDDDDDDQQQQQQQQQQQ
|
||||||
|
BBBBBBBBBBDDDPRPPPPPPPPPPPPJPWWWWWWWHHHGMZZZZZZZZVVVVVVHKKKKKKKKKKKUEBBBBBBSSSSSSSSSZZZZZZZZZZZZBBBBBBOOOOOOOOOOOOOODDDVDDDDDDDDDDQQQQQQQQQQ
|
||||||
|
BBBBBBBBBBDDDDDDPPPPPPPPPPPPPWWWWHHHHHHHMZZZZZZZZVVBVVVHCKKKKKKKKUUUUGGBBBSSSSSSSSSSZZZZZZZZZZZZZZOOOBOOOOOOOOOOOOOOVVVVDDDDDDDDDDDDDQQQQQQQ
|
||||||
|
BBBBBBBBBDDDDDDDPPPPPPPPPPPPPWWWHHHHHHHMMZZZZZZZZVVVQQCCCKKKKKKKKUUUUUBBBBYYSSSSSSNZZZZZZZTZZZZZOOOOOOOOOOOOOOOOOOOVVVVZZZZDDDDDDQQDDQQQQQQQ
|
||||||
|
BBBBBBBBBBDDDDDDDPPPPPPPPPPPWWWWHHHHHHHHHZZZZZZZZWWMMQCCCCCKKKWKUUUUUUUBBBBYYSYSSSSSZZZZZZTTTTTTTSOOOOMOXOOOOOOOOOOVVVVVZZZZDDDDDQQDQQQQQQQQ
|
||||||
|
MBBBBBBBBJDDDDDDDDLPPPPPPPPPPPPWHHHHHHHHHZZZZZZZZMMMMCCCCKKKKKKKUUUUUUUYYYYYYYYSSSSSZZZZZTTTTTTTTOOOOOOOXOOOOOOOOOOVVVVVZZZZZZDDQQQQQQQQQQQQ
|
||||||
|
MMJJJJJJJJJJDJJDDDLLLLLPPAQQPQQHHHHHHHHHHZZZZZZZZMMMMCCCCJKKDDDDUIUUUUUYYYYYYYYSSUUZZZZZZTTTTTTTAAOOOOOOOOOOOOOOOOBVVVSSSZZZZDDDDDDQQQQQQQQR
|
||||||
|
MMJJJJJJJJJJJJJJJLLLLLLLPAQQPQQQQQHHHHHHHHGGMMMMMMMMMNCCCCCCDDDDFFUUUUUYFFYYYYYYSZUZZZZZTTXTTJJJJJOOOOOOOOOOOOOOOBBVVVSSSSZZDDDEEDEQQQQQQQQR
|
||||||
|
MMJJJJJJJJJJJJJJJJJJLLLLPAQQQQQQQQHHHHVVVHGGMMMMMMMMMMMCCCCCDDDDDFFFUUFYFFYYYYYZYZZZZZZZZZJJJJJJJOOOOOOODLOOLLROOBBBVVSVVSSSEEEEEEEQQQQRQRRR
|
||||||
|
MMJJJJJJYJJJJJJJJJLLLLLLQAQQQQQQQQHVVHVVVGGGGMMMMMMMMMMMNCCCWDDWDFFFUFFYFFYYYYYZZZZZZZZZZZJJJJJJJOOOOOOOLLLLLLLOBBBVVVVVSSSSEEEEEEEQQQQRRRRR
|
||||||
|
MMMJJJJJJJJJJJJJJLLLLLLLQQQQQQQQVVHVVHVVVGGMMMMMMMMMMMMMMNCSWDDWWFFFFFFFFFFYYYYZZZZZZZZZZZZYYYYJJOOOOOOLLLLLLLLLLVVVVVVYESSSSEEEEEEEFERRRRRR
|
||||||
|
MMJJJJJJJJJJJJJJJLLLLLQQQQQQQQQQVVVVVVVVVVVMMMMMMMMMMMMMMMCSWWWWWFFFFFFFFFFYYYZZZZZZZZZZZJAYYYYJJJOOOOALQLLLLLLLKVVVVVVYEEEEEEEEEEEEEERRRRRR
|
||||||
|
MMGGJJJJSSJJJLJLJLLLLLLQQQQQQQQQQQVVVVVVVVVVMMMMMMMMMMMMMWSSWWWWWFFFFFFFFFFYYYZZZZZZZZZZZJJYYYYJJBOOOOOOSSLLLLLKKVVVVVVEEEEEEEEEEEEEEAERRRRR
|
||||||
|
MMGGJJSSSSSJJLLLLLLLLLLQQQQQQQQQQVVVVVVVVVVVMMMMMMMMMMMMMWWWWWWWWFFFFFFFFFFFYYYZZZZZZZZZZZYYYYYJJJWOOOCCSSLLLELKKKVVVVVEEEEEEEEEEEEEEEERRRRR
|
||||||
|
MMGGJSSLLSLLJLLLLLLLLLLQQQQQQQVVVVVVVVVVVVVVVJJMMMMMMMMWWWWWWWWWWFFFFFFFFFYFYYYYZZZZZZZZZZYYYYYJJJJSSSSCSSSLLEEVVVVVVVVVEEEEEEEEEEEEEEERRRRR
|
||||||
|
MMMMSSSLLLLLJLLBLLLLLQLQQQQQQVVVVVVVVVIVVVVZZJJMMMMMMMWWWWWWWWWWFFFFFFFFFYYYYYYYZZZZZZZZZZYYYYYJJJSSSSSSSSSSEEEVVVVVVVVVEEEEEEEEEEEEEEEERRRR
|
||||||
|
SSSMSLLLLLLLLLBBBLLLLQFFFFFFFFFVVVVVVVIVVVZZJJJJJMMMMMMMWWWWWWWWFFFFFFFFFFFYYYYYZZZZZZZZZZYYYYYJRJSSSSSSSSSSSRRRRRRRRVVVVWEEEEEEEEEEEEERRRRR
|
||||||
|
SSSSSSLLLLLLBBBBBBBBBBFFFFFFFFFVVVVVVVIIIIZZJJJJMMMMMMMMWWWWWWWWFFFFFFFFFFFYYYYYYYFFWZZZZLYYYYYJRRSSSSSSSSSSSRRRRRRRRVVVWWEETEEEEEEEGEEERRRR
|
||||||
|
SSSSSLLLLLLLLBBBBBBBBBFFFFFFFFFVVVVVIVIIIZZZJJJJXXXXWMMMWWWWWWWWAFFFFFFFFFFFVVYYVVFFFFFLLLYYYYYJRRSSSSSSSSSSSRRRRRRRRVVVVEEIEEEEIEEEEERRRRRR
|
||||||
|
SYYSSLLLLLLLBBBBBBBBBBFFFFFFFFFFFFVIIIIISZZJJJJJXXXWWMMMMWWWWWEFFFFFFFFFDFVVVVVVVAFFFFFFFLYYYYYJJSSSSSSSSSSSSRRRRRRRRVVVVIIIEEEIIEEEXERRRRRR
|
||||||
|
SYYYSSSSLLSLBBBBBBBBBBBFFFFFFFFFFFVIIIISSSSSJJJXXXXWWWWWWWWWWXXFFFFFFFFDDDDVVVVVAAFFFFFFFFYYYYJJJSSSSSSSSSSSSRRRRRRRRNNVVVIEEEIIIIRRRRRRRRRR
|
||||||
|
SYSSSSSSSSSSBBBBBBBBBBTFFFFFFFFFFFVIIIIIISSSSXXXXXXWWWWWWWWMWXXFFFFFFFFDDDDVVVVVVAFFFFFFFFYYYYJJJSSSSSSSSSSSSRRRRRRRRNIIIIIIIIIIIIRRRRRRRRRR
|
||||||
|
SYSSSSSSSSSBBBBBBBBBBBTFFFFFFFFFFFIIIIIISSSXXXXXXXXXWWWWWWWMXXXMMFFFFFDDDDDVDVVVVFFFFFFFFYYYYYYJYSSSOOSSSSSSSRRRRRRRRNNIIIIIIIIIIRRRRRRRRRRR
|
||||||
|
SSXXXSSXSSSSSUBBBBBBBTTFFFFFFFFFFFIIPPPPXSSSXXXXIXXXWWWWWMMMMMMMMFFFFDDDDDDDDVVVFFFFFFFFFYFFYYYYYYYOOOSSSSOSURRRRRRRRRRIIIIIIIIIIIRRRRRRRWRW
|
||||||
|
SSSXXXXXSSSSUUBBBBBBBTTTTTFFFFFFFFAPPPPLLLLLLLLLIIWWWWWWMMMMMMMMMMFMMDDDDDDDDDDQQFFFFFFFFFFYYYYYOOOOOOOOOOOUUUGGGGRRRRRNLIIIILIIIIRGWRRRWWWW
|
||||||
|
SSSXXXXXSSSUUUUBBBBBBTTTTTTTBBBBBAAAPPPLLLLLLLLLIIIWWWWWIIIMMMMMMMMMMDDDDDDDDDDQZFFFFFFFFFFYYYYYOOOOOOOOOOOUUGGGGDRRRRRNLLLLLLIIIIGGWWWWWWWW
|
||||||
|
SSSXXXXXSSSUUUUBBBBTTTTTTTTTBBBBBAAFFFFLLLLLLLLLIIIIIIIIIIIMMMMMMMMMMDDDDDDDQQQQQQFFFFFFQFFYYYBBBOOOOOOOOOUUGGGGGDRRRRRNNLLLLLLLIIGGGWWWWGWW
|
||||||
|
SSXXXXXXSSSUUUUUBBBTTTTTTTTTTRRBBBABFFFLLLLLLLLLIIIIIIIIIIIMLMMMMMMMMDDDDDDDQQQQQQFFFFQQQFQYQBBBBOOOOOOOOOOOOGGGGDRRRRROLLLLLLLLLIGGGWWWGGWW
|
||||||
|
XXXXXXXXSSUUUUUUUUUGGTTTTTTTTRRRRBBBFFFLLLLLLLLLIIIIIIIIILLLLLMMMMMMMDDDDQDDDDQQQQFQFFQQQQQQQQBBBOOOOOOOOTTYGGGGOORRRRROOLLLLLLLLGGGGGGGGGGG
|
||||||
|
XXXXXXXXSXUUUUUUUUUGGTTTTTTTTRRRBBBBFFFLLLLLLLLLIIIIIIIIIILLLLMMMMMMMDDVDQQQDQQQQQQQFQQQQQQQQQBBOOOOOPOJJYYYGGGGGORRRRROOLLLLLLLLLGGGGGGGGGG
|
||||||
|
XXXXXXXXXXUUUUUUGGGGGTTTTTTTRRRRRBBBBFFFFFFFFFFFIIIIIIILLLLLVLLLLMLMVVVVVFQQQQQQQQQQQQQQQQQQQQBBOOOOOOOJJJYYYYGYGOOOOOOOOOOLLLLLLIGGGGGGGGGG
|
||||||
|
XXXXXXXXXUUUUUUUUGNNGGTTTTTTTTKRBBBBBBFFFFFFFFFIIIIIIIIIVLLLVVLLLLLLVVVVVFFQQQQQQQQQQQQQQQQBQBBBOOOOOOJJJJYYYYYYGOOOOOOOOOOLLGGGGGGGGGGGGGGG
|
||||||
|
XXXXXXXXXUUUUUUUGGNNGGTTTTTTTTTRBBBBBBFFFFFFFFFIFFIIIRRRVVVVVVVLVVLLVVVVFFFQSQQQQQQQQQQQQQQBBBBBBBOOOJJJJJYYYYYYGGGOOOOOOOLLLLGGGGGGGGGGGGGG
|
||||||
|
XXXXXXXXXXXUUUUUUNNNNTTTTTTTTTTBBBBBBBBRFFFFFFFFFFFIIRRRVAVVVVVLVVVVVVVFFFFFQQQQQQQQQQQNQZQBBBBBBBOOOJJJJJYYYYYYYGOOOOOOOOOLLLGGGGGGGGGGGGGG
|
||||||
|
XXXXXXXXXXXUUUUNNNNNNNTTTTTTTTTTTBRRRRRRFFFFFFFFFRRRRRRRVVVVVZZVVVVVVVVVVFFFFFQQQQQQQQQQQQBBBBBBBBOOOJJJJJYYSYYYYGGOOOOOWOOLLLGGKGGGGGGGGGGG
|
||||||
|
XXXXXXXXXXXXUUUNNNNNNTTTWTTHHHTTHRRRRRRRFFFFFFFFFRRRRRRRVVVVVVZZVVVVVVVVVFFFFFFQQQQQUQQBBBBBBBBBBBORBQQQQQQQYYGGYGGOOOOOWOOLLLLGGGGGGGGGGGGG
|
||||||
|
XXXXXXXXXXXXUUNNNNNNNNTWWTTHHHHHHHRRRRRRRRRRRRRRRRRRRRRRRVVVOVVVVVVVVVVVVVFFFFFFFFFQBBBBBBBBBBBBBBBBBWWQQQQQYGGGGGOOOOOOOOOLLLLGGGGGGGGGGGGG
|
||||||
|
XXXXXXXXXXXUUUUNNNNNNNNNWWTTHHHHHHRRRRRRRRRRRRRRRRRRRRRRRVOOOOVVVVVVVVBBVVFFFFFFFFFFBBBBBBBBBBBBBBBBBWQQQQQQYGGGGGOOOPPPOLLLLLLLLGGGGGGGGGGG
|
||||||
@@ -19,6 +19,7 @@ def taskA (data) -> int:
|
|||||||
return gameScoreA
|
return gameScoreA
|
||||||
|
|
||||||
def taskB (data) -> int:
|
def taskB (data) -> int:
|
||||||
|
st=time.time()
|
||||||
gameScoreB = 0
|
gameScoreB = 0
|
||||||
return gameScoreB
|
return gameScoreB
|
||||||
|
|
||||||
@@ -39,9 +40,9 @@ def main():
|
|||||||
print ('please check file %s on path %s' % (filename, path))
|
print ('please check file %s on path %s' % (filename, path))
|
||||||
quit()
|
quit()
|
||||||
st=time.time()
|
st=time.time()
|
||||||
print ('Day '+aocDay+': Tasks 1: '+ str(task(1,data))+ ' executation time: ' + str(int((time.time()-st)*1000)) + 'ms')
|
print ('Day '+aocDay+': Tasks 1: '+ str(task(1,data)[0])+ ' executation time: ' + str(int((time.time()-st)*1000)) + 'ms')
|
||||||
st=time.time()
|
st=time.time()
|
||||||
print ('Day '+aocDay+': Tasks 2: '+ str(task(2,data))+ ' executation time: ' + str(int((time.time()-st)*1000)) + 'ms')
|
print ('Day '+aocDay+': Tasks 2: '+ str(task(2,data)[0])+ ' executation time: ' + str(int((time.time()-st)*1000)) + 'ms')
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
Reference in New Issue
Block a user