day 16
This commit is contained in:
parent
2c8a012400
commit
6b59d3efa6
53
16/1.py
Normal file
53
16/1.py
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
with open("input") as f:
|
||||||
|
content = [x.strip() for x in f]
|
||||||
|
|
||||||
|
def parse_rule(rule):
|
||||||
|
name, rest = rule.split(": ")
|
||||||
|
rule1, rule2 = rest.split(" or ")
|
||||||
|
rules = []
|
||||||
|
for i in rule1, rule2:
|
||||||
|
mi, ma = i.split("-")
|
||||||
|
rules.append((int(mi), int(ma)))
|
||||||
|
|
||||||
|
return name, rules
|
||||||
|
|
||||||
|
def validate_rule(rule, value):
|
||||||
|
validates = False
|
||||||
|
for r in rule:
|
||||||
|
mi, ma = r
|
||||||
|
if value >= mi and value <= ma:
|
||||||
|
validates = True
|
||||||
|
return validates
|
||||||
|
|
||||||
|
part = 0
|
||||||
|
rules = {}
|
||||||
|
othertickets = []
|
||||||
|
myticket = []
|
||||||
|
for c in content:
|
||||||
|
if not c:
|
||||||
|
part += 1
|
||||||
|
continue
|
||||||
|
if part == 0: # parsing rules
|
||||||
|
name, rule = parse_rule(c)
|
||||||
|
rules[name] = rule
|
||||||
|
if part == 1: # parsing your ticket
|
||||||
|
if c.startswith("your ticket"):
|
||||||
|
continue
|
||||||
|
myticket = [int(x) for x in c.split(",")]
|
||||||
|
if part == 2: # parsing other tickets
|
||||||
|
if c.startswith("nearby tickets"):
|
||||||
|
continue
|
||||||
|
othertickets.append([int(x) for x in c.split(",")])
|
||||||
|
|
||||||
|
total = 0
|
||||||
|
for ticket in othertickets:
|
||||||
|
for value in ticket:
|
||||||
|
validates = False
|
||||||
|
for __, rule in rules.items():
|
||||||
|
if validate_rule(rule, value):
|
||||||
|
validates = True
|
||||||
|
break
|
||||||
|
if not validates:
|
||||||
|
total += value
|
||||||
|
|
||||||
|
print(total)
|
93
16/2.py
Normal file
93
16/2.py
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
from collections import OrderedDict
|
||||||
|
|
||||||
|
with open("input") as f:
|
||||||
|
content = [x.strip() for x in f]
|
||||||
|
|
||||||
|
def parse_rule(rule):
|
||||||
|
name, rest = rule.split(": ")
|
||||||
|
rule1, rule2 = rest.split(" or ")
|
||||||
|
rules = []
|
||||||
|
for i in rule1, rule2:
|
||||||
|
mi, ma = i.split("-")
|
||||||
|
rules.append((int(mi), int(ma)))
|
||||||
|
|
||||||
|
return name, rules
|
||||||
|
|
||||||
|
def validate_rule(rule, value):
|
||||||
|
validates = False
|
||||||
|
for r in rule:
|
||||||
|
mi, ma = r
|
||||||
|
if value >= mi and value <= ma:
|
||||||
|
validates = True
|
||||||
|
return validates
|
||||||
|
|
||||||
|
|
||||||
|
def validate_ticket(rules, ticket):
|
||||||
|
for value in ticket:
|
||||||
|
validates = False
|
||||||
|
for __, rule in rules.items():
|
||||||
|
if validate_rule(rule, value):
|
||||||
|
validates = True
|
||||||
|
break
|
||||||
|
if not validates:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
part = 0
|
||||||
|
rules = OrderedDict()
|
||||||
|
othertickets = []
|
||||||
|
myticket = []
|
||||||
|
for c in content:
|
||||||
|
if not c:
|
||||||
|
part += 1
|
||||||
|
continue
|
||||||
|
if part == 0: # parsing rules
|
||||||
|
name, rule = parse_rule(c)
|
||||||
|
rules[name] = rule
|
||||||
|
if part == 1: # parsing your ticket
|
||||||
|
if c.startswith("your ticket"):
|
||||||
|
continue
|
||||||
|
myticket = [int(x) for x in c.split(",")]
|
||||||
|
if part == 2: # parsing other tickets
|
||||||
|
if c.startswith("nearby tickets"):
|
||||||
|
continue
|
||||||
|
othertickets.append([int(x) for x in c.split(",")])
|
||||||
|
|
||||||
|
newtickets = []
|
||||||
|
newtickets.append(myticket)
|
||||||
|
for ticket in othertickets:
|
||||||
|
if validate_ticket(rules, ticket):
|
||||||
|
newtickets.append(ticket)
|
||||||
|
|
||||||
|
possible_mappings = OrderedDict()
|
||||||
|
for field in range(0, len(myticket)):
|
||||||
|
for rulename, rule in rules.items():
|
||||||
|
validates = True
|
||||||
|
for ticket in newtickets:
|
||||||
|
if not validate_rule(rule, ticket[field]):
|
||||||
|
validates = False
|
||||||
|
if validates:
|
||||||
|
if rulename not in possible_mappings:
|
||||||
|
possible_mappings[rulename] = []
|
||||||
|
possible_mappings[rulename].append(field)
|
||||||
|
|
||||||
|
mappings_lengths = [len(x) for __, x in possible_mappings.items()]
|
||||||
|
mappings_names = list(possible_mappings.keys())
|
||||||
|
|
||||||
|
final_mapping = OrderedDict()
|
||||||
|
already_assigned = []
|
||||||
|
for length in sorted(mappings_lengths):
|
||||||
|
mapping_index = mappings_lengths.index(length)
|
||||||
|
rule_name = mappings_names[mapping_index]
|
||||||
|
pos_maps = possible_mappings[rule_name]
|
||||||
|
definitive_maps = list(filter(lambda x: x not in already_assigned, pos_maps))
|
||||||
|
already_assigned.extend(definitive_maps)
|
||||||
|
final_mapping[rule_name] = definitive_maps[0]
|
||||||
|
|
||||||
|
total = 1
|
||||||
|
for rulename, fieldno in final_mapping.items():
|
||||||
|
if rulename.startswith("departure"):
|
||||||
|
total *= myticket[fieldno]
|
||||||
|
|
||||||
|
print(total)
|
12
16/einput
Normal file
12
16/einput
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
class: 1-3 or 5-7
|
||||||
|
row: 6-11 or 33-44
|
||||||
|
seat: 13-40 or 45-50
|
||||||
|
|
||||||
|
your ticket:
|
||||||
|
7,1,14
|
||||||
|
|
||||||
|
nearby tickets:
|
||||||
|
7,3,47
|
||||||
|
40,4,50
|
||||||
|
55,2,20
|
||||||
|
38,6,12
|
11
16/einput2
Normal file
11
16/einput2
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
class: 0-1 or 4-19
|
||||||
|
row: 0-5 or 8-19
|
||||||
|
seat: 0-13 or 16-19
|
||||||
|
|
||||||
|
your ticket:
|
||||||
|
11,12,13
|
||||||
|
|
||||||
|
nearby tickets:
|
||||||
|
3,9,18
|
||||||
|
15,1,5
|
||||||
|
5,14,9
|
268
16/input
Normal file
268
16/input
Normal file
|
@ -0,0 +1,268 @@
|
||||||
|
departure location: 45-309 or 320-962
|
||||||
|
departure station: 27-873 or 895-952
|
||||||
|
departure platform: 45-675 or 687-962
|
||||||
|
departure track: 42-142 or 164-962
|
||||||
|
departure date: 38-433 or 447-963
|
||||||
|
departure time: 39-703 or 709-952
|
||||||
|
arrival location: 34-362 or 383-963
|
||||||
|
arrival station: 26-921 or 934-954
|
||||||
|
arrival platform: 38-456 or 480-968
|
||||||
|
arrival track: 42-295 or 310-956
|
||||||
|
class: 29-544 or 550-950
|
||||||
|
duration: 44-725 or 749-963
|
||||||
|
price: 37-494 or 509-957
|
||||||
|
route: 25-170 or 179-966
|
||||||
|
row: 32-789 or 795-955
|
||||||
|
seat: 29-98 or 122-967
|
||||||
|
train: 45-403 or 418-956
|
||||||
|
type: 36-81 or 92-959
|
||||||
|
wagon: 25-686 or 692-955
|
||||||
|
zone: 37-338 or 353-960
|
||||||
|
|
||||||
|
your ticket:
|
||||||
|
79,193,53,97,137,179,131,73,191,139,197,181,67,71,211,199,167,61,59,127
|
||||||
|
|
||||||
|
nearby tickets:
|
||||||
|
520,360,862,762,851,550,896,507,812,510,896,936,653,629,287,481,718,840,489,850
|
||||||
|
12,605,204,396,449,357,661,766,765,903,170,491,215,597,698,356,66,941,362,749
|
||||||
|
132,482,797,522,855,664,904,515,799,329,78,802,909,214,637,175,555,431,825,944
|
||||||
|
220,872,817,630,642,270,767,211,534,203,674,250,899,808,450,273,834,648,690,836
|
||||||
|
486,69,439,60,841,723,229,672,283,184,872,357,907,196,214,512,238,57,214,338
|
||||||
|
286,586,355,487,785,271,209,739,538,700,755,870,400,565,216,822,242,523,418,628
|
||||||
|
359,771,137,72,276,722,259,618,342,565,140,694,74,447,819,639,237,565,668,808
|
||||||
|
757,766,846,555,847,99,899,520,864,224,560,213,839,574,322,651,944,486,805,328
|
||||||
|
511,516,537,665,946,124,490,166,68,280,401,208,701,275,818,877,385,385,856,766
|
||||||
|
605,509,262,941,872,390,786,75,703,432,383,654,513,828,586,337,114,798,217,697
|
||||||
|
164,693,62,672,753,248,208,567,56,54,947,238,125,544,562,273,415,96,579,663
|
||||||
|
566,480,768,294,490,628,749,130,670,710,484,523,261,121,656,807,387,56,644,652
|
||||||
|
130,873,272,181,994,292,530,122,556,397,761,451,431,766,456,900,179,401,485,856
|
||||||
|
777,292,916,325,419,853,274,775,699,726,915,556,860,854,630,430,543,289,920,142
|
||||||
|
68,481,898,916,197,126,672,488,807,587,481,55,625,661,696,108,330,596,271,77
|
||||||
|
787,916,787,767,206,626,900,454,195,767,231,70,827,338,530,276,268,817,15,694
|
||||||
|
140,484,361,511,518,700,184,800,484,583,983,905,789,913,536,858,327,858,448,399
|
||||||
|
428,337,946,638,250,901,423,812,658,270,328,397,720,426,231,873,812,345,199,245
|
||||||
|
96,556,811,692,489,590,578,436,560,97,722,844,943,92,618,385,292,772,634,826
|
||||||
|
623,697,556,664,781,328,602,555,635,934,516,65,253,703,435,228,670,391,332,905
|
||||||
|
589,805,825,578,325,204,332,682,535,536,225,920,294,279,140,698,905,62,827,213
|
||||||
|
192,661,495,323,394,186,512,64,862,723,400,754,701,789,870,693,818,913,390,383
|
||||||
|
784,530,234,699,227,74,196,827,980,801,836,567,720,273,644,599,383,587,480,613
|
||||||
|
384,525,687,566,841,72,829,776,908,267,327,450,652,940,908,696,914,289,830,868
|
||||||
|
819,633,12,280,774,400,873,623,566,580,98,768,59,799,93,170,593,210,283,262
|
||||||
|
269,261,750,133,601,433,662,908,430,635,69,869,330,607,253,588,773,563,685,803
|
||||||
|
673,838,630,504,427,768,643,422,633,335,510,816,594,624,895,567,335,857,607,240
|
||||||
|
869,524,541,246,765,591,650,429,692,643,658,335,361,846,871,610,716,574,337,348
|
||||||
|
212,254,540,225,141,912,528,806,947,855,209,596,242,613,77,219,291,263,167,172
|
||||||
|
651,68,127,581,629,570,220,487,135,773,669,638,452,236,723,185,495,418,525,64
|
||||||
|
711,618,609,266,263,753,68,391,132,771,124,573,944,870,92,829,731,710,627,70
|
||||||
|
542,613,65,189,225,799,543,229,394,18,566,798,203,227,825,396,817,51,661,513
|
||||||
|
422,283,949,941,647,806,197,533,721,418,198,239,326,724,872,920,570,268,443,599
|
||||||
|
97,166,849,60,484,184,570,181,59,513,847,609,699,613,859,554,915,907,103,636
|
||||||
|
855,529,779,140,633,424,614,524,535,454,660,848,918,657,701,737,355,695,218,615
|
||||||
|
556,845,749,334,805,835,850,64,517,615,697,531,360,544,843,949,985,944,570,617
|
||||||
|
426,858,566,491,232,130,832,60,760,134,315,185,658,861,624,864,696,557,136,450
|
||||||
|
337,218,660,669,915,937,642,901,630,564,803,420,394,863,73,778,178,935,943,75
|
||||||
|
838,383,796,185,183,513,627,820,214,850,611,0,909,640,666,597,237,337,870,862
|
||||||
|
990,557,897,719,821,652,809,943,551,839,767,52,941,59,246,211,674,604,428,919
|
||||||
|
396,860,635,627,248,213,218,839,325,573,62,755,822,621,387,517,686,835,655,626
|
||||||
|
134,754,563,615,330,715,507,126,844,293,622,916,566,936,521,714,77,693,64,606
|
||||||
|
451,836,918,241,717,289,76,758,274,658,56,812,591,705,268,208,274,910,359,393
|
||||||
|
430,490,277,871,702,872,659,577,943,575,452,987,247,846,573,601,818,449,169,169
|
||||||
|
190,943,484,62,573,593,122,756,589,327,57,294,230,717,618,438,164,65,625,636
|
||||||
|
55,213,622,525,898,696,721,815,398,538,747,433,247,782,694,481,811,807,426,588
|
||||||
|
527,392,491,660,664,359,590,355,356,755,949,765,261,550,868,688,670,605,277,291
|
||||||
|
422,873,219,750,126,16,759,226,669,293,629,402,242,833,840,212,528,901,641,535
|
||||||
|
358,494,201,391,141,271,276,562,185,418,799,762,714,765,626,97,519,881,126,262
|
||||||
|
509,59,612,58,447,806,572,403,222,266,242,565,203,354,398,212,284,274,158,919
|
||||||
|
480,588,186,292,558,657,590,361,825,757,773,630,95,839,521,496,493,605,236,231
|
||||||
|
815,13,221,601,765,72,186,203,231,834,98,869,279,945,193,934,98,809,433,78
|
||||||
|
895,289,904,695,487,206,187,671,63,628,237,572,990,271,124,531,71,572,421,941
|
||||||
|
896,814,357,338,450,756,788,247,207,948,403,358,788,132,330,454,619,416,897,225
|
||||||
|
843,767,848,196,205,764,553,452,785,828,627,120,944,393,562,524,910,354,658,254
|
||||||
|
329,830,921,354,96,771,896,355,638,195,206,241,491,701,456,908,754,688,226,97
|
||||||
|
718,611,268,421,282,908,625,115,713,580,833,355,67,836,51,758,565,78,356,758
|
||||||
|
453,713,527,527,742,557,661,657,779,206,632,563,712,580,801,226,257,131,179,328
|
||||||
|
847,580,140,633,852,636,284,81,809,623,703,353,977,383,912,140,810,73,256,533
|
||||||
|
815,432,627,222,175,623,844,211,577,815,494,845,493,651,433,583,844,540,544,808
|
||||||
|
517,655,448,532,711,865,181,245,833,135,194,939,784,385,507,431,135,582,217,659
|
||||||
|
599,691,871,54,356,195,253,421,719,872,516,602,418,716,221,577,637,77,356,166
|
||||||
|
813,187,655,279,100,651,50,610,709,419,575,184,74,571,58,521,725,783,277,131
|
||||||
|
307,646,824,524,761,650,859,842,851,95,54,238,718,514,223,921,389,751,614,51
|
||||||
|
624,710,243,669,623,396,247,353,778,60,562,19,398,275,68,219,125,384,325,179
|
||||||
|
607,224,602,211,640,845,94,581,802,855,830,817,993,486,867,761,808,756,542,606
|
||||||
|
248,219,594,764,826,718,808,853,853,251,491,640,947,719,345,912,141,813,124,585
|
||||||
|
438,219,948,535,551,257,561,51,94,486,138,725,862,329,584,79,789,96,749,521
|
||||||
|
233,835,392,386,624,608,840,758,721,337,897,243,583,945,196,810,663,795,764,497
|
||||||
|
212,200,403,194,51,207,330,352,868,821,809,823,786,896,51,865,451,267,385,586
|
||||||
|
689,488,756,558,262,777,659,725,651,819,798,641,214,841,329,266,358,276,583,353
|
||||||
|
262,70,279,871,813,455,868,387,606,515,137,863,799,655,823,914,805,634,75,163
|
||||||
|
275,390,672,560,862,420,943,224,941,202,81,293,869,74,252,815,595,674,124,745
|
||||||
|
855,750,758,568,596,630,862,187,949,724,16,229,750,123,127,78,333,572,519,593
|
||||||
|
321,620,396,428,865,72,238,200,661,555,230,560,759,741,579,859,797,620,428,353
|
||||||
|
731,72,623,433,419,276,566,92,418,56,202,559,842,188,532,530,669,268,725,275
|
||||||
|
535,69,452,238,230,95,820,756,534,127,327,403,245,122,256,78,649,457,65,95
|
||||||
|
775,346,919,557,526,818,248,755,483,543,328,781,654,636,203,788,630,938,624,398
|
||||||
|
187,910,248,696,604,421,274,668,430,100,724,324,220,696,525,67,774,851,800,216
|
||||||
|
830,263,519,825,633,362,845,945,816,911,803,216,247,662,725,419,659,88,535,869
|
||||||
|
786,601,421,360,656,247,634,317,720,575,194,642,916,54,269,866,538,647,533,540
|
||||||
|
189,354,932,867,590,274,692,807,487,183,202,858,813,754,570,518,631,57,717,280
|
||||||
|
860,811,78,645,659,202,419,125,241,530,78,613,135,607,418,158,599,712,722,269
|
||||||
|
452,535,797,626,54,939,861,182,770,517,130,349,770,61,673,639,797,938,265,125
|
||||||
|
320,628,601,528,498,70,579,805,532,455,72,238,128,243,386,222,552,751,663,240
|
||||||
|
649,126,522,287,482,948,725,943,207,543,601,7,645,268,618,846,565,142,248,758
|
||||||
|
781,218,175,698,559,125,290,616,662,217,60,934,183,636,836,716,712,136,200,759
|
||||||
|
825,386,335,427,276,124,606,224,539,652,903,863,165,786,783,946,486,4,656,401
|
||||||
|
346,621,256,50,456,596,761,723,854,939,279,290,587,403,568,764,388,239,139,647
|
||||||
|
582,766,521,227,488,820,722,420,54,225,700,96,397,182,532,600,512,23,915,796
|
||||||
|
607,98,206,541,180,248,248,751,61,783,295,509,509,310,671,627,584,128,392,238
|
||||||
|
262,917,680,812,861,619,288,594,75,552,846,521,917,141,490,697,456,482,78,226
|
||||||
|
269,659,409,422,388,573,53,862,811,812,613,287,134,591,902,754,711,204,580,230
|
||||||
|
488,660,547,223,362,488,763,862,903,393,68,761,702,336,798,701,555,489,337,223
|
||||||
|
289,181,103,654,419,385,915,287,849,669,803,938,649,749,703,920,657,634,493,631
|
||||||
|
807,786,779,803,908,637,909,550,804,825,537,921,516,76,192,723,670,329,666,310
|
||||||
|
829,205,800,901,191,231,324,257,361,629,847,841,839,827,295,716,608,508,240,804
|
||||||
|
921,493,289,516,662,572,394,863,170,868,701,823,863,646,936,619,65,742,227,395
|
||||||
|
167,223,846,777,53,202,608,639,488,169,822,59,295,837,696,426,355,819,10,939
|
||||||
|
530,730,510,403,428,717,753,643,797,750,835,224,65,867,599,226,279,779,431,655
|
||||||
|
920,184,550,648,200,289,386,142,589,655,909,62,326,189,68,322,534,303,593,70
|
||||||
|
629,321,986,294,329,834,394,796,696,418,589,764,639,917,402,573,76,827,98,639
|
||||||
|
840,919,494,623,148,669,675,865,393,799,542,604,913,636,400,781,915,539,795,628
|
||||||
|
885,361,628,657,789,190,57,55,418,663,418,664,605,273,562,869,904,200,131,421
|
||||||
|
506,781,452,586,543,863,563,167,127,784,788,330,131,841,700,810,329,601,424,600
|
||||||
|
283,214,785,699,902,486,449,945,63,176,284,135,831,855,615,624,270,647,187,597
|
||||||
|
857,60,309,846,598,512,165,222,57,271,871,949,66,574,289,672,819,838,282,650
|
||||||
|
807,483,204,913,423,902,699,614,426,934,585,905,323,224,142,454,639,686,215,652
|
||||||
|
395,142,252,916,229,829,579,604,203,335,646,335,278,60,771,201,788,633,707,255
|
||||||
|
816,754,642,58,197,819,777,837,56,501,327,200,94,211,850,212,541,214,270,616
|
||||||
|
907,589,51,139,256,489,645,486,221,785,825,615,595,826,391,785,65,706,824,77
|
||||||
|
161,843,774,248,868,181,799,585,855,898,769,749,833,250,482,283,718,641,695,554
|
||||||
|
184,615,668,205,206,291,485,234,551,628,170,918,74,867,203,993,820,559,98,529
|
||||||
|
209,72,759,450,358,266,183,595,778,690,425,815,942,139,530,515,241,193,611,692
|
||||||
|
214,830,572,204,327,188,360,767,486,672,871,422,774,337,317,62,72,605,286,577
|
||||||
|
812,225,209,699,18,95,801,646,590,196,839,266,265,516,607,659,489,835,292,640
|
||||||
|
830,486,850,761,649,819,786,338,542,490,585,712,895,693,516,285,194,782,763,439
|
||||||
|
571,278,816,822,383,502,97,453,325,660,844,201,785,852,765,943,336,218,78,391
|
||||||
|
50,529,530,239,386,62,81,217,837,402,804,557,618,166,252,339,804,185,321,141
|
||||||
|
258,828,651,935,591,387,750,95,597,671,919,688,169,623,142,581,864,567,521,895
|
||||||
|
275,803,826,568,236,287,512,698,428,631,180,452,725,713,278,555,724,540,167,676
|
||||||
|
800,267,794,322,359,825,336,872,66,806,362,715,724,902,264,362,92,355,165,242
|
||||||
|
567,9,278,592,562,761,385,773,908,641,938,723,72,663,125,947,250,127,765,597
|
||||||
|
871,52,399,829,936,573,975,824,575,295,221,513,656,422,584,359,903,522,845,321
|
||||||
|
589,141,385,95,717,590,513,152,52,259,270,169,190,331,494,902,895,770,455,944
|
||||||
|
617,802,532,166,629,384,763,332,452,240,696,617,213,677,715,264,670,573,639,796
|
||||||
|
941,402,856,282,660,667,710,124,92,899,538,603,700,760,122,261,909,135,994,754
|
||||||
|
117,798,202,53,254,763,672,427,56,648,421,261,617,701,493,96,323,789,127,538
|
||||||
|
538,782,83,193,490,865,572,422,139,816,783,337,180,262,127,806,210,236,675,776
|
||||||
|
288,575,331,698,137,741,696,564,354,604,639,644,220,844,670,511,211,561,254,852
|
||||||
|
353,329,420,360,769,851,335,616,697,454,615,203,823,194,688,493,255,909,222,563
|
||||||
|
353,523,328,401,576,580,356,945,527,768,184,174,187,857,655,603,447,332,292,774
|
||||||
|
716,583,254,720,343,822,63,624,484,419,336,128,850,835,124,848,619,65,760,425
|
||||||
|
846,488,645,808,81,584,588,773,898,261,142,844,260,274,558,233,446,256,166,650
|
||||||
|
280,596,424,384,600,493,641,188,426,530,395,326,581,832,658,934,559,122,792,640
|
||||||
|
529,243,667,719,614,97,139,695,201,240,797,641,207,856,97,315,670,715,52,388
|
||||||
|
433,763,668,57,318,229,614,617,212,402,750,335,510,631,257,227,132,612,248,899
|
||||||
|
325,286,276,400,709,625,510,97,945,512,836,184,136,643,664,896,68,59,89,763
|
||||||
|
195,759,828,244,827,194,339,644,271,906,663,357,483,166,580,201,218,819,553,827
|
||||||
|
800,697,934,762,509,939,208,635,134,668,626,243,810,666,214,138,94,267,978,519
|
||||||
|
585,428,450,563,629,905,387,867,911,51,807,500,280,418,575,539,80,610,225,843
|
||||||
|
426,542,850,778,214,124,943,687,76,863,631,251,170,601,644,759,902,702,673,810
|
||||||
|
562,335,96,77,541,492,122,254,615,759,646,602,490,753,50,236,203,260,319,761
|
||||||
|
519,600,349,354,401,629,820,556,605,332,386,190,805,840,832,940,385,221,228,394
|
||||||
|
261,914,858,235,673,243,403,174,280,803,667,672,597,840,52,456,394,94,253,582
|
||||||
|
98,134,800,493,796,139,329,168,453,527,838,896,167,337,391,51,800,663,410,578
|
||||||
|
132,945,215,519,823,326,295,655,710,280,326,181,214,639,516,427,512,138,932,717
|
||||||
|
633,233,570,600,939,584,942,639,934,514,402,61,696,609,383,393,604,976,142,872
|
||||||
|
423,71,654,553,587,168,702,674,909,398,764,737,123,223,616,620,594,491,589,244
|
||||||
|
253,63,765,333,862,539,447,658,54,342,515,921,400,388,666,386,936,712,725,536
|
||||||
|
602,326,564,184,326,640,589,429,525,675,769,692,582,544,949,904,163,760,621,764
|
||||||
|
626,605,900,550,781,777,524,284,167,843,320,534,820,644,521,683,904,77,262,756
|
||||||
|
614,386,705,789,569,640,900,122,194,92,582,830,60,556,839,532,488,196,750,796
|
||||||
|
141,394,623,453,512,763,1,531,133,322,565,713,867,288,812,223,941,225,605,283
|
||||||
|
631,558,726,533,132,542,134,96,591,52,601,258,613,694,74,225,801,836,519,644
|
||||||
|
860,268,224,450,648,722,808,55,897,390,554,619,619,358,641,64,552,574,499,96
|
||||||
|
480,396,878,492,565,873,523,901,844,669,901,901,532,518,322,697,275,550,756,426
|
||||||
|
705,263,611,856,335,234,81,860,625,207,421,696,223,265,643,198,290,229,514,179
|
||||||
|
676,626,492,263,246,221,355,395,857,665,853,832,570,134,361,450,659,823,909,666
|
||||||
|
860,499,210,720,131,698,588,820,76,164,187,848,858,564,128,81,633,418,403,386
|
||||||
|
199,634,825,179,787,220,336,912,544,601,502,898,80,639,293,425,388,788,186,484
|
||||||
|
780,784,318,700,198,711,908,94,454,596,575,254,543,845,588,402,389,246,834,131
|
||||||
|
943,674,170,78,850,722,820,449,838,639,910,532,53,447,775,714,514,451,171,577
|
||||||
|
357,784,635,197,524,585,914,262,277,209,530,11,199,277,186,905,675,456,828,487
|
||||||
|
310,286,268,54,899,617,229,491,186,865,179,427,66,603,328,869,551,331,601,823
|
||||||
|
220,917,430,620,940,765,541,573,768,803,115,79,757,773,637,652,484,395,765,482
|
||||||
|
136,558,657,762,670,907,574,336,588,604,489,764,211,353,329,839,723,724,781,301
|
||||||
|
170,665,194,232,899,235,620,596,997,574,576,766,230,770,919,193,638,215,267,897
|
||||||
|
901,207,647,618,639,532,896,911,212,589,335,80,226,554,5,657,944,644,122,232
|
||||||
|
272,810,212,135,51,571,895,272,584,293,152,242,555,762,514,639,872,562,594,261
|
||||||
|
820,659,621,223,673,488,492,387,182,258,634,630,256,203,54,636,898,219,349,596
|
||||||
|
529,280,321,50,520,918,258,517,758,854,607,755,388,989,550,944,123,866,525,641
|
||||||
|
621,271,915,598,484,621,260,525,647,166,201,328,985,289,725,921,78,263,837,712
|
||||||
|
618,168,477,525,796,649,138,534,542,872,661,252,122,841,254,869,917,278,264,600
|
||||||
|
520,482,522,797,556,321,632,329,454,247,448,785,868,162,58,781,619,324,59,79
|
||||||
|
195,619,835,803,418,205,585,261,360,294,324,269,361,357,258,218,864,442,724,202
|
||||||
|
816,232,721,220,658,821,184,816,694,393,384,69,237,638,840,712,699,1,807,359
|
||||||
|
840,519,615,870,257,946,243,807,335,97,255,317,451,575,329,603,803,533,823,325
|
||||||
|
236,612,821,455,592,936,218,321,97,797,264,594,62,691,634,359,200,216,796,610
|
||||||
|
752,570,801,214,185,494,818,863,936,573,521,563,222,985,170,606,247,860,214,126
|
||||||
|
612,667,776,581,699,718,906,389,254,335,949,614,861,95,615,652,128,790,455,939
|
||||||
|
756,635,522,811,526,419,828,799,534,664,873,389,338,430,124,199,512,284,576,704
|
||||||
|
752,138,666,131,864,660,223,586,212,623,234,700,632,297,611,92,768,620,751,491
|
||||||
|
283,334,848,70,239,199,760,63,867,320,934,543,237,267,433,76,839,314,671,220
|
||||||
|
189,820,401,605,597,71,938,859,799,268,550,669,844,4,671,79,68,667,721,614
|
||||||
|
700,716,556,909,512,418,226,581,403,422,349,800,946,275,872,133,761,526,673,693
|
||||||
|
1,284,513,769,754,197,642,243,62,215,51,935,633,563,714,400,601,183,565,360
|
||||||
|
940,758,701,132,94,53,265,577,166,512,618,259,566,920,779,771,889,384,424,358
|
||||||
|
175,816,857,129,625,867,362,400,780,609,534,762,136,537,694,200,72,207,568,209
|
||||||
|
220,16,769,836,97,863,200,128,609,947,916,168,839,257,661,122,66,651,60,575
|
||||||
|
395,98,675,344,660,627,139,80,942,139,401,659,292,194,329,334,70,63,693,906
|
||||||
|
97,166,153,806,81,551,840,399,767,773,556,639,358,822,523,788,516,137,865,328
|
||||||
|
216,797,386,219,543,199,70,842,766,938,801,841,268,169,272,713,487,143,127,54
|
||||||
|
654,361,853,712,131,185,663,813,556,321,796,552,53,817,733,524,400,78,77,577
|
||||||
|
451,845,432,657,70,140,768,403,420,822,279,628,648,501,655,199,358,532,828,395
|
||||||
|
671,197,196,420,821,3,603,223,900,902,216,209,622,850,482,92,198,218,419,50
|
||||||
|
456,843,219,781,909,604,583,582,865,937,274,518,71,876,480,166,226,801,72,184
|
||||||
|
855,594,644,715,247,340,287,654,214,530,723,901,169,480,722,192,656,552,540,900
|
||||||
|
785,93,588,665,840,282,58,228,243,92,269,592,786,634,853,256,687,655,634,839
|
||||||
|
774,870,289,629,620,209,6,58,490,607,246,717,429,819,941,520,693,831,620,76
|
||||||
|
57,526,72,288,701,944,356,266,252,934,900,660,133,614,485,362,312,949,451,816
|
||||||
|
572,385,762,243,835,940,543,390,835,605,534,769,212,283,68,755,805,206,726,227
|
||||||
|
908,526,823,126,215,204,807,762,760,480,871,835,702,202,751,71,704,641,804,509
|
||||||
|
255,225,65,921,481,74,755,713,186,285,98,132,258,445,821,831,58,433,76,220
|
||||||
|
927,249,491,421,491,241,78,754,565,606,320,697,484,215,710,634,284,420,577,513
|
||||||
|
554,561,486,289,943,520,429,532,262,582,426,614,360,801,627,387,491,926,934,840
|
||||||
|
710,60,758,769,937,905,709,258,250,921,418,710,332,648,334,330,331,551,845,883
|
||||||
|
203,566,208,422,915,821,645,646,524,769,620,386,656,902,850,576,939,115,803,238
|
||||||
|
259,455,224,693,781,21,217,946,577,232,295,525,617,532,432,749,841,67,323,262
|
||||||
|
576,136,419,58,773,229,323,523,941,571,975,280,170,52,596,137,816,801,259,835
|
||||||
|
565,388,535,578,285,849,824,258,842,661,847,580,766,173,583,180,324,944,838,781
|
||||||
|
187,579,57,71,138,692,656,237,419,388,940,323,532,58,776,754,764,934,725,689
|
||||||
|
494,665,283,595,798,689,600,262,568,901,483,206,609,602,851,808,220,905,126,573
|
||||||
|
322,455,614,454,449,245,231,798,628,851,701,418,571,260,71,138,84,522,167,337
|
||||||
|
571,721,719,698,533,78,494,716,283,564,764,22,197,267,550,936,197,763,828,595
|
||||||
|
291,718,899,912,691,514,519,286,522,261,524,74,53,125,328,252,825,274,692,655
|
||||||
|
214,217,912,79,219,192,858,289,165,522,360,583,563,671,877,780,230,520,906,642
|
||||||
|
448,852,544,749,766,133,837,821,556,358,514,898,286,225,519,285,325,801,875,782
|
||||||
|
259,215,834,644,605,123,642,833,235,840,803,452,395,419,576,704,513,724,170,422
|
||||||
|
819,454,360,325,623,72,828,567,542,849,66,65,543,722,292,328,306,56,231,533
|
||||||
|
701,542,638,53,78,353,611,453,400,285,593,284,511,914,155,554,645,486,259,643
|
||||||
|
603,544,521,600,871,632,697,835,327,74,823,601,185,60,800,493,825,359,304,830
|
||||||
|
665,230,122,843,489,906,747,124,193,718,224,725,613,139,561,270,448,854,611,641
|
||||||
|
241,711,132,641,902,837,659,596,945,802,419,94,542,613,178,239,632,659,92,853
|
||||||
|
82,230,628,51,511,418,185,938,872,385,631,402,849,838,136,455,518,323,181,612
|
||||||
|
713,334,605,562,250,290,783,540,713,433,58,426,418,721,639,511,248,173,934,786
|
||||||
|
494,637,192,92,237,722,615,77,208,581,383,15,524,897,336,637,869,509,393,164
|
||||||
|
326,571,423,664,800,667,531,216,663,660,841,264,603,873,941,521,636,984,522,769
|
||||||
|
904,72,872,779,847,835,383,807,138,662,335,20,643,942,902,624,432,835,327,452
|
||||||
|
209,199,541,219,569,54,421,826,944,249,587,663,627,245,454,618,345,798,260,859
|
||||||
|
693,391,993,355,264,401,516,73,184,860,488,819,847,286,946,857,275,562,139,293
|
||||||
|
592,781,776,812,218,812,780,240,916,325,688,700,528,669,673,620,55,905,779,96
|
||||||
|
168,279,851,619,421,701,213,510,74,715,442,756,138,222,391,628,233,353,552,215
|
||||||
|
289,845,182,701,775,400,667,429,287,721,531,833,896,347,514,93,248,861,637,621
|
||||||
|
946,525,21,819,203,286,866,749,287,599,783,787,846,845,448,389,387,527,777,62
|
||||||
|
406,716,510,765,842,920,637,74,388,224,403,243,205,852,243,869,134,532,98,386
|
||||||
|
763,860,587,805,329,717,596,127,673,134,527,865,819,409,335,58,75,715,565,556
|
||||||
|
183,870,399,0,398,943,289,863,668,717,332,639,763,66,909,832,765,543,856,217
|
||||||
|
54,225,185,428,769,664,757,236,845,613,938,453,52,700,217,915,94,224,451,107
|
||||||
|
909,946,586,896,718,284,981,921,591,359,867,531,671,268,644,914,618,481,642,710
|
||||||
|
325,290,489,776,839,710,596,187,711,530,171,623,821,664,842,201,811,454,657,247
|
||||||
|
638,220,331,209,656,123,67,384,649,135,260,943,611,585,677,581,553,797,538,334
|
||||||
|
249,384,532,780,571,456,908,80,566,58,543,261,53,253,105,725,725,188,782,512
|
Loading…
Reference in a new issue