Compare commits

...

4 Commits

Author SHA1 Message Date
4cfd2ea5cb Add solution to problem 6 2025-12-06 11:54:15 -05:00
efcc76f416 Add solution to problem 5 2025-12-06 10:56:26 -05:00
d76a694bb3 Add solution to problem 4 2025-12-06 10:23:09 -05:00
b48372cdb8 Add problem 3 solution 2025-12-05 22:12:09 -05:00
14 changed files with 2029 additions and 2 deletions

37
Problem3_1.py Normal file
View File

@@ -0,0 +1,37 @@
def findBankMax(bank: str):
maxChar = max(bank[0:-1])
maxLoc = bank.find(maxChar)
#If this isn't the last character
if maxLoc != len(bank) - 1 :
secondMaxChar = max(bank[maxLoc + 1:])
return int(maxChar + secondMaxChar)
#If this is the last character
else :
secondMaxChar = max(bank[0:-1])
return int(secondMaxChar + maxChar)
testBanks = [
"987654321111111",
"811111111111119",
"234234234234278",
"818181911112111"
]
def readFile() :
ary = []
with open("files/Problem3.txt", "r") as file :
for line in file :
ary.append(line.replace("\n", ""))
return ary
#inputBanks = testBanks
inputBanks = readFile()
results = []
for bank in inputBanks :
bankMax = findBankMax(bank)
results.append(bankMax)
print(f"Results = {sum(results)}")
#Results = 17092

37
Problem3_2.py Normal file
View File

@@ -0,0 +1,37 @@
def findBankMax(bank: str):
maxChar = max(bank[0:-11])
frontLoc = bank.find(maxChar)
onList = bank[frontLoc]
while len(onList) < 11 :
maxChar = max(bank[frontLoc + 1:len(onList) - 11])
maxLoc = bank[frontLoc + 1:].find(maxChar)
onList += bank[frontLoc + 1 + maxLoc]
frontLoc += maxLoc + 1
onList += max(bank[frontLoc + 1:])
return int(onList)
testBanks = [
"987654321111111",
"811111111111119",
"234234234234278",
"818181911112111"
]
def readFile() :
ary = []
with open("files/Problem3.txt", "r") as file :
for line in file :
ary.append(line.replace("\n", ""))
return ary
#inputBanks = testBanks
inputBanks = readFile()
results = []
for bank in inputBanks :
bankMax = findBankMax(bank)
results.append(bankMax)
print(f"Results = {sum(results)}")
#Results = 170147128753455

71
Problem4_1.py Normal file
View File

@@ -0,0 +1,71 @@
def checkRolls(x: int, y: int) :
rolls = 0
#!Check row above
if y > 0 :
#Check above left
if x > 0 and inputGrid[y - 1][x - 1] == "@" :
rolls += 1
#Check directly above
if inputGrid[y - 1][x] == "@" :
rolls += 1
#Check above right
if x < len(inputGrid[y - 1]) - 1 and inputGrid[y - 1][x + 1] == "@" :
rolls += 1
#!Check same row
#Check left
if x > 0 and inputGrid[y][x - 1] == "@" :
rolls += 1
#Check right
if x < len(inputGrid[y]) - 1 and inputGrid[y][x + 1] == "@":
rolls += 1
#!Check row below
if y < len(inputGrid) - 1 :
#Check below left
if x > 0 and inputGrid[y + 1][x - 1] == "@" :
rolls += 1
#Check directly below
if inputGrid[y + 1][x] == "@" :
rolls += 1
#Check below right
if x < len(inputGrid[y]) - 1 and inputGrid[y + 1][x + 1] == "@" :
rolls += 1
return rolls
testInput = [
"..@@.@@@@.",
"@@@.@.@.@@",
"@@@@@.@.@@",
"@.@@@@..@.",
"@@.@@@@.@@",
".@@@@@@@.@",
".@.@.@.@@@",
"@.@@@.@@@@",
".@@@@@@@@.",
"@.@.@@@.@."
]
def readFile() :
ary = []
with open("files/Problem4.txt", "r") as file :
for line in file :
ary.append(line.replace("\n", ""))
return ary
#inputGrid = testInput
inputGrid = readFile()
accessibleRoles = 0
x = 0
y = 0
for y in range(len(inputGrid)) :
for x in range(len(inputGrid[y])) :
if inputGrid[y][x] == "@" :
rollsAround = checkRolls(x, y)
#print(f"roll at ({x}, {y}) with {rollsAround} rolls around")
if rollsAround < 4 :
accessibleRoles += 1
#print(f"Accessible roll at ({x}, {y}) with {rollsAround} rolls around")
print(f"Total accessible roles = {accessibleRoles}")
#Total accessible roles = 1445

95
Problem4_2.py Normal file
View File

@@ -0,0 +1,95 @@
def checkRolls(x: int, y: int) :
rolls = 0
#!Check row above
if y > 0 :
#Check above left
if x > 0 and inputGrid[y - 1][x - 1] == "@" :
rolls += 1
#Check directly above
if inputGrid[y - 1][x] == "@" :
rolls += 1
#Check above right
if x < len(inputGrid[y - 1]) - 1 and inputGrid[y - 1][x + 1] == "@" :
rolls += 1
#!Check same row
#Check left
if x > 0 and inputGrid[y][x - 1] == "@" :
rolls += 1
#Check right
if x < len(inputGrid[y]) - 1 and inputGrid[y][x + 1] == "@":
rolls += 1
#!Check row below
if y < len(inputGrid) - 1 :
#Check below left
if x > 0 and inputGrid[y + 1][x - 1] == "@" :
rolls += 1
#Check directly below
if inputGrid[y + 1][x] == "@" :
rolls += 1
#Check below right
if x < len(inputGrid[y]) - 1 and inputGrid[y + 1][x + 1] == "@" :
rolls += 1
return rolls
testInput = [
"..@@.@@@@.",
"@@@.@.@.@@",
"@@@@@.@.@@",
"@.@@@@..@.",
"@@.@@@@.@@",
".@@@@@@@.@",
".@.@.@.@@@",
"@.@@@.@@@@",
".@@@@@@@@.",
"@.@.@@@.@."
]
def readFile() :
ary = []
with open("files/Problem4.txt", "r") as file :
for line in file :
ary.append(line.replace("\n", ""))
return ary
def printGrid() :
for line in inputGrid :
print(line)
print("")
def clearGrid() :
for y in range(len(inputGrid)) :
newLine = inputGrid[y]
newLine = newLine.replace("x", ".")
inputGrid[y] = newLine
#inputGrid = testInput
inputGrid = readFile()
removableRoles = 0
x = 0
y = 0
rollLocations = []
#If accessible roles are found, remove them from the grid and begin again until no more are found
while True :
#printGrid()
#clearGrid()
for y in range(len(inputGrid)) :
for x in range(len(inputGrid[y])) :
if inputGrid[y][x] == "@" :
rollsAround = checkRolls(x, y)
#print(f"roll at ({x}, {y}) with {rollsAround} rolls around")
if rollsAround < 4 :
removableRoles += 1
#Save X,Y of accessible rolls
rollLocations.append((x, y))
#print(f"Accessible roll at ({x}, {y}) with {rollsAround} rolls around")
if len(rollLocations) == 0 :
break
for loc in rollLocations :
inputGrid[loc[1]] = inputGrid[loc[1]][:loc[0]] + "x" + inputGrid[loc[1]][loc[0] + 1:]
rollLocations = []
#printGrid()
print(f"Total removable roles = {removableRoles}")
#Too low = 8316

57
Problem5_1.py Normal file
View File

@@ -0,0 +1,57 @@
def isInRange(num: int) -> bool:
for r in ranges :
if num >= r[0] and num <= r[1] :
return True
return False
testInput = [
"3-5",
"10-14",
"16-20",
"12-18",
"",
"1",
"5",
"8",
"11",
"17",
"32"
]
def readFile() :
ary = []
with open("files/Problem5.txt", "r") as file :
for line in file :
ary.append(line.replace("\n", ""))
return ary
def parseInput(input: list[str]):
ranges = []
numbers = []
readingRanges = True
for line in input:
if line == "":
readingRanges = False
continue
if readingRanges:
parts = line.split("-")
ranges.append((int(parts[0]), int(parts[1])))
else:
numbers.append(int(line))
return ranges, numbers
#rawInput = testInput
rawInput = readFile()
ranges, numbers = parseInput(rawInput)
freshCount = 0
spoiledCount = 0
for number in numbers :
if isInRange(number):
freshCount += 1
else:
spoiledCount += 1
print(f"Fresh count: {freshCount}")
#Fresh count: 848

70
Problem5_2.py Normal file
View File

@@ -0,0 +1,70 @@
def reduceRanges() :
sortedRanges = sorted(ranges, key=lambda r: r[0])
reducedRanges = []
currentRange = sortedRanges[0]
for r in sortedRanges[1:] :
if r[0] <= currentRange[1] + 1 :
#Overlapping or contiguous ranges, extend current range if needed
if r[1] > currentRange[1] :
currentRange = (currentRange[0], r[1])
else :
#No overlap, save current range and start a new one
reducedRanges.append(currentRange)
currentRange = r
#Add the last range
reducedRanges.append(currentRange)
return reducedRanges
testInput = [
"3-5",
"10-14",
"16-20",
"12-18",
"",
"1",
"5",
"8",
"11",
"17",
"32"
]
def readFile() :
ary = []
with open("files/Problem5.txt", "r") as file :
for line in file :
ary.append(line.replace("\n", ""))
return ary
def parseInput(input: list[str]):
ranges = []
numbers = []
readingRanges = True
for line in input:
if line == "":
readingRanges = False
continue
if readingRanges:
parts = line.split("-")
ranges.append((int(parts[0]), int(parts[1])))
else:
numbers.append(int(line))
return ranges, numbers
#rawInput = testInput
rawInput = readFile()
ranges, number = parseInput(rawInput)
reducedRanges = reduceRanges()
freshCount = 0
spoiledCount = 0
for r in reducedRanges :
diff = r[1] - r[0] + 1
#print(f"Range {r[0]}-{r[1]} adds {diff} fresh")
freshCount += diff
print(f"Fresh count: {freshCount}")
#Fresh count: 334714395325710

66
Problem6_1.py Normal file
View File

@@ -0,0 +1,66 @@
def printList(numbersList: list[list[int]], symbolsList: list[str]) :
for line in numbersList :
print(f"{line}")
print(f"{symbolsList}")
def parseInput() :
numbers: list[list[int]] = []
for cnt in range(len(rawInput) - 1) :
line = rawInput[cnt]
numbers.append([])
for num in line.split(" ") :
if len(num.replace(" ", "")) == 0 :
continue
numbers[cnt].append(int(num))
symbols: list[str] = []
for sym in rawInput[-1].split(" ") :
if len(sym.replace(" ", "")) == 0:
continue
symbols.append(sym.replace(" ", ""))
return numbers, symbols
def getValue(col: list[int], symbol: str) :
if symbol == "+" :
return sum(col)
else :
return prod(col)
def prod(list: list[int]) :
if len(list) == 0 :
return 0
value = 1
for val in list :
value *= val
return value
testInput = [
"123 328 51 64 ",
" 45 64 387 23 ",
" 6 98 215 314",
"* + * + "
]
def readFile() :
ary = []
with open("files/Problem6.txt", "r") as file :
for line in file :
ary.append(line.replace("\n", ""))
return ary
#rawInput = testInput
rawInput = readFile()
numbers, symbols = parseInput()
#printList(numbers, symbols)
values: list[int] = []
for colNum in range(len(numbers[0])) :
col: list[int] = []
for rowNum in range(len(numbers)) :
col.append(numbers[rowNum][colNum])
value = getValue(col, symbols[colNum])
values.append(value)
print(f"Sum = {sum(values)}")
#Sum = 6891729672676

71
Problem6_2.py Normal file
View File

@@ -0,0 +1,71 @@
def printList(numbersList: list[list[int]], symbolsList: list[str]) :
for line in numbersList :
print(f"{line}")
print(f"{symbolsList}")
def parseInput() :
numbers: list[list[int]] = [[]]
for colNum in range(len(rawInput[0])) :
numStr = ""
for rowNum in range(len(rawInput) - 1) :
char = rawInput[rowNum][colNum]
if char != " " :
numStr += char
if len(numStr) > 0 :
numbers[-1].append(int(numStr))
elif len(numbers[-1]) > 0:
numbers.append([])
if len(numbers[-1]) == 0 :
numbers.pop()
symbols: list[str] = []
for sym in rawInput[-1].split(" ") :
if len(sym.replace(" ", "")) == 0:
continue
symbols.append(sym.replace(" ", ""))
return numbers, symbols
def getValue(col: list[int], symbol: str) :
if symbol == "+" :
value = sum(col)
else :
value = prod(col)
print(f"list = {col}, sym = {symbol}, Value = {value}")
return value
def prod(list: list[int]) :
if len(list) == 0 :
return 0
value = 1
for val in list :
value *= val
return value
testInput = [
"123 328 51 64 ",
" 45 64 387 23 ",
" 6 98 215 314",
"* + * + "
]
def readFile() :
ary = []
with open("files/Problem6.txt", "r") as file :
for line in file :
ary.append(line.replace("\n", ""))
return ary
#rawInput = testInput
rawInput = readFile()
numbers, symbols = parseInput()
#printList(numbers, symbols)
values: list[int] = []
for colNum in range(len(numbers)) :
value = getValue(numbers[colNum], symbols[colNum])
values.append(value)
print(f"Sum = {sum(values)}")
#Sum = 9770311947567

View File

@@ -4729,4 +4729,4 @@ L22
R42
L14
L41
L5
L5

View File

@@ -1 +1 @@
6161588270-6161664791,128091420-128157776,306-494,510-1079,10977-20613,64552-123011,33-46,28076-52796,371150-418737,691122-766624,115-221,7426210-7504719,819350-954677,7713444-7877541,63622006-63661895,1370-1981,538116-596342,5371-8580,8850407-8965070,156363-325896,47-86,452615-473272,2012-4265,73181182-73335464,1102265-1119187,3343315615-3343342551,8388258268-8388317065,632952-689504,3-22,988344-1007943
6161588270-6161664791,128091420-128157776,306-494,510-1079,10977-20613,64552-123011,33-46,28076-52796,371150-418737,691122-766624,115-221,7426210-7504719,819350-954677,7713444-7877541,63622006-63661895,1370-1981,538116-596342,5371-8580,8850407-8965070,156363-325896,47-86,452615-473272,2012-4265,73181182-73335464,1102265-1119187,3343315615-3343342551,8388258268-8388317065,632952-689504,3-22,988344-1007943

199
files/Problem3.txt Normal file
View File

@@ -0,0 +1,199 @@
2235324222232244322422312234251333343425243363443152244111122632336242225745433452452451332445546443
4342633549426242625533823432244459548433412443246235533216334436553544934221624474453562462242374424
8434422643334243334243543423324744383442433444345133334323443723387546342444334386334543315426294343
3314333333333253227333289433334173324336435282333332374344333346362333436223333531247332233332431333
2432233222232224244344214455331424832252285224272831524326258455142222732648222482237235275222221622
6456555534646565564173459654354446546674345456432576443336544564465623793536365563494844343586266956
4922331489448743346893584377735442834632443434373231124434247962234578473993747531534353225262874382
4329634636558644535534455549345256353469443795539452657625226416756735576575463654843527584644953254
2454396282342313233436423353433434546123342334253853234273545734632444263222242142542533335242531345
4635522634347741234563672633543582877478744697226363535745728883684345552215423665654453566356374355
2224223422282212222122522222221222223222224422214224332223272212322422211242222251213213533222418262
3333323433222542122533332343333416333236333137213354323639622333222322323353633143223233386462553523
4464345474367222662273337653635454976376733275452394774336256334698437588364442363336256726342366843
1222331523332222323221222212323322212432332123113224332112226241322122233222221222121233222323322226
1144235573732262335565652436461426436275664241144242414324425444422128642454423642624133252328534342
1524344342292446366422332163232524143645435264413335635425264332564221331257424467433633431536313333
6522282332222324724233223129622584622214234561222231422239243441433122222452122432232132223952622232
4155352555244325535343342355654243343155236334354554243485257534253338436555484543535584532355453534
6468655452675256353555445144743665645455543555644546754456447542457465444555555154564425555841855936
5222222221622121123264422214222252212213512212822212772221226222262272222622222742417215282243632241
5434223163254553454522553225547245512224333544425332549152425254451236456645423241323554544456344256
5424526293254361243635554415382323322225524343233622554332533455434433517232355631244233433432432528
9321283728428452622327222344422172212235228213222223255626526312275215522352294117275122222222822241
2298345455532222354144482748685223534841432853256544231754233422253376575254556214433252512786148479
2122424412272742122222213122282243125211272226462222411231221252623221242221214261225722411452243222
5427434212244142253243242124231221243224222222422324222143223242124123112124433231212242423264262123
4454545664435434354543554374342177456567473643244355455344466354536785443248645467344424554457666475
2322532242222322244221422243112132232323223142431222332422232122212343452232321434225124243222222322
2622164222137423255122752492222422661893325225822224443223222823282223225272452222282422222244332225
6354556555622355255524555375554567565654555543444564437575555375553452544564535445345525555533475554
3221342522312282432224432443242223132122241223223121323343133414421323132214322222443262733312322232
3224632342835254223232221243242332233232314323433156163393433112242256232276356423322232221423342323
3222332512121224222222223221212322222122221222222322223222323122329322252213422223253122222253114232
4222234233323423433333153233232336222453343547223172433222325534134432434213234222313144534443332335
3221222123132222112152221122312224433223311231222122131322222222223322222224222222231213321222212221
7326246135345245521424815232325722372711252462712232438342291624862323243242265182332123442233739437
2433733355513566223342253543213465528552533226334364352333443355213433253157534664352433564322344123
7756675354666543363676593566536546956757565561673943631664446365744655535285357653653525674462274967
4323333334233333534333323334343333342233333433333243333432333334343323334332332336344335433522432433
3333332543434532342252354343243423322441332541442534643333423124326134423661635334224124233433423174
5235323335232417222541642263122622223822242263255324463356321141524121515424427193745222453222141334
5886868774555746344643885473376676884344675734948355455843433537685787785745645786674574548985575575
3547866352236644664573227563164454434563474557214356536355366554436444344465743441774145553622545244
2454542445455454335434451454454434434474452533324232524334341443363345334445444333733546444434534343
12321311141236233322411322222242252242222322632113242312133153722225243221422334121217351726231222259267262423528474362245832533348735374544892892233421337236372142334223347313276322562331634332122245
2223175344331222122123222233314252237251132723333321213232122532223222624333233312323452332222123222
2313333333355313653336333333333332633333353253333336633333433234533823365342433553333233314344453153
5323433341124332233332513233244283823243445365333343562232342421323322443533255323422433243333441213
4525333422333222464324322731134244133112262362226244312425212143324224123334221393224333221248233213
7543744772447787783677676778677928435645714765755486767764556624553564714656687537567755747764638674
2363513321125441315322124323334423212227323613125424432242424252344234422122322232272123122222224142
2433513143732523833433251632623433453233348414253337543422233332389863834322243443533343343334333642
3323232223343324263335332467366733331323232373322232764343323323327433276326263333243343332331333124
2221322221232233122232123241242222342222252222435242242235122222222212221234126622222213214112322332
5536354554532533744275244143353333343253443444523343432646224933253565432536554363555645524534444536
2422212112242637521222122322122232273272222221122322222222221212322232222231222223223211211223122222
2222422322332345343223324223424232343432223234431232332333641334432433232423442342433351223342423222
2247532227235434222242212232415333444344424544522422142523224424524314424432343332443424412342122424
4495423343134452554163238453543152226335335553251337422195521742257135235734235935152333543434533974
2222222221232222233321522231313213222122222232143212232323222232323123122121223232323321221221212233
2433131322322136132325123312222123535312232322121252233214355225323225325567115133332223222232532513
6648343426636674545466234347476676446534463263723454424843573354375563255343674256458722563524649566
2281323233549441673264334423352265724433232443462436234482228223382337144646537332332774633432222535
4221422232832221122222222222212211222231422122232221122442432122232122222235221232212112322212224312
6122122432223246224421243724227262244522225225527332232343222122322612123224241252242213442821732312
4542535343233343543352252333733653243422323323336733274455414363434474232432334333338333433373335953
2212232228124222242222311222432228222182442221131222222232512222212222232322122321213722142131722222
5485269856369364744625587696844859753855866824665868852663763638646166844169858473676295672166634584
5555564454655565455764564539653655535468665556646655435564556546755555755465666659656563937856465517
4522122123153322322322233226213212322324222247327212124125222822221222222272221222222222217412162221
1222221112211322132212222223221222422322312232222222223223123123222222222121222212223222323223222222
2233242121223121432524443142133422323232133215212342342933211323424132124231252224322233342432211244
5333333131332333333242245322334414354233122132221234333341322334223235443234232222413334133345433243
2132221453216322222152624232256227524322224355353322223432322132175224932664217225425632223222242243
3232213335324743333353335343254345135373334452213325324554333333323222355336332313233125432553353362
1232422222223222421122212123222232332212222312213122323222232221323222222322122433122432221221322223
3234334335233363333132333333233324333323335332314423222223341334328343214371232343323333334531343323
2322222222122322621321121242231122222122212122222222222211223222624122221222122122312122212135223322
4854723266855228321661642462484112234275424515255353443814315282216236251423522237547317242231288321
3366737366573633437447337543455753734345833464369237273644354443494443464735434534664746433343544446
3622422232313342432434333437534132262444112312231222233523242234233223432363532141723222432262322342
2238644233222253453521172222222212222222845226442223225122842535321151224622222222212526152522231633
3434227323442221482272722224864332533622244122411727544624334414122755624122336414672452761364564231
3235336354522334325545447733533362368545363643344435355623436335642634553423375233235533525335535355
2122322231232321222224231322522222272232262232222275325166252242222332262224261322225122612212212225
6431766427244447244444482435434325543313463449245454432874552543553444433235137433577322453253343225
4233312412221224424421232221332223422632222132423311514222212322213322222513613432423222433233134321
4333236242442222161243225636324232222443221221424221412222262224232214222342314224222224422324222642
9425731462535333637343153525232843823112558577389452666143422343432323342223261362531324364422224464
4443545335253335222422324353392453542133343323334344223157436233424653434241334234342434325553633142
2112222221224332242222231223232222222231222324212432222313221141222224242222222222332222122122222232
4424448253346263442196232222338536343325363235232557221334531732464492533223332333336223239326142324
8273382745437262112247321123335424321325418812532342233762371571223344338246259642223244332577137353
3643568577345257496756756647525657264356953642665544665536243455576758556265855656455638556557447456
1146336123332555645154645654113124462456216222244452524344544156456362131466166412265552465645212789
4423323253336333325332322323313332445332433333313335333423333632243333433633323333333323333333443134
2232134332422232423542222143312222122222222353445552242222223223525215531343432223341441221123512221
3388563352665326335685838248265472864333358125317224448577465733132743353843316835665356176322388136
4343126222424222332332142623221443421524232214344222122127242453422215443442122223433432134242511245
4232232741294227325232144222245224222453331332253552442322534342142233236432341432352242322722222232
2333333433334213433532343333633323752224232523233623343133342333361353222763352353427443223233325222
7622742384556724442694331499682333348332669372723424641787543253287429353635123812942325494425839212
3443431633463243334354333433323321334234733344333333343445321333323243253224224443443383423231237361
3322233123332423333224433325432322723344542432332223313222253262223323122342332323242214533355224211
5536245414643455463451243331555353532554453245443432455345394352454353455595543534364352633534455334
1337383323677353333328543446384362752123322237357487973446233239316472321236634427322223357512739785
4245442543154463555532446444545444324444338453344555556634442844574444624544544475554344344575445445
5227622228234266632265122722221242224652652322872437722222828145374243141871277224277276227622772122
2445943238324523263556566333143491837242357241383752458436144244234431645366335332333322529874941472
6542365637356542343523933333632585824545416284422325632355835215753387354465654353684647442635352646
3567535555645454555555455565546675844544446535558433555455644556265546564553457545344646565544653555
2332222222313444212222122222212313222213715132331222322433255332233222533222232352182231223442332122
6242124233233222232131237332323326323323312334224832632332214323223232333322224231231331223333332132
4473222193444229636394274424547559743225364543465343657754664282675734446284295222251874532536732413
1622212326441562522272294367261612532425124251672424643425128334344652342222955798276224743651883432
1374362333744223664454634866483344447343432633576333346446333146464528664536334372264254653227654645
1353333335532221323213332323433323323532424113212262313223312221223363433334324433224624323332232133
2252123372322223322232112223432317232122325223212233423233225222333242343433335232333211321224433242
5233342233222226246652432233246332633215515611348646321252524221323552733213121126332465263322222444
3434442332153513353355444524532134344445352555244132443542243443242434345453544334663223344433436155
4624444433424434337447343443445444434442444432435454442224344542334482442514353444442242446244225643
5622337382723222412242238223933626255262515662526534472532552294842282213225525422411232342122912162
2792772122185564465655562269264545557358525657762127234667785274447842613355354527646138745738359454
3246465343246123476722432534224243441353352634423334432444442644223453641633344463456335434444343354
4443233423224543333233333434544442343463233462444374241224433224326221242324321444242473422344434342
5423137443343444411335233742733833373344544374622435133453353333333342336332411343335255434343543111
4563632453226354453425553264325352346626354553264455545453284274744245255444525343435453763425432446
2233245222335422343322212442152332323322953331233312344232321423332322111221212232122431333222262242
5562945766545795582764287247375738646786596434467544855546632566873675287544754451579464523496455865
5224262222123223132213192123212217262222311221224211232232131222223222222232212252423222612221321122
5144422522153311244522222222221324522224522332252523435274252122758244222245222421252322233325162335
1424212487752147436667259652374126573126217453457523224213227566322242222373234422626252157711724692
2453423224552435423112223453332242243525221242324422221522412322426233472333213824242132233242314524
4223433321344422321424342224524212223325242423243243124233242422432222225225143512232225332342243322
3344144322124124441111231222211341313141112132234144341421443243111424334124413112412432113341156789
3423733214438543343234153433482322333217252333324224435444324423332244233433242333134333241222222223
4253243123253153326232822254244222331452632338222222122442222123219543224333832235111133331542232322
2222323221342322152225421332342625222222524243223435232722253225352322532322527172221245221452222222
2222238322211222122232332224411243222621522221112221132312522512212223422223222122222222312242422312
2254161436222322122222425521212262272251452423261221614322211373644122542524212551242442525222724161
2252224352242364313325242232222242422131412146343242341132533342212224424221341442442314234232242312
2539422252222352725272376321463262533245722224452315223313347473135234143342224222543343242533233436
4266311282672157315161786415787446166768175727684645385258652611658825512185533435733352237752211459
3382422412323362332533332233333433323433233233223322324252133453314431334332436132323322222241252323
2212422521212222111222142153112622212222223254222132222222242212122222252222325222122223122222232242
2221232364223124333225322322233322222322342213422322213212322333322434223512112322243231225323522434
3732352549634766264297143323142389237291252259781845622492659412246463147653449541262628265764234623
6554245554545453445445455954573458554345511344555443555444465255312455545555535544444434433333355394
3513233822424124131312922122432362422443333522324257432153531243423274223233431222252332452542312472
2535435265127353622262465444756254353338357546326631366433264475453353342474344864652365645463535534
2222211212112232322322223222123423232122121122341322227231222222211221242122312122223221221322222222
6555553573344343355444645555455246555545426635555364435465693655333542555455353563645664563455555538
3336723439433762342243436534344473653364441424424224434443333444453443346344444339414354343544443444
1322242323234322122215112223224222122323221221211431321222114221332452422224213212321232332112225243
2558256544524445335535543454343432434455433564534453452553445552335535335143243353454464444355575545
3356652564327455364353263324336344272412622553446354225557452323244233232525563625665455224224232335
6273333233322222322763433233239621452263335132233252322332233323345223333255132222533463245242332333
3321314222334222233333433322333333233232332343222333332311433432322322322333323233323313332223232443
4321323324142522521243122328313152318236133123252263252324337143532263822723332233222431323338235212
2421143323742373422474351343344414644632221352224112446231242422447322222233313325522224432434453324
2222226223221222231232223322322225131111322332243232322322325152323322332134122432522514142223223213
3336311124323433333333633441322122333232382326762333343136343121429332313233645333424333322263233332
4122223425131211313532221211432344251543123544533321522354422524542152223414144352234434322344226789
3753374431324644254253363333368232333322333343353264622233324517434354224213313363352531333252231343
5447424435544446345633387344444344454444749634754443444559446358453336844244864383444444584354432668
6322235363222463221216574322226373252452613323151424813243563523222137232235224652255522335355342226
2233252525316222242232222522223222722232432211222232333224322223653532322232612123112355222228123322
2226243423352324641332242443434224234422224423214247212412343444215334233423234134282212333322414624
5453265556564498465453555553654565445515554454655545653545355539654555555956555554225454354444555454
4433253234212342232434426224442336432533224442122341228444214222413415232372231232264333333424432334
2323133232333221212222334323221234512344223323444332123332233272323332133243332213212333223321532263
9349519328233523239438423843613896993215448258317133676388457727546377598132829434333513373533772423
4666645656676966776775567597577964575666766658456577767676736646653665553545675763566785696465684676
3333744343334355543298887212444294634472533533392532744343439433462444452344633153433463464664424367
7651211116242563411746522426715414643134265413742514344277775633277527652747351435432146663611323589
8337354444445333444444433345434424433433543342354754435434335434253224533422163434333327343344334653
3322553321233233345533113137333335332353333354234545134333334253743542539333233852332332533334363333
4322331141263364332322422832413334322422412122223222224412442143115226221233242421315528425623232331
6345341544334342374172244444544452324334644436442245564533244344464446455233545434464442142444645443
6564593454533545336695968366692269894591267363955467455458344474374622652552676273977443855874883692
2222212222211222222112212212422122222121212122311222421222112212133222221122322212212422212221221212
3233152631337353223322342261437613334633132322333133221433244346324323325334333232463334233262722343
6626333373332133233334562512331344335364331251333233424323243633373635334324255223243443334324333333
2333841322332225352522123742223272323613232333542322222113332233222323232313722233339225221234332223
4557533355362533443313555257414234557533343224255435533445325432352644233634333734735138443433548225
2223322332213632234312322324522755623325212234222213343222212223321313222232332223142222232222163132
2122222322251222312122232222232222723222222321252323242233222342222122212217212222332222211212342233
2615245472552234243474572652243722753243233635223225342223222721642135221132214425222474252523222335
4345443532441442344443544545333433426444243434733243432734345445254424333736463354633542422444444323
2322224232123433233333242325433133133322743463233433243232173533322434313433333342343722333244323334
4422145234442334242455145125543424551223943225232242494422254314553645442334426343252214413943254425
4465532384353243537252398442534145213673443322242656552543935464556315467556543186554424322356523243
1222232233374372323232323323242343362123722422312632223332213312322247343423223323322241341242121313
2211135222282222212222221222222211222642422122222214142122222432432212222211352222122622441222525121
4144272233134434423296444643224431442442323443441442113224242324514374444664743713233133443322322233
3435364346335235433434536431464642533325336432334433324343343348345334335513343353573432462435433445
1322332232123333231122235282322332132233243232231243253522221182232623322312232223332213122212222333
1332242223122322223432422223223222231321422232323322315323254332421213323312211322342222121233222222
2122222222222321221222211222242314232222112262321222232226222422222212222222222222222221222242222212

136
files/Problem4.txt Normal file
View File

@@ -0,0 +1,136 @@
@@@@..@@@.@.@.@@@@...@@@.@.@@@@.@@@@@@.@@..@@@@@...@@@@@.@@.@...@@..@.@@@@@@@@@@.@@@...@@@@@@@@@@.@@@@@@@.@@.@@@.@@@@@@.@..@@@.@@@@@@@@@
.@.@@@@@@@@@@@..@@.@.@@@@.@.@.@@.@.@@@..@@@..@....@@@@@@.@@..@@@@@@...@@@...@@@..@@.@@@.@@@@.@@@@...@@.@@.@@....@@@@@@.@@.@@@.@@@.@.@@@.
@@@@@@@@..@.@..@...@@@@@.@.....@.@@@@@.@@@@@@@@@@@.@.@@@@@....@.@.@.@.@..@@@@@.@..@@.@.@@@.@@@.@.@@.@@.@@@..@....@@@@@@@@@@..@@@...@@@@@
@.@@.@@@@@.@@@..@.....@@.@@..@@..@.@@.@@@@@@@.@@@.@..@@@.@.@@@@.@@..@@@@@@@@.@@@@@@@@@@@@@..@.@@.@.@@@@.@@@@@@.@@@@@.@.@@@@@@@@...@.....
...@.@...@.@@@....@@@@.@.@@@@@@@.@.@.@.@@.@@...@@@@@@...@....@@...@.@@..@@@@@@@@.@@@@.@.@@.@@.@.........@.......@@@@.@@.@.@@.@@@.@@@@...
@@@@..@@.@..@@@..@@..@.@@......@@@@@@@@.@@.@..@@@@@..@.@@@.@@@.@@@@.@@.@.@@@.@@.@.@..@@@@@.@.@@..@.@.@@@@@@.@@.@@@.@@@@@@@@@@...........
..@@@....@.@.@@@@@@.@@@@@...@.@.@@@.....@@@@.@@@@@@@@@.@@@@@.@@@.@.@@@@@..@.@@..@@.@..@@.@@@@..@.@@.@.@@@.@@@..@@.@.@@@..@..@....@.@@@.@
...@..@@@@@..@@@@.@@.@..@.@@.@..@@@.@.@.@.@..@@@.@.@@@@@@.@@@@.@@@.@@.@@@@@@@@@@@@@.@.@@@..@@@.@...@.@....@@@@.@@@@@@@@@.@.@@@@...@.@@@@
.@@..@.@@...@.@.@..@@@.@@.@@@@.@.@.@@..@..@@...@.@@@..@.@@..@@@.@@..@@@..@@@@@.@@.@@.@.@@.@.@@@..@@@@@@@@@@@@@@.@@.@..@.@.@@@.@@@..@@.@.
@@@..@@@@@.@@.@...@@@@.@.@@.@@@.@.@@@@@.@.@@.@@@@@@@.@@@@@@@..@@@@.@...@@@@@@.@@@@@@@.@@@@@@@@@@.@@..@@.@@.....@@@@@@@.@@@..@@..@@.@@@@@
.@@@@.@@.@.@@@@@..@.@@@.@@@@..@@..@@@..@.@@@@@.@@@@@@.@@@..@@@..@.@..@@.@@@.@@@.@@.@@.@.@..@@.@@@@...@@@@@@@.@@@@..@.@.@...@@@...@..@@.@
.@.@..@@..@@@@@@...@.@@@@.@.@.@@@.@@....@@@@.@@@.@@@@@.@.@@@@@..@@@.@@.@@.@@@..@.@@@....@@@@.@@.@@@@@.@@@@@@@@@@.@@@.@.@@.@@@@..@@@@@@@@
@.@.@@.@....@...@@@...@@@@@@@@@..@@.@@.@.@@@@@@@@@@.@.@.@@..@@.@@@@.@.@@@..@.@@@@@.@@@@@@.@@@...@@.@@@@@@@@....@@..@@@@@@@.@@@@.@@@@....
@@.@..@@.@@@@..@@@@..@.@@..@@.@@@...@.@.@@@.@@@@@.@.@.@.@@.@.@@@@.@@@@@@@@..@@..@@...@@.@.@@@.@@@@.@@..@.@@.@@.@@@..@@@@@@@@@@@@..@@.@@.
@@@@@@.@.@.@.@@.@.@@.@@@@..@@.@@@.@@@.@@.@@@@.@.@@@@@@.@@.@@@..@@@.@@@@@@@@@@@.@..@.@@.@@.@@@....@@.@@@.@.@.@@@@@.@.@..@..@@@.@.@@.@@.@@
.@@..@@@@@@.@@.@.@@....@@...@.@..@.@@@@@@@@@.@@@.@@@@@@@@@..@@@@@@@@@@@@@.@@.@....@@@@.@@@@@@.@@.@.@.@.@@@.@.@@@@@@.@@.@@@.@@@.@@@@@..@@
.@.@.@@@..@@...@.@@..@@.@..@@@@@..@@@....@@@.@@@@@@.@@@.@..@...@.@@.@@@@@.@@@@@@@@@@@@@.@@.@@@..@@@@@@..@@@@..@.@..@..@.@@@@.@.@@@@@@@@@
@@@.@@..@@@@@.@@@@@..@@@.@@@.@@.@@..@..@@@@@@@@.@..@@..@.@.@@@@@@@.@.@..@.@.@@@@.@@.@.@@@.@@@@@@.@@@@..@@....@..@@@.@@.@.@@.@@.@@@@@@@.@
@.@@@@@@.@@@.@@@.@.....@..@@@.@@.@@...@....@@@.@@.@.@@.@@..@.@@.@@...@@..@@.@.@@..@..@@@@...@..@@@@@.@@..@...@.@.@@@..@@@@@@@@@@@.@..@.@
@..@@@@.@@@@.@..@@@..@.@@@@.@@..@..@@@@@.@@@@.@@......@@.@@@@@@@@.@@@.@@.@.@@..@@@...@...@..@@.@.@@.@@.@..@.@@@@@..@@@.@.@@@.@@@@@@@@@@@
@@.@.@@.@@.@.@.@@.@...@@@@......@..@.@@.@.@@.@..@@@.@@@.@..@@.@@@.@.@.@@..@@@...@@@@@@.@.@.@.@@@.@@.@..@@....@@@@@.@@@@.@@@@@.@@@@@@@@@@
@@..@@@@@@@@..@@@...@.@@.@@@..@@@..@@@@.@@@.@.@.@@.@@@@@@@.@@@.@@.@@@@....@@.@@@.@@@..@.@@@@@@.@@@@@..@@@@@@@.@..@@@@@@.@@.@@..@.@...@@.
.@....@..@@@@.@.@.@@.@@.@@@@.@.@@@@.@@@@@@@@@@@@..@.@@...@@@@@....@...@@@@@@.@@..@.@..@@.@@.@.@.@@@.@@@.@@..@@@.@@@@@.@@@@.@.@.@..@@@@@.
@@@.@..@..@...@@@.@..@.@....@@@@@.@@..@@.@.@.@..@.@@.@@@..@@@.@@@@@@@@@@.@@@@@@..@@@@....@.@@@@@@@@@@@@@..@@@@.@@@@@@@.@@@@@@.@@@@@@@@.@
@@@.@@@@@.@@@@@..@@@..@.@.@.@@@.@.@@@@@@..@@.@@@@@.@@@..@@.@.@@@.@@@..@@@..@@@.@@@..@@@..@@.@@@.@@.@.@@@@..@.@@..@@.@@@@..@@.@@@@@..@..@
..@.@.@@.@@.@.@@..@@@..@@@@@.@@@.@@@@@.....@.@@@..@.@@@@@@..@@@@@...@@@..@.@.@@@@@@..@..@@.@@@@.@..@.@@@.@.@@@@@@.@@@@..@@@@@@@@@@@@@@.@
@@@@@..@@@@@.@@..@.@.@.@@.@@@@.@.@@...@@.@..@..@@.@@@@..@@.@@@@@.@@.@@@@@..@@@@@@.@.@.@@@@.@.@@@..@@@@@@..@.@@.@@@..@@@@@@@@@@..@@@@.@..
@@@@.@.@.@@@.@@.@.@@@@@@..@@.@@@@.@@@.@@@@..@@@@@.@@...@.@@.@.@..@@@.@@.@@@..@..@@@.@.@.@.@@..@.@.@@.....@...@@.@@@.@@@@@..@@@@@@.@@@@@.
@@..@@.@@.@.@@.@@@@@@@@..@@..@@@@@@@.@...@@..@@..@@@@.@...@@@@@@@.@.@@@@@@@@@@@.@@..@.@@@.@@@@@@@@@@....@@.@....@.@@@.@@.@..@@@@@@.@@...
@..@..@.@.@@@...@.@@.@@.@@@.@@@@...@..@@@.@@.@@@@.@@.@@.@@@@.@.@@@@@@@@.@@..@@...@.@@@@@@@...@.@@@@@@.@@..@..@@...@@@@....@@@@.@@@@@.@@.
@@@.@@@@@@@@@@@..@.@.@..@@.@@..@..@@@.@..@.@....@@@..@@.@@.@@.@@@@@.@@.@@@@.@@@@.@@@@@@@@@.@@@.@.@@.@.@@.@.@@.@@..@.@@@.@.@.@.@..@@.@@@@
@.@@@@.@@@.@@@@@.@@.@@@...@@@..@@@.@@...@..@....@@@..@@@..@@@.@@@@.@@....@...@@..@@@.@.@@@..@@.@.@....@.@@@@@@@...@@@@@@@@....@@@@@@@.@@
@@@@@.@@@..@.@@.@..@@@@.@@@@.@@@.@@..@@...@.@@.@@@.@@@@@.@.@@@..@@..@@@@@.@....@@@.@.@@@..@....@..@@@@...@@..@@@.@.@@@.@@@@@@@.@...@@@..
.@@.@@....@@@@..@@@.@@@@@.@@@..@@@@.@@...@..@.@@@@@@@@@@@@@@@..@.@@@@@@@.@...@@@.@..@@.@.@@@..@..@@..@@@@@..@@@@..@.@@@@@@..@@@@@@@@.@..
@@.@@.@@@.@@@@.@@@@@..@.@.@.@@@@@@@@....@@@.@@@@@@.@@.@@@@....@@.@@..@@@@..@.@@.@@@@@@@.@@@@@@...@@.@.@@@..@@@@@.@.@..@...@..@.@@@..@.@.
.@@@@@@.@@@@@..@@@@@@.@@@@..@.@@.@@@.@@@@@@.@.@@@.@..@.@@@.@@@@@.@@@@@.@@@@..@@@@@@.@@@@@@@@.@@@.@...@..@@@..@@@...@..@@@.@@@@@@@@@.@@@@
...@@@@.@@@.@.@@@@@@..@...@.@..@@@@@@@@@@@...@.@@.@@@@.@..@@@..@@@@...@@@@@@@@@.@@@@.@@@@@@@.@@@@@@@@@@@@@@@..@@@..@@@.@@.@..@@@@.@@@@.@
@..@@@@.@.@..@@@....@..@@@.@@@@@@@.@.@@..@@.@@@.@@@@.@@@@@@.@.@@.@.@.@@@.@@@@.@@@@.@@@@@@@.@@.@@@@@..@@@@@@.@@@@@.@..@@.@..@@.@..@@.@...
@@.@.@@@..@@@.@@.@.@@@.@..@@@@@@.@.@@@.@@@@@@.@@.@.@@..@.@@@@@@@@@.@..@@@.@@@@@@..@@@@...@..@.@@@.@..@@@..@..@@@@.@@.@.@@@@@.@.@@@@...@@
@@...@@...@.@@..@@@@@@@.@.@@@..@@.@@@.@@@@@@.@@.@@@@@@..@..@@.@@@@@.@@@@@.@@@@@...@@@@.@...@..@@@..@@@@@@@@@@@@@@@.@@.@.@@@@..@@.@@@@@..
@@@@.@@@@@@.@@..@@...@@@@@.@.@....@.@@@@...@..@..@@@@.@@.@@.@.@.@@.@@@.@@.@@@.@@.@.@@@.@...@@@..@.@@@@...@@....@@@@@..@...@@....@@.@@.@@
@@@..@@@@@@@..@.@....@@@.@@@@@.@.@...@@.....@@@..@@@.@.@@..@@..@@.@@..@@@@.@@@@.@@@@@.@@@@@.@..@@.@@@@@@.@.@.@.@@@@.@@@.@.@@..@.@@@@@.@@
.@.@@@@@@@@@@@@@@@@@@.@@@@@@@..@@@...@...@.@@.@..@@@.@.@@@.@@.@@.@@@@@@@@@.@@@@@....@@.@@.@@@@.@@@@..@@@@.@@@@@.@.@.@..@..@@@.....@@@@@@
@@@@@@@@@.@@@.@@@.@.@.@@..@@@@@@@@...@@@@@@...@@..@@.@@@@@...@.@..@@@@.@@@..@.@@..@@@.@..@.@@.@@@@@@@@@..@.@.@@@@@@@@@@@@.@.@.@@.....@@@
@@@@@@..@@..@@@.@.@@@@@@@@...@..@@..@.@@@@.@@@..@...@@@@@@@.@@@@@.@@@.@@@@@@@.@@@.@@@.@@@@@@@.@.@@@@@..@.@@@@@@@.@@@@....@@.@@@@.@@.....
..@@@@@@@.@@@...@..@@@@@@@@.@@..@@@.@@.@@@@@.@@@.@@@.@@@@.@@.@@.@@..@@@@@@..@.@@@..@@@...@...@...@@..@@....@.@@@@@@.@.@@@@@@@.@....@@@@@
@@@@.@@.@.@@@@....@@@@.@.@.@@@@@.@.@@...@.@...@@@@..@.@@@@@@@.@@..@@.@@@@@@@@.@@@@.@.@@.@.@@@@@.@@@@@@..@..@@@..@@@.@@@@.@.@.@@@.@@@..@.
..@.@@.@@@@@@@@@..@@.@@..@@@@..@.@@.@@.@@@.@.@@@..@@@.@.@@@.@@@.@@@..@...@..@@.@@@@@@.@@@@@.@.@.@@@@@@@@@@@@.@@@@@@@.@@.@@@.@@@@.@@@@@@@
@@.@@@@.@@@@..@..@@..@@.@@@@@@.@@@...@@@@@.@@.@@.@.@@@@@.@@@.@@@@@@.@@@@...@@@.@..@.@@..@@@@@.@@@@..@@@@.@@@.@@.@@@@.@..@.@@@@@.@@@@@@@@
@..@..@@@@@@@@@..@@.@@@@@.@@.@.@.@.@@@@.@@.@@.@@@@.@@@....@.@@.@@..@.@@@@@@..@@@@...@.@..@...@@@@.@@@@@@@.@@@@@@@@@@@@@...@@@..@@..@.@@@
@@.@..@@@.@..@.@.@@..@@@.@@@@@@...@@@@@@@.@@@@@..@@.@...@@.@..@@@@.@.@@@@.@.@@@@@..@@@@@@@.@..@.@.@@@@@.@@@@.@@..@.@.@@@.@@@@...@.@@@.@@
@@..@@...@.@@@..@@@.@@@@..@@@..@@.....@..@@@@@@..@@.@@@@@@@@@@@@@@@@@@@.@.@@@@..@@.@@@@.@@@@@@@.@@@@@.@.@@@@@..@@@@@@@.@@@.@...@@@@@@.@@
@...@@..@@@@@.@@.@@@@@@@@@@@@.@@@..@.@.@@@@@@@@.@@@@@.@.@@@@.@@@@@.@@.@@.@@...@.@....@.@@...@@@...@@@..@....@.@@@.@@..@@@@....@..@@@@.@.
@.@@.@@@@@.@@..@.@@@@@@.@.@...@.@..@@@..@.@@@...@@@.@.@....@.@.@..@@@@@@@@@@@@@@.@@@@.@@@@@@.@@.@.@@@@.@@@@.@@@@@@@.@@@..@...@@.@..@.@@@
@.@@@.@.@@@@@.@..@.@@@@@@@.@@@@@.@@@@@.@@@.@@.@@..@@@@@@@@@@@@..@@@@.@@@@@.@@@@.@@@@@.@@@..@@@.@@@@@@@..@..@...@@....@..@.@..@....@@.@@@
..@@@@@@.@..@@@@@@.@@@@@@@@@@....@..@@.@@@@@.@@.@.@@@@.@...@@.@..@.@@@@.@.@@@@@@...@...@@@@@..@.@@.@@@@....@@@.@.@@.@@....@@@..@@@.@@@.@
@@@@..@.@.@@..@@@.@.@.@.@.@@@.@.@.@@@......@@@.@@.@@@@@@@.@@.@..@@@@@..@@@@@@@..@@@@@@@.@@@@.@@@.@@@@@.@.@@...@@@.@@@@@.@@@@.@..@.@@@.@.
@@.@@@@.@@.@@@@@@.@...@@@@.@......@@@.....@.@@.@@@..@@.@@..@@@.@...@@.@.@.@@@@.@@@@@@@@.@@.@@@.@..@@@......@.@@..@@..@@..@@.@.@.@@@@@@@.
@@@@.@..@@@.@@@@.@@@@..@@@...@..@..@@@.@...@@@@@@@.@@@..@.@@..@@@@..@@...@..@..@@.@.@@@@@@@@@.@.@..@@.@@@.@@..@@@@@@@@@.@@@@.@..@@@.@@.@
@@.@@@.@.@@@@@@@@.@@.@@@@@.@@@@@@@@...@...@.@@@@...@@@@@..@@..@@@.@@@@@@@@@.@.@@@.@..@.@@@@@@@@@..@@..@.@..@.@@@.@.@@@....@@@@...@..@...
@..@@@@@@@..@@.@...@@.@@@.@.@@@..@@@@@@.@@@@..@@.@...@..@..@..@.@@@@@@@@@@@@@@@..@@@@@.@.@.@.@@@@@@@@@@@@..@@.@@@..@@@.@@.@@.@@.@.@@@@@.
@.@@@.@@.@@.@@.@@@@@..@.@..@..@@@@@@@@..@@...@@@@@@@@..@@@@@@.@@@.@.@@...@.@@@@@@@@@@@@@.@@...@@.@@@@@@@.....@.@@..@@@@@@...@.@.@..@@@@@
@.@.@..@@@@@..@.@@.@@.@@@@@@@@.@@@@@.@@@.@@...@@..@@...@.@.@.@@@..@.@.@@@@@.@@@@@.@..@@.@.@...@.@@@.@@@@...@@@.@@@.@@@@....@@@@.@.@.@@@@
@..@.@@@..@@@.@.@@@@.@.@@.@@@.......@@@.@@@.@..@@@@@@@@@@.@@.@@@...@@..@@@@@@@@@@.@@@@@@@@@.@.@@.@.@@@@@@@@.@@@@..@@@@@@.@@@@..@@@@@@.@@
@@@.@@..@@.@.@.@@@@@@@@@@.@.@..@.....@.@.@@@.@@@@@@..@@@..@.@@@.@..@..@@..@@....@@@@@.@@@@.@@..@.@@.@@.@@@@.@@@@@@@.@.@@..@@@@@@@.@@.@@@
@...@..@@..@@@@@.@@@.@@@@.@.....@@....@.@@@.@.@.@.@..@@@..@@@@@.@..@.@.@@@@@@...@@@@@.@@@@..@@@..@.@@..@...@.@@.@@..@@@.@@@@.@@@.@..@@.@
@@.@@@.@@.@@..@@@..@@@@@@.@.@@@.@@.@@@@@....@..@@.@@.@@.@.@.@@.@@@@..@@@@.@@@@@@@@@.@@@@@.....@@.@@...@@@.@.@@.@@.@..@..@..@@@@.@@@@@.@@
@@.@@@@.@.@..@@.@@@.@....@@@@.@@..@@@@@@@@..@@@..@@@@.@@@@...@@@@.@@@.@..@@.@@@..@@.@@...@@@..@@@@@.@@@....@.@@@@@..@@@@@@@.@@..@..@@@@.
@@@@.@@@.@.@@.@.@@.@@@@.@.@@@@..@@@...@.@@@@..@@.@....@@@..@@...@@.@@..@.@..@.@@..@..@@@@@@.@.@@@@@@@@@@@.@@@@.@.@@.@.@@@.@@@.@@@.@@.@@@
.@..@@@....@...@.@.@@.@@.@.@@@...@.@@@.@@@..@@@@@@@.@@.@.@..@@...@.@..@@@.@@@@@@@@@.@.@@@@@@..@@@@@.@@@....@.@@@@@@@@@@@@.@@@@@.....@.@@
..@.@.@@@.@@.@@@.@.@@@@@.@@@@..@@@..@@.@@@..@@@@..@@@@@.@@@@@.@..@.@.@@@@@.@@@..@...@@@@..@@..@@@@...@@@..@@@@.@@..@@..@@@@....@@@@.@@.@
@@@.@@@..@@@@@.@@@.....@@@....@@..@@@@@@.@@@@@@.@@@.@@.@.@@@@@@.@.@@@@@@@@@@.@@@@@@@.@.@@@@..@@@@....@@@@@......@@@.@@.@@@@@@@.@@.@@.@@@
@.@@@...@@@.@@@..@@@.@@@...@.@.@..@@@.@.@@.@@@@.@...@@.@@@@.@@@..@.@.@.@@@..@@@.@@@.@@@@@.@.@@@..@@.@@....@@..@@@.@.@@@@..@@@.@.@@....@@
@@.@.@@@@@.@.@.....@@.@...@@.@.@@.@@@....@@..@@@@@..@@...@@.@@...@@@@.@@..@@@@@@@...@...@.@@..@...@@@@@....@@@@@@@@@@.@@@@@@@.@@@@@..@@@
.@@@@@.@@.@@..@@@@@.@@@@@@@@@@@@@@@....@@@.@..@@.@@.@@.@...@..@@.@@@@@@.@@@@.@@@@@@....@@.@@.@@.@@.....@.@@@@..@@@@@@@@@...@@@@@@@@.@@@@
.@@@@@@@@..@@@@.@@.@@@...@@.@@@...@.@..@...@@@@@.@@.@@@..@.@@@@@@@.@.@@@@.@@.@..@...@@.@@@@@..@.@@.@@@.@@...@@@@@..@.....@@..@@.@@@@@..@
@@.@@@@.@...@..@@@@@@@.@@@..@....@@@@@..@...@.@@@@@@@@...@@..@.@@@.@@@@.@.@@@.@@..@@.@@@.@@@.@..@@@.@@@@@@@....@.@@@..@@@@.@@@@@@@@.@@@@
.@@@@@@@@@@@..@@@..@@@.@@@@@.@.@..@@@.@@@@@@.@@@@@.@@@@@@..@@@@@.@@@@@@.@@@.@..@@@@@@.@@..@@@@@.@.@@@@.@@.@@..@.@@@..@@@.@@@@.@@@..@...@
@@@@@@@@@...@.@@@@@@.@.@.@@@@@@@@.@.@@@.@.@.@@@.@@@@..@@.@@@.@.@@..@@.@@..@@.@@@@@@.@@.@.@.@@.@@.@.@@@@@@@.@@@@@@@......@@..@.@.@@@..@..
.@@..@@@..@@@@.@@.@..@.@.@@@.@@@@@@@@@.@@@@..@@@.@@@..@.@@@.@@@....@@@@@@.@@.@.@@@@@@@.@@.@..@@@@@@@.@.@.@..@@.@.@@.@...@...@@@..@@.@@.@
...@@@..@...@@@..@@..@@.@.@@@@@@@@@@.@@@@@@.@@@.@...@@.@..@.@..@@@@.@.@@@...@@@@.@..@@@@@@.@@@..@..@@@@.@@@@@@@@@@@@@.@@.@@..@@@@@...@@@
@@@@@.@..@@@@.@@.@@@..@@..@.@@.@..@@@@@.@@.@@@..@.@@@.@@@@@@@@.@.@..@.@...@.@@@@.@.@...@@.@@.@@@@@@..@.@@..@@@@@@.@...@@@@@@.@@@@..@...@
@@@.@.@@@.@.@..@@...@@@@@@@@@@@.@@@@..@@..@.@.@@...@..@@..@..@@@@@.@@.@@@..@.@@.@@@@@.@...@@.@.@.@..@@.@@..@...@...@@@.@@@..@.@@@..@@.@.
@@@@.@@@.@@...@.@@@@@.@@.@@@@@@@@@..@@@@..@.@@..@.@@@...@..@@@@@@.@@@@..@@@.@@.@..@@@@@.@@@@.@@@@.@@.@@@..@@@@..@@.@@@.@@...@..@@..@@@@.
@.@@@@..@@..@..@@.@..@@.@@.@@..@@@....@@.@.@..@.@@.@@@@@.@@@@@...@@@@.@@@@@.@@@@@.@..@.@@@@@.@...@..@.@@@@@@.@@@.@@...@@..@@@@...@.@.@..
@@..@@..@..@@@@.@@..@.@@@@@@..@..@.@.@@@@.@@@@.@..@@..@@@@@@@@@@@@@@@@@.@.@@@@@@@@.@.@@..@@@@..@@.@@@.@.@@.@@@@.@@@@@@@@.@@@@...@@.@@@.@
@....@......@@@@@@@.@@@.@@@@.@.@@.@.@@@@@@@..@@@@.@..@@....@@@@@@.@.@@.@@@@@@@..@@@@.@@@@.@@.@@@.@@.@..@..@@@@.@.@.@@@...@@@@@.@@@@@@@@@
@@@@.@@@@@@.@.@..@@.@..@@@@@@@@@@@.@.@...@.....@.@@@@@@..@.@@.@..@@@..@@@@@@@@....@@@@@@@@@@..@.@@@@@@.@@@@@.@@@@@@...@@@.@@.@@@...@@@@@
@@.@@.@.@.@.@.@@...@@.@@@@@@@@.@@@@@@@@@@@@..@.@@@@..@..@@@..@@.@@@@.@..@@@@@@@@@@@..@@@..@@@@@.@@.@@@@.@..@.@@@@@.@@.@@.@@@@.@@.@@@@.@.
.@....@.@@.@.@@@.@@@@@@@....@@@.@@@.@@.@.@.@@.@@.@.@.....@@@..@@.@..@@@.@@.@@..@@..@@....@@@@..@.@..@..@@@.@@...@.@@@.@@.@@.@..@@.@@@@@@
.@@.@.@@@@..@...@@@@@@.@@@@.@.@..@@@@.@..@@@@@@@@@@.@@@.@@@.@@.@@.@@.@.@@@..@.@@@@@@@@@@.@..@..@@@@@@..@.@@@@.@.@.@@.@@@@@@@@@.@@@.@@@.@
@@.@@@.@@@@..@@......@..@@@@.@@@@.@.@@@@@.@@.@.@@..@..@@@@@@.@@@.@@@@@..@@@@@.@@@.@@@.@..@@..@....@.@@@..@@@@@@.@.@@@@.@@@.@.@@@@.@..@..
.@@@@...@.@@@@@@@@@@@@@@.@.@.@@....@@@@@.@.@@@...@@@@@@@@.@..@..@@@@@@@@@@.@@@@@.@.@@@@..@@@.@@.@@@@.@@.@@...@..@.@@@@@.@.@@@.@@@.@@..@.
.@..@@@....@.@...@@..@..@@@@.@....@@@@.@@@@@@.@.@.@@.@@@@.@@.@.@@.@@@.@@.@@@.@@@@.@...@@.@@@@@@@@..@@@@@@@.@.@@@@.@@@@@@@@@..@@@.@@.@@@@
@..@@.@@@@@@@.@@@..@@@.@@@@.@@@@@@@@@@...@...@.@@@@@@@@@.....@@@..@....@@@..@@@@@.@..@@@.@..@..@@@..@.@@@.@.@@.@.@@..@@@@@.@.@.@@@@@@@..
@.@.@@@@@@@@@..@.@.@@@..@@@@@@@.@@@@.@@@@.@..@@@@@.@@.@@@@@@@@@.@@@..@@@@.@@.@.@.@@@@@@@@.@@@.@..@@@@@@..@@@.@.@..@@@@@@@@..@..@@@@.@@..
@.@@@@.@@@..@@...@@@......@@@..@.....@..@.@.@@@@@@@@@..@.@@@@@...@@@.@@@.@@@@@@.@@@@.@.@@@...@@.@.@@@@@@.@..@.@..@.@@@@.@@.@@.@@@@.@@@.@
.@....@.@@@@@@@.@@@@@@..@@.@@@..@@@.@@@@@.@...@@.@@@.@.@@@@@@@@@@@@@@.@@@@@@@..@@.@.@.@@@.@@@@@@@.@@@.@.@@@..@@@..@.@@@.@@@.@@.@.@.@@...
@@@@...@.@..@@.@.@@@@@..@..@@.@@...@@@@@@.@@.@@@@@@@.@@.@@@@@@@.@@@@.@@@@@.@@@@@.@@@.@.@@@...@@.@...@@@@@@@.@@..@.@@@.@.@...@@.@@.@..@@@
@@@@@@@@.@@.@@@@@@@.@@.@@..@@@.@@.@...@@@@.....@@.@.@@.@.@@@@.@@...@@@@@..@@@....@...@@.@.@.@.@@.@@.@@@@.@.@@.@.@@@@@@@.@@@@@..@@@.@@@..
@@@@@..@@@@@@@@@@.@@@@.@@.@....@...@@.@.@@..@.@@..@...@..@...@@..@@@@@@@@.@.@@.@.@@@@.@@@@.@@@..@@@@.@@@@.@@@@@@.@@.@@@@@@.@.@@@.@@@@..@
.@@@.@@.@.@@@.@@@..@@@.@@.@@@@.@@.@@@@.@@.@@@@@.@..@@@@@@@@.@@.@@....@@@@@@....@.@@@@@@@@@@.@@@@@@.@.@....@..@@.@.....@..@..@@@@@.@@.@@@
@@@.@@@@@..@.@@.@@@.@.@@@@.@@@...@..@@..@...@@@.@..@.@@.@..@@@@.@@@@@@.@.@@.@.@@@@@.@.@@@@@@.@@@@@@@@.@@.@.@@@@@@@.@@..@@@@.@@@...@@@@@@
.@@@@@@@.@.@@@@.....@.@@@@@..@@@@@@.@@@@@.@@@@@@..@@.@@@.@@@.@@@@@.....@@@.@@@@.@@.@.@@.@@.@......@@@@@.@@.@@.@..@@.@..@@.@@@@.@.@.....@
.@@@@@@.@@@.@@@@@@@....@@..@@@.@.@..@.@@.@.@@..@.@@.@...@@...@.@.@..@.@@@@.@@.@.@.@.@.@....@@..@@.@.@.@.@...@@.@@@@@@.@.@@.@.@@.@@.@@.@@
@@@@@.@@@@@.@.@.@.@@@@.@@.@.@...@@..@@@@@@@@..@@.@@..@.@@@.@@@@@@....@@...@@@@@@@..@..@@@....@@@@@@.@@.@.@@..@@@.@@.@@@@@.....@.@.@@..@.
.@@@@@.@@..@.@..@@@.@@.@@@.@@@@@@@@@..@@@@.@.@..@.@@.@@.@@.@@.@@@@.@@@@...@@.@@.@..@.@@@@..@..@.@@@@.@@..@@.@@..@@..@@@@...@..@@...@@@..
@....@@@..@@..@@.@@@@..@@@@@.@.@@@.@@@@@.@.@.@.@..@@@..@@..@@.@@@.@@@@@.@@..@@......@@.@@.@@@@.@@.@@@.@@..@@@.@@.@@@@@@@@@@.@..@@...@@..
@@@.@.@...@..@.@@@@@@@.@@....@@....@@@..@.@..@.@.@@@@@..@@@.@@@@..@@@@@@@.@@..@@..@@@...@@@@.@@.@@.@.@@..@@@@.@@@.@@@..@@@@.@@@@@@....@.
.@.@@.@@..@@...@@@@@.@.@@..@@@...@.@@@.@@@@.@..@..@@..@.@.@.@@@...@@@@@@@@@.@@@@@@@@@@@@...@@@@@@....@.@.@.@.@@@@.@@@.@@@@@@@.@.@@@@@.@.
@@@@@@.@.@...@@@..@@@@.@@@@@.@..@@@@@@@..@@@@.@@@.@@@@@.@@..@.@.@@@@@@@.@..@@@@.@..@@@@@.@@.@@....@@.@@.@@..@.@...@.@@...@@@...@.@@.@@@@
@.@@@@.@@@@@@.@@.@.@..@@@@..@@...@.@@.@@@..@@@@@.@@@.@@...@@...@.@@.@@@@..@@...@.@@..@.@@.@.@@@@@.@..@.@...@.@@@..@@@..@...@..@@.@.@.@.@
@@@@@.@@@@@@@@..@@@@.@.@.@.@@@@@@@..@@@.@@.@.@.@@@.@@..@@@@@@.@@@@@@@@@..@@@@@@.@@@@.@....@..@.@.@.@@@@.@@@@.@@@@@@..@.@@@@@.@@@@@@@@@@.
@..@..@..@@@@@..@@..@@@@.@@..@@@@@@@@.@..@@@@@@@.@..@@@...@@@..@@.@@@@@@@@....@.@@@@.@@@@.@@..@..@@..@.@@@..@@@@@@@.@@@@@@@@@@.@..@@..@@
@.@@.@.@@..@@@@@...@@.@@@@.@@@@@.@@@@@@@.@@.@@@.@..@@@.@.@....@@@@@@@@@.@.@@..@..@@@..@@@..@@....@@...@@.@@.@@@@....@.@@@.@@.@.@@.@.@@@@
@..@@@@.@@.@.@@@@@.@.@@.@@.@@@.@..@@@.@@@.@@..@@.@.@@..@@.@@..@.@...@.@@@@...@@.@@@.@@@.@@.@.@.@@..@@@.@.@.@@@@....@.@.@..@@.@@@@..@..@@
@@.@.@@@@@.@@@@...@@@@@@@.@@@@@.@@.@@@@@@..@@@@@.@@.@@@@@....@.@@@...@@@@.@..@..@@.@@.@@@@.@@@@.@@.@@@.@@.@@@@@@@.@.@@@@@.@@..@..@.@@@@.
.@.@@.@.@@@@@.@.@@.@@..@.@@..@@@.@@@@.@.@@@.@@.@.@@@@@....@@@@.@@@.@.@..@@...@..@....@@@..@@..@@@.@@..@@@@@@@@@@@@@@....@@@@@@@@.@.@.@@@
.@.@@@@@@@@@@@..@.@@@@@@@@.@.@...@@..@.@@..@@@@@@@@@.@@@@@@@@@..@@@..@..@@@@@@.@@@..@.@@...@@@...@@@@.@@..@@@@@@@@@@@@@@@@.@@@@.@@.@.@@.
.@@@...@@@@@..@.@@@@@@@@@..@.@.@@@@@@@.@@@.@..@@@..@@@@@@..@@@@@.@@@@@..@@@..@@@@@..@.@@@@.@@....@@@@@@@@@@.@.@@@@@.@@@@..@@@@.@@@@@.@@.
....@.@@.@@@...@.@@@..@@@..@@@@.@@@@@.@@@..@@@@..@@@@@.@@@..@@@.@@@@@@@...@@.@@@@@@.@....@.@@..@.@@.@@@.@@..@@.@.@@@@@..@...@@@.@@@.@...
.@@@..@.@@@@.@@@.@.@@@@.@...@@@@@@@@.@.@@@.@@@...@@@@.@@.@.@@@.@.@..@@.@@@@...@@@@.@@@@@@.....@@@..@.@.@@@@..@@@..@@@@.@@@@@.@...@@@..@@
@@....@.@@@@.@.@....@@.@....@@@..@@@@@@..@@@@@..@.@..@@@.@@@@@@@@.@@@.@..@...@@@@..@...@@.@@@.@@@.@.@@.@@@@@@@@.@@@.@.@@@.@.@@.@@@@..@@@
@@@.@@@@.@@.@@@@@@@@.@@@.@@.@...@@.@@@@.@@..@@@@.@.@@@...@.@@.@@@@@.@@@@.@@.@.@@.@@@@@@@@@.@@...@...@.@@@@.@.@@@.@...@..@@@@.@@@.@@.@@@@
@@@@.@..@@@..@@@@.@@@@@.@.@.@....@@@@@.@@@@@@.@@@..@.@..@@@@@@.@@..@.@.@..@@@@@.@@.@@.@.@@@..@@@@@@@.@@@@.@@..@@@@.@@....@.@@@@.@@..@@.@
@@@.@.@..@@@@@@.@.@@@@..@@@@.@@@.@..@@@@@.@..@..........@@.@.@@@@@..@@.@@@@@@@..@.@@..@..@.@@@@@....@@@@@@@...@@@..@@.@@.@...@@.@@..@@..
..@@@@@.@@@.@@.@.@.@@..@.@..@@.@.@.@@@@.@@.@@@.@....@@@@@@@.@.@.@.@...@@.@.@@@@.@@..@@@.....@@@@@@@.@@.@..@@@@@@@@.@.@@.@.@@..@@@.@.@@.@
.@..@@@@.@@@@@@..@.@.@....@..@@.@@..@@@.@@@.@@@@@@..@@@@@@..@...@@.@@...@@@@@.@.@..@..@.@@@@.@@@@.@@@@@@.@@@@@@@@@.@@@@@.@.@@@.@...@.@@.
@@@@.@..@.@@@@.@.@.@..@@@@@@@@@@@@@@..@@@@.@@.@..@@.@@@@.@@@.@@@..@.@@..@@@@@@.@@...@..@..@@@@.@@@@@@@@...@.@@@@@@@@@.@.@@@@@..@@@@@@@.@
@@.@.@@@.@@@@@@@.@.@@@..@.@.@@.@@@@@@@@@@@@..@@@@@@.@.@..@@@@.@.@...@@@.@@@@.@@@@@@.@@@.@@@@@..@@@.@.@.@@@@@..@@.....@@@@@@@.@@@@@@@@@.@
@@.@@@..@@@@@@@@@@@@@@@@.@@@@...@..@.@.@@@@@@@@@.@@.@@@..@.@.@.@@@@.@@.@..@@.@.@.@@@@.@@@@@@.@@@.@@@.@.@...@.@..@@@@@@@@@@..@.@@@..@@@..
@@.@...@..@@@@@@..@@...@@@@@@@@@..@@.@@@..@@.@@.@@.@@.@..@...@.@@@.@@@.@@@@@@@@@.@@@@@...@.@@@@.@@.@@@...@.....@.@@@@.@@.....@@@@...@@@@
@.@@@@@@.@..@@...@@@@@@.@@@@@@@.@.@@.@@@@@@@.@@@@@@@.@.@@@@@.@@@@@@@@.@@@.@.@.@..@.@@.@@@.@@@.@@@..@@..@@@@@@.@@@@..@@@@@@@@@@..@@@@@.@@
@@@@.@@.@@@.....@@.@.@@@.@@@.@@..@.@@@@@@@@.@.@@.@.@..@@...@@..@..@@@.@.@...@.@...@@.@..@.@@.@.@@@@@@@@@@@.@@.@..@@.@@@..@.@.@.@@@@@@.@.
@@@@@.@@...@@@@.@.@@.@@@.@@.@@@...@@@.@..@.@@@@.@.@@@@.@@.@.@@.@.@@@@@@@@@@....@@@.@@..@..@@.@.@@@.@@@@@@@.@@@@..@@@.@@@@...@@@@.@@.@@@.
@@@@@..@@@@@....@@@@.@@.@@..@@@.@.@.@@@.@.@.@@@.@.@@@@@@@..@@.@@@@.@@@@@.@.@..@@@..@.@@@@@@@@@.@@@..@@@.@@@@..@@@.@@@@.@@@..@@@..@.@.@@.

1183
files/Problem5.txt Normal file

File diff suppressed because it is too large Load Diff

5
files/Problem6.txt Normal file
View File

@@ -0,0 +1,5 @@
38 346 33 62 25 368 69 528 89 136 23 43 88 61 724 75 25 7 96 6 7861 3 76 79 2763 31 31 338 37 566 32 38 847 224 94 8 6 2 683 91 572 39 3286 2 33 43 1327 7 61 982 5 127 64 4761 829 567 924 6 494 43 71 6 289 8 1 78 94 746 5 35 832 23 344 41 769 68 59 53 3 25 6 1 727 11 67 544 9 84 3 2 6381 21 732 65 2549 21 352 5579 37 51 53 72 523 648 1 28 2 498 9 6 14 332 94 78 5 224 2 196 924 52 39 9 963 82 369 6 5 78 39 65 6424 1 8 449 33 96 42 486 698 83 2 378 2 251 75 5 4 88 45 6225 52 57 87 32 71 39 63 7 87 74 366 33 33 494 174 258 219 1 92 45 29 42 5 314 7 417 844 45 86 67 2 7 1 626 3 418 718 66 1 9439 5 66 648 2828 245 6338 661 9766 35 5 58 763 57 426 38 45 66 152 852 116 28 9686 74 7 16 94 4 4 12 624 823 197 327 73 18 4 4354 4 979 595 2731 3473 73 94 48 9 42 85 48 11 4 42 2 669 57 65 4 1 256 787 4 25 876 59 543 3 94 66 456 6 3875 3216 13 46 99 96 8 4683 22 84 483 71 88 75 925 2 19 565 82 3 7299 695 4 63 7 573 9 25 36 96 5 28 7487 86 24 6196 17 1 966 656 679 731 1779 93 4 264 1 48 8538 653 1376 13 99 3 83 6492 9 224 4 5626 15 6 9761 9 2 35 58 5613 96 196 9 928 25 69 38 2 5 84 86 6 95 2229 648 714 43 198 467 6 7 4136 464 66 6893 7545 2 4 173 1 9 538 38 213 7592 546 9 6 52 28 9 48 326 25 54 497 9635 61 52 55 82 11 7967 314 96 75 9 63 381 636 23 72 14 79 786 746 55 921 5 4645 624 5 99 8 2 747 84 887 7568 8786 8 8185 676 16 76 77 15 6 918 83 928 3 51 782 44 21 18 1 485 685 746 265 366 17 93 581 9845 522 2485 795 358 9184 2911 6 8 39 2 8538 26 6 12 558 14 1 65 33 45 315 26 533 2 324 67 9578 218 67 745 812 47 38 243 687 673 3214 483 32 624 58 48 49 9 57 2837 15 929 6 83 5 74 333 353 99 68 264 7 8531 5 51 466 217 85 12 45 46 528 4 28 39 653 2285 53 489 57 92 53 17 727 7 8156 86 46 174 49 718 825 7 9179 168 15 622 66 439 778 472 64 338 136 39 7 45 562 88 61 156 465 92 832 5549 688 46 412 96 57 87 361 53 222 694 5 141 65 1213 4 7 31 1 96 678 14 8647 1 22 45 97 81 589 16 63 358 3 2 455 384 81 843 222 271 76 45 94 83 526 17 22 226 53 919 21 7 53 13 9 265 3 75 94 67 5 33 2 13 174 5519 327 3682 23 5 9247 28 51 89 81 5 135 161 37 3 34 52 35 22 328 7 8357 17 339 229 81 54 53 3 2 965 5592 52 96 4 641 934 843 295 268 814 578 38 96 774 2796 911 55 1215 66 18 69 43 28 668 88 56 91 95 9 142 96 61 1149 66 135 46 72 3214 81 3666 798 596 3 34 432 1 56 9 788 5 369 95 771 4 263 15 5396 95 89 765 6881 6 3 54 26 521 42 83 42 89 616 4696 418 68 827 71 75 4952 454 58 243 62 27 3 5 544 713 4 91 65 78 4 9718 25 671 662 25 2587 583 2 93 11 293 8 82 87 832 383 26 81 77 284 82 14 89 71 66 31 17 22 183 835 9 7 749 365 4 311 3837 2 2 55 989 861 25 2 6 5 2 919 482 57 92 6451 329 171 478 69 2 232 5 34 52 426 12 896 19 698 7 79 95 65 66 66 879 3 36 5766 6 6 962 4 625 43 936 132 6198 56 8 22 4 27 8 24 493 61 96 3247 8 369 138 746 556 872 7 46 17 48 92 422 98 731 13 98 9 526 8 67 1 2222 795 69 66 129 99 95 87 52 91 34 37 96 868 439 2748 525 7 34 756 9866 4 2 87 91 472 699 1661 74 94 982 999 74 5 338 17 866 5 885 558 62 9683 395 723 73 67 724 411 3 7 37 97 53 4 558 51 695 6 7 26 38 31 6 3 588 5 1699 824 59 9 185 8182 838 218 492 9 5 595 988 73 317 71 377 155 1768 58 538 48 28 95 95 2 37 27 4 62 64 33 254 77 491 6 56 3 77 363 6 66 346 2 46 3 5 7 85 733 428 88 28 573 85 15 2 87 9616 47 73 782 1 198 5 893 92 4 31 351 3194 767 2452 42 6199 7 93 3 57 551 686 644 16 5386
93 288 12 17 22 518 37 667 55 98 331 99 84 78 799 49 73 3794 61 82 836 66 43 84 2682 31 886 585 264 256 42 75 647 464 51 33 4 6 32 66 575 35 8675 32 59 52 8386 7 61 596 72 42 73 8994 945 527 511 839 899 49 825 8 693 944 622 275 24 442 37 2943 342 613 578 22 77 893 55 66 4 89 38 26 276 81 35 765 718 83 83 29 1191 43 351 994 6759 41 658 3157 12 26 55 4 823 1831 8 823 6 6293 44 588 69 794 27 56 53 97 29 623 747 876 51 84 642 522 9562 97 88 8529 54 43 2256 9 81 399 3 28 56 216 994 322 5 538 3 867 417 2 136 26 79 2963 25 61 9 59 767 593 95 9 16 16 8721 31 78 639 99 9142 546 88 93 51 22 89 8861 445 3 269 759 83 23 16 73 39 7 816 9987 831 158 36 69 6244 1 715 493 6641 8294 7314 717 4883 81 1 55 662 275 118 33 49 897 583 383 328 16 196 7629 6 75 26 54 23 74 95 782 653 941 41 3 6 673 62 683 863 5271 8563 75 96 1837 18 24 95 91 39 113 16 936 453 64 97 79 652 592 215 72 28 542 81 931 46 37 98 9291 97 5396 4393 51 47 81 132 1 375 552 15 556 42 376 87 453 47 521 11 41 3 911 548 15 82 9 288 1 24 19 68 3 93 7693 344 99 8754 51 94 289 667 847 341 3757 59 96 574 37 42 271 5425 981 536 31 46 33 6486 66 39 791 4956 37 223 4796 3458 77 34 28 3445 113 824 61 238 826 76 35 6 92 75 78 427 24 5827 486 641 51 787 549 6 9 7272 375 35 375 3675 62 23 34 5 2 129 5 898 6944 75 1 23 54 35 9 8 34 22 517 883 13 66 93 83 69 52 855 124 5 72 48 297 114 33 62 66 65 99 818 553 29 15 32 4661 854 981 94 7 3 576 744 787 5257 9444 4 9521 335 92 78 22 14 652 145 4 513 77 8177 197 22 893 59 66 642 915 987 718 678 89 898 294 1946 492 1459 384 42 6658 1199 8 18 97 81 5575 26 711 19 183 41 97 75 12 82 669 36 197 87 223 13 6176 231 38 911 985 18 13 415 288 861 818 188 97 929 45 71 66 2523 73 385 142 155 8 262 79 69 384 972 79 87 274 9 3668 38 6675 643 731 53 36 44 33 723 9 79 76 255 534 536 181 537 31 41 63 562 2 951 168 79 353 45 467 124 885 3282 647 79 752 34 82 335 198 681 672 113 29 7 21 114 349 36 678 122 566 825 5683 498 17 393 313 61 95 975 375 998 271 675 58 59 4734 8 2 97 2 19 734 21 4311 1 39 48 81 61 365 437 516 926 644 587 878 561 84 947 365 536 97 988 19 43 976 239 81 414 66 537 83 35 193 53 39 285 98 864 96 59 58 73 272 54 591 995 81 5755 33 26 7642 77 22 46 33 327 685 681 45 33 654 81 457 139 691 25 3626 534 934 698 73 6 721 764 28 285 5146 182 65 79 14 834 346 884 949 923 98 864 93 848 2677 655 11 486 8711 387 19 41 78 323 68 12 11 39 99 212 52 63 3328 45 699 82 89 8258 698 442 957 578 77 87 391 3 62 2 296 14 145 55 742 377 655 63 918 72 36 196 1667 68 43 88 145 666 292 6481 99 76 519 8571 572 15 542 72 9 6118 983 67 691 63 46 7 14 887 652 385 55 95 132 9 5145 71 448 892 211 1246 858 394 39 42 289 27 53 11 913 881 77 72 32 67 21 292 26 257 45 56 88 34 127 726 2 59 153 945 85 872 7426 9 85 82 89 572 91 9 6 65 1 483 989 636 95 7695 784 717 567 81 62 933 93 79 24 447 19 975 569 531 5 57 694 28 61 8958 948 84 6 4456 597 95 875 57 75 51 71 381 7682 66 6 29 46 34 92 858 1734 19 69 9637 5 576 158 984 524 271 8 73 73 9167 83 357 45 637 4729 16 4 261 633 23 9 7578 236 74 8188 697 61 37 23 78 46 76 263 98 896 259 967 517 4 17 237 697 43 36 19 78 27 35 6612 172 63 596 519 51 59 971 6 4993 7 111 788 71 586 185 446 75 6127 386 454 84 98 64 45 97 88 192 14 78 446 27 29 47 48 8 9 262 27 5646 214 5666 49 751 7539 9554 795 452 9 19 593 765 47 888 64 938 165 881 86 712 73 4 75 78 8 87 3 2 22 67 94 975 57 438 73 28 84 49 718 5 87 818 28 95 46 33 24 39 475 69 81 39 347 81 264 19 73 562 233 91 297 3 123 63 217 82 9 95 693 179 364 7897 78 6796 9 26 55 173 737 967 477 47 1253
15 14 793 38 82 598 29 922 32 92 413 322 28 87 783 54 82 3366 91 67 2 96 889 9 336 33 848 329 1493 69 16 47 994 49 38 27 54 9 3 38 1265 53 517 31 23 4972 272 66 78 892 61 14 37 933 799 268 484 643 21 71 983 45 737 225 561 959 81 746 75 4665 77 937 37 18 85 413 679 94 49 43 52 41 251 29 89 639 412 51 67 11 1684 75 9 431 533 94 371 319 69 69 52 1 68 4426 76 648 54 6129 92 135 64 762 124 39 933 43 488 862 46 978 62 18 164 353 2291 725 28 2237 2 86 681 29 74 582 2 11 196 522 9 679 49 624 7 893 417 194 168 64 78 3 82 6 3 76 4915 721 43 15 8 11 2262 51 59 892 7 1187 425 87 12 49 99 31 4875 13 58 925 593 52 11 21 984 45 16 243 5857 429 792 579 38 15 26 456 25 588 5258 6566 5481 72 18 147 59 578 598 961 79 24 359 293 341 39 64 137 6565 1 25 31 28 76 44 74 6694 654 922 35 2 96 476 59 826 8 7243 1922 9 65 2933 52 91 3 1 89 518 47 812 172 178 76 81 128 16 69 52 16 899 77 63 43 74 25 5252 743 51 7461 72 33 23 776 7 987 121 33 7633 81 964 14 415 35 187 25 6776 57 247 345 24 58 17 369 69 93 85 18 99 24 5796 667 44 4135 41 93 723 439 594 214 5639 46 348 933 151 39 87 3322 955 1494 492 28 63 1897 379 57 652 3281 584 498 3431 4624 75 22 729 396 8384 876 35 624 773 81 71 16 484 59 169 5154 75 2449 539 759 2 321 98 82 22 951 362 9 6 552 4822 62 36 191 71 61 3 737 784 15 52 841 2 72 22 8 6 13 731 394 83 148 67 9 76 68 68 666 6 51 3825 142 231 86 77 6 75 59 781 236 31 75 391 486 776 682 85 531 94 162 995 28 929 5865 26 656 65 43 742 68 23 968 693 4 368 595 7263 797 35 215 37 4465 872 136 155 98 415 75 828 84 2674 422 1956 15 83 973 2219 93 44 6 21 4289 32 1845 585 54 399 958 17 79 92 72 9524 32 22 176 138 3622 19 73 585 34 92 15 586 1161 148 444 373 33 345 133 31 3 6333 98 85 581 72 28 384 78 38 3385 8723 33 79 62 47 86 64 8338 958 355 91 85 7 92 938 71 669 22 643 894 157 44 765 89 22 56 642 69 72 986 3 648 181 655 57 116 3884 628 187 665 42 28 763 95 218 994 459 83 43 51 29 429 71 318 475 551 974 462 447 92 965 146 912 1 212 4127 339 78 158 63 41 1354 59 75 4 177 64 651 71 452 47 75 34 622 4 173 352 543 71 567 767 761 831 96 63 21 542 48 158 2 771 356 889 43 53 41 852 8 54 623 93 96 362 76 786 78 97 33 6 877 31 358 916 49 8322 37 76 1111 52 86 94 73 455 597 337 33 22 747 28 843 7675 127 28 9366 6436 77 947 13 5 536 572 847 147 7889 945 12 38 77 533 7829 594 473 688 69 123 1 341 3444 598 5 674 6699 293 646 21 74 65 39 19 64 21 86 954 1 78 8841 97 375 74 7 6393 9225 258 871 573 941 92 96 66 28 1 184 234 333 83 795 744 9633 11 35 96 58 192 2458 37 92 75 585 839 941 6358 79 59 591 1294 7 1 583 73 5 3831 435 14 463 237 33 19 519 34 535 199 64 75 863 7 7465 91 25 963 232 672 26 927 29 27 297 65 7 44 466 563 74 86 43 19 287 618 59 842 939 1 8 43 9875 764 8 59 276 777 27 434 957 22 24 69 6 978 15 322 673 51 121 442 452 374 4 414 286 447 311 82 14 2864 83 91 49 5 94 6 858 416 81 32 747 119 18 3299 827 28 9 1522 926 26 717 199 22 46 44 731 7982 75 8 92 12 24 21 475 2962 38 1667 2584 18 51 4 74 431 659 23 35 65 1716 18 634 42 774 7225 59 14 938 549 8 81 4498 684 175 9613 114 3 37 781 31 37 195 875 29 833 229 897 68 75 64 571 121 52 43 213 85 47 26 1597 457 91 33 833 89 85 813 8 2972 62 297 171 96 118 99 961 13 6615 235 798 465 14 75 27 63 46 897 83 42 681 66 72 14 29 9 85 76 88 525 476 2163 82 116 4548 7952 276 637 66 6263 783 263 78 92 93 199 316 586 22 925 15 2 93 76 45 7 2 18 46 57 63 914 41 484 25 81 442 55 3773 92 16 44 83 97 864 23 13 46 936 45 31 15 427 869 288 44 99 23 481 61 57 69 763 38 8 65 477 53 135 36 886 149 75 193 6 4 87 511 256 696 124 39 3918
71 84 644 94 5 499 7 89 5 97 916 385 63 78 947 73 61 6752 935 45 5 46 9153 1 7 61 593 1 3459 79 85 24 614 91 9 64 24 92 7 67 2647 33 26 42 29 3429 19 824 72 457 36 17 1 687 1 3158 553 3597 2 76 422 92 24 792 522 915 969 678 176 1349 62 242 38 1 3 728 749 38 37 34 57 17 577 76 15 817 479 24 96 69 266 44 3 482 62 18 48 11 7 31 2 5 5 1887 45 994 22 7224 23 2711 11 327 5328 38 914 79 644 812 85 716 97 27 352 546 4131 242 43 3279 7 55 41 73 29 22 9 6 559 7 3 983 51 634 87 378 295 799 968 255 9 5 75 2 9 54 8395 411 514 124 9 3 7721 24 84 32 1 8349 51 76 61 27 98 357 2596 48 85 7737 336 37 4 46 591 71 65 33 4935 87 364 483 9895 33 52 717 92 66 9334 1328 5483 38 51 443 751 682 656 7696 6 33 541 9 5 16 58 943 1524 47 5 9 13 758 34 92 5899 964 6 52 5 96 43 97 4 6 445 688 4 69 7857 44 15 9 8 61 451 84 496 954 888 2 52 1153 5 83 43 8 356 23 74 11 2 3 2678 966 67 77 9 14 26 945 71 48 566 91 1413 14 515 66 431 71 865 1 2689 48 78 54 89 58 21 9247 56 83 36 45 23 8 779 993 49 1622 55 42 3 896 7 158 5852 1 919 96 471 6 8 7441 76 4933 712 339 14 1 3431 9 546 479 946 491 7551 8397 38 8 584 43 4731 272 39 923 436 12 43 71 638 91 276 4322 14 1 487 956 8 855 8 73 14 677 755 4 8 19 4666 34 15 667 98 59 6 973 246 81 52 581 2 4 28 7 5 77 646 917 36 446 82 7 74 87 89 558 5 75 8251 656 86 88 4 2 93 18 7 64 87 33 238 97 6 838 8 839 28 345 419 75 834 79 45 899 1 2 374 19 6 6664 976 2 849 533 1895 613 9 919 81 8246 861 391 574 27 519 4 279 5 3229 829 384 31 49 28 163 47 69 4 25 2437 75 4562 747 23 535 355 41 79 56 77 8693 83 14 28 698 1466 63 53 175 59 29 13 27 7744 95 36 83 9 72 982 41 4 2767 39 8 675 86 692 471 26 66 5693 6219 6 6 72 98 89 32 6662 66 94 19 64 8 6 636 578 393 86 968 14 473 59 797 52 4 43 137 25 33 6266 9 374 236 86 54 229 864 384 569 64 83 3 7 92 839 51 75 97 39 5 26 488 45 895 538 572 19 25 87 72 328 713 962 5 777 4984 68 9 8697 8 52 922 616 26 6 787 31 74 6 397 884 19 8 694 1 54 163 344 31 216 525 452 233 23 8 28 767 8 958 6 654 743 2417 3 6 35 439 8 63 839 235 52 733 32 832 12 8 79 9 321 14 21 34 34 6589 4 66 1437 76 1 78 98 934 181 18 78 57 388 73 3315 8884 137 56 445 6782 51 9 94 9 697 934 553 77 681 584 97 55 6 6 3349 524 19 14 51 8725 2 639 893 722 3 89 7516 746 635 8 62 32 5 41 9 8 93 19 1 91 985 15 543 79 4 3386 6869 129 49 689 215 68 69 66 8 11 942 657 521 84 519 988 4355 34 6 66 92 953 59 64 47 44 817 54 427 5183 37 6 261 7796 3 4 197 98 7 238 46 58 184 244 38 44 326 99 249 1557 3 1 472 72 87 6 2 4 632 239 76 216 6 33 36 78 9 4 75 323 31 91 95 6 913 713 62 713 513 2 4 72 8727 359 54 5143 224 989 65 67 26 36 19 42 6 35 7 458 152 136 544 427 139 243 6 66 79 287 2 35 86 8834 73 41 66 2 33 3 418 44 26 98 576 727 1 1766 1 18 5 653 631 78 2 456 28 93 1 593 6 629 96 79 52 47 14 956 2193 81 6496 5 36 45 6 51 7 93 236 34 63 3423 86 21 85 92 1898 1 35 9 517 4 94 6614 98 642 5726 16 7 53 863 72 4 378 529 3 889 66 827 9 94 79 463 8 83 11 943 54 8 1 72 527 9 7 5148 96 45 844 5 3649 44 876 577 5 51 78 85 176 7773 8 1 329 13 25 58 72 36 336 892 89 723 57 8 1 5 265 17 6 22 533 36 2218 48 4 8134 4879 2 33 89 3167 899 1 6 3 29 113 4 53 87 925 47 8 97 2 48 2 7 22 56 64 28 34 7 217 13 24 984 27 4327 26 36 76 22 52 872 67 82 766 317 7 39 38 653 937 792 98 74 6 986 78 9 35 658 559 8 15 141 91 639 46 497 259 93 32 71 4 46 474 799 18 31 65 916
+ + * * * * * * * + + * + * * + * + + + + * + * + + + + + + * + + * + + + * + * + * + * * + + * + * + * * + * + + + * * * * * * + * + * * + + + * * * * * * + + + * + + * * * * * * + + * + + + * + * + + * + + + + * + * + + + + + * * + * + + + * + + + * * + * * + + * * * * * * * + + * * + + * + * * + * + + + + + + + + * + * + + * + + * * + * * + * * + + + * * * + * * + * + * + + + * * + + + + + + * * * + + * + + + * + + + + * * * + * + + + * + * + + + + * * + + * + + * * + + + * + * + + * * + + * * * * + * * * * + + + + + * * + * + + * + * + * * * * + + + + * * + * + * * * * * * + * + + + * * + * * + * + * * * + + + + * * * + + + * + * + + + + + * + + * * * * * * + + * + + * + * * + * + * * + * * + + + * * * + * * * + * + * * + * + * + * + + + * + * * + * * * + * * * * * * + * * * * + + * * + + * + + * + + + + * * + + + + * * + * + + * * * + + + * * + + * + + * + + + + + + * * * + + + + * * + * + + * + * * + * + * + + * + + * + * + * * + + * + + + + + + * * * * + + * * * * + + + * * + * * * * + + * + + + + + * * * + * + + + * + + + * + * * * + * * * * + + * * * + + * * * + * + * * + * + + * + * * + + * + * + * * + + * + * * + * * * * + * + + + * * + + * * * * + + + * * + + * + * * + * + * * * * * + * * + + + + + + * + + + + + * + * * * + + * + + + * + * + * * * * + + * + * * + * * * + + * * + * + + + * * * * * * * + + * * * * + * + + + + + + * * * * + * * * + * + * * + + * + + * * + * + * * * + + + * * + + * * * + + * * + * + * + * * + + + + + + + + + + + * + + + * + * * + * * * + * + * * * + * * * + + * + * * + * + + + * * * * * * + + + + * * + * * + + + + * * * * + * * + * * * + * + * + + + * + + * * * + + + * * + * + + * + + + + * + * * * + + * + + + * * + + * + * * + * + + + + * * + * + + * + + * * + + + + + + * * * * * * + + + + + * * + + + + * * * + * * * + * + * * + * + + + * * * * * * * + * + * + + + * + + + * * * + * + * * + * * + * * * + + * + + * * + + + * * + + * + + + + * + * * * + + + + * * * + + + * * + * * * + * + + * * * + + * + + + * + + + * * + + +