Last active
December 17, 2020 00:19
-
-
Save SleeplessByte/25485d7fc08601dcfa22ab819414436e to your computer and use it in GitHub Desktop.
Advent of Code 2020: Day 16 - Ticket Translation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
rules, yours, nearby = File.read('input.txt').split(/\n\n/) | |
def ticket_values(nearby) | |
nearby.split("\n")[1..] | |
end | |
def category_values(rules) | |
rules.split("\n").each_with_object({}) do |line, categories| | |
next if line.empty? | |
category, values = line.chomp.split(': ') | |
categories[category] = values | |
.split(' or ') | |
.map { |range| range.split('-').map(&:to_i) } | |
.map { |(from, to)| (from..to) } | |
end | |
end | |
def invalid?(value, ranges) | |
ranges.none? { |range| range.cover?(value) } | |
end | |
def parse_ticket(ticket) | |
ticket.chomp.split(',').map(&:to_i) | |
end | |
def valid_tickets(tickets, categories) | |
ranges = categories.values.flat_map(&:itself) | |
tickets.map do |ticket| | |
values = parse_ticket(ticket) | |
next values if values.none? { |value| invalid?(value, ranges) } | |
end.compact | |
end | |
your_ticket = parse_ticket(yours.split("\n").last) | |
categories = category_values(rules) | |
tickets = ticket_values(nearby) | |
valids = valid_tickets(tickets, categories) + [your_ticket] | |
# This transposes the tickets from [ticket, ticket, ticket] to | |
# [column, column, column]. Makes it much easier to check all the values | |
# in a certain column, and is much faster than to skip over many values | |
# in many tickets to achieve the same _enumeration_. | |
transpose_tickets = valids.transpose | |
# For each column, find which categories would be applicable. This is done | |
# by seeing which categories' ranges satisfy _all_ values in a column. | |
category_options = transpose_tickets.map do |col_values| | |
categories.select do |category, ranges| | |
col_values.none? { |value| invalid?(value, ranges) } | |
end.map(&:first) | |
end | |
# Each category now has 1 or more options. This entire function can be | |
# optimised, because all input data will generate options of size 1, 2, 3 ... n | |
# which means that the logic to find which category can be assigned is | |
# much simpler than actually counting options and removing them once | |
# they've been chosen. | |
# | |
# naive 0.000000 0.000000 0.000000 ( 0.000074) | |
# sort 0.000000 0.000000 0.000000 ( 0.000035) | |
# | |
# But I like this more general purpose (naive) solution better. | |
=begin | |
column_categories = [] | |
categories.length.times do | |
index = category_options.find_index { |options| options.length === 1 } | |
category = category_options[index].first | |
category_options.each do |options| | |
options.delete(category) | |
end | |
column_categories[index] = category | |
end | |
=end | |
# Here is the optimised (sort) solution | |
column_categories = category | |
.sort { |a, b| a.length - b.length } | |
.each_with_object([]) do |options, result| | |
result << (options - result).first | |
end | |
end | |
your_ticket_with_categories = column_categories.zip(your_ticket).to_h | |
departure_fields = your_ticket_with_categories.select { |k,_| k.start_with?('departure') } | |
puts departure_fields | |
puts departure_fields.values.inject(&:*) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
departure location: 32-842 or 854-967 | |
departure station: 44-564 or 582-955 | |
departure platform: 35-904 or 915-970 | |
departure track: 45-117 or 133-961 | |
departure date: 50-697 or 714-969 | |
departure time: 48-205 or 221-973 | |
arrival location: 26-252 or 260-955 | |
arrival station: 45-337 or 356-963 | |
arrival platform: 45-507 or 520-961 | |
arrival track: 47-225 or 236-965 | |
class: 45-362 or 375-971 | |
duration: 30-264 or 281-959 | |
price: 50-397 or 414-960 | |
route: 40-460 or 473-958 | |
row: 49-634 or 650-957 | |
seat: 46-537 or 554-967 | |
train: 28-494 or 506-962 | |
type: 43-862 or 874-964 | |
wagon: 35-653 or 665-967 | |
zone: 36-200 or 206-969 | |
your ticket: | |
139,67,71,59,149,89,101,83,107,103,79,157,151,113,61,109,73,97,137,53 | |
nearby tickets: | |
892,600,250,783,477,902,794,938,819,560,755,264,607,520,737,312,324,92,307,639 | |
415,878,633,607,753,675,440,441,83,880,934,941,823,949,8,451,590,242,165,281 | |
754,328,624,175,284,765,854,459,302,926,859,607,587,574,522,595,115,798,737,895 | |
527,370,302,615,333,437,264,607,281,145,837,142,251,309,238,306,564,173,414,288 | |
177,194,417,134,717,714,560,385,783,439,60,535,523,838,932,659,189,787,448,251 | |
823,819,137,892,346,74,50,885,330,357,855,780,56,146,758,92,197,770,619,940 | |
877,379,114,858,609,221,688,179,207,77,245,733,835,97,940,443,763,391,432,159 | |
164,419,807,479,307,948,883,546,723,376,417,58,528,683,592,290,457,735,784,189 | |
653,556,586,171,256,904,557,291,939,324,860,862,937,554,903,823,917,454,311,717 | |
262,827,764,779,54,21,831,679,608,740,624,727,694,383,379,102,825,103,861,779 | |
524,197,298,829,623,855,734,54,285,691,889,840,554,99,841,707,53,795,300,305 | |
67,877,678,114,236,164,197,945,196,159,450,189,765,206,182,797,766,610,318,818 | |
617,196,107,106,310,385,285,102,892,745,901,808,838,668,939,921,814,84,547,260 | |
885,138,984,490,422,249,377,606,309,225,605,251,84,794,135,301,808,480,631,481 | |
64,723,101,860,309,689,594,759,244,911,632,304,303,55,63,140,163,361,152,430 | |
242,741,138,314,784,447,691,982,723,917,328,780,299,926,88,678,173,459,584,485 | |
881,490,300,854,412,187,623,333,743,630,838,760,779,523,145,329,762,753,380,79 | |
157,200,160,102,433,310,256,629,332,672,239,601,359,241,481,555,742,384,375,378 | |
574,244,145,792,486,734,806,84,826,780,763,742,596,103,138,623,887,823,388,82 | |
454,817,321,435,810,358,740,815,249,838,252,509,650,860,858,195,582,146,249,614 | |
61,245,300,309,634,748,427,593,796,438,377,155,652,466,281,151,880,632,731,310 | |
935,318,111,200,193,796,938,930,537,792,618,531,676,661,260,530,236,791,142,764 | |
822,264,597,631,564,98,84,818,157,433,341,722,924,584,783,459,441,167,479,558 | |
836,286,650,449,170,837,296,109,160,173,521,325,425,901,139,921,436,358,468,75 | |
70,199,181,453,243,148,691,469,242,53,788,737,927,903,377,794,745,488,715,74 | |
718,928,715,57,133,100,728,592,489,8,919,98,375,297,721,184,332,306,157,422 | |
803,169,733,293,793,55,913,221,431,112,94,138,682,598,688,714,671,331,239,594 | |
160,175,806,742,542,858,772,815,761,932,442,758,100,831,562,479,899,483,532,104 | |
180,63,586,683,417,924,944,758,928,829,310,610,657,117,453,891,301,89,263,755 | |
781,18,943,426,181,691,734,789,436,457,739,942,389,759,631,895,621,243,739,820 | |
732,249,317,875,900,860,562,491,459,727,859,891,480,696,89,718,248,351,834,812 | |
238,820,932,475,821,453,833,827,149,801,917,930,197,263,67,577,262,529,160,307 | |
237,807,284,948,665,225,802,341,108,683,606,740,383,493,244,309,946,134,762,766 | |
52,64,773,562,675,666,821,313,391,509,61,694,917,53,420,315,90,921,51,437 | |
804,776,24,185,456,821,288,622,860,892,920,830,744,631,561,792,949,315,245,616 | |
810,390,615,722,859,737,606,924,468,69,303,197,605,89,456,333,167,289,879,879 | |
477,102,817,494,115,134,794,101,894,522,942,779,459,723,719,524,308,700,617,833 | |
115,586,728,536,187,99,875,685,507,792,358,151,145,378,454,467,294,109,308,776 | |
520,430,630,604,840,939,617,168,167,240,332,188,261,564,987,379,320,735,522,53 | |
788,895,93,303,443,803,95,285,459,318,692,944,369,149,524,599,716,759,159,179 | |
306,293,685,732,820,764,410,356,78,168,695,246,93,285,71,148,932,554,199,147 | |
111,187,92,424,617,622,487,751,881,985,506,152,262,389,804,676,322,60,317,183 | |
538,450,62,252,813,797,535,624,939,178,437,758,88,310,651,802,452,250,534,150 | |
984,318,806,696,433,475,422,769,928,137,842,858,727,557,176,560,524,116,584,327 | |
933,335,877,775,729,725,80,390,751,78,933,170,56,254,860,443,382,780,854,112 | |
312,918,156,416,806,517,415,475,797,650,792,818,829,813,856,774,397,563,728,423 | |
803,727,770,561,674,22,311,564,64,305,616,759,72,786,601,666,86,147,946,820 | |
314,564,934,197,135,837,135,899,61,682,334,460,676,889,521,396,395,212,598,776 | |
206,237,563,677,474,533,308,798,780,759,764,112,692,416,486,76,595,940,97,523 | |
292,450,743,741,521,65,940,605,337,823,822,350,945,770,452,676,823,690,494,476 | |
144,150,820,174,918,840,61,798,143,160,665,625,464,243,479,97,882,449,776,321 | |
558,785,536,324,431,583,744,732,302,391,301,359,490,892,172,362,836,150,513,396 | |
412,523,726,675,115,786,885,925,633,688,424,877,308,794,785,583,429,319,694,882 | |
176,775,614,666,461,586,882,65,769,805,488,926,937,289,455,596,485,784,330,733 | |
897,597,813,144,294,224,735,149,940,314,733,78,58,824,721,207,249,456,831,777 | |
674,834,426,251,620,817,383,630,881,176,449,139,787,811,97,722,87,461,85,360 | |
392,160,782,358,810,190,709,134,889,561,823,159,376,828,113,627,633,325,811,262 | |
838,697,597,841,745,899,915,190,948,827,672,627,239,673,767,917,434,24,449,440 | |
242,652,312,617,138,900,750,252,625,949,608,685,250,327,788,458,521,374,736,830 | |
897,588,715,988,200,781,328,361,628,337,262,318,103,193,178,224,306,673,774,486 | |
261,191,674,826,828,742,419,170,430,341,379,901,236,694,153,301,393,322,884,329 | |
435,298,318,797,751,557,442,883,422,252,658,176,883,767,115,332,898,819,630,940 | |
288,491,333,860,655,442,752,718,886,387,916,941,438,296,422,71,535,61,738,837 | |
824,819,599,334,815,238,816,645,68,238,621,816,457,240,858,427,58,295,735,362 | |
305,242,155,762,78,314,806,531,942,375,782,440,612,165,477,739,254,523,133,758 | |
75,297,319,105,86,410,747,171,528,757,885,741,281,386,667,935,680,289,919,104 | |
899,935,609,392,764,941,595,74,613,58,417,798,254,310,172,650,94,164,827,763 | |
383,378,222,182,433,460,894,802,888,873,727,772,172,886,812,809,481,603,242,933 | |
880,134,182,50,752,588,774,680,921,599,225,615,166,844,835,791,726,190,614,117 | |
195,494,942,183,330,604,476,908,175,141,917,91,718,899,601,929,69,806,945,90 | |
889,453,772,425,331,176,460,252,739,614,286,936,889,726,60,397,890,832,186,472 | |
938,481,921,595,687,432,848,189,61,736,306,882,262,557,750,161,438,531,613,931 | |
724,362,828,68,181,287,739,918,806,334,683,61,810,802,141,668,164,441,248,408 | |
171,826,534,443,80,425,719,884,285,473,665,23,302,284,195,805,632,819,794,601 | |
802,800,658,433,717,771,96,883,91,144,613,778,935,589,526,697,949,51,854,337 | |
56,723,299,389,784,536,826,532,50,521,773,920,583,489,925,876,792,550,148,316 | |
770,525,433,92,86,784,88,380,732,247,96,998,459,762,752,833,60,734,756,530 | |
321,224,66,157,327,522,21,595,617,452,675,99,813,555,607,520,82,487,605,821 | |
199,305,95,616,149,731,321,782,297,653,66,336,632,500,671,721,920,724,838,670 | |
758,335,740,687,414,225,482,618,190,645,138,768,251,331,944,782,742,486,682,308 | |
422,95,492,108,187,561,755,282,305,915,771,254,786,167,677,430,57,691,920,669 | |
494,820,730,932,197,897,687,925,92,110,314,561,442,386,719,903,861,683,841,371 | |
659,899,434,62,667,109,249,238,799,361,88,524,288,614,948,109,485,329,729,426 | |
295,747,650,383,858,935,806,616,259,446,380,379,99,779,94,287,283,765,139,64 | |
748,50,298,84,776,20,723,199,760,237,482,54,193,445,939,534,680,58,930,599 | |
511,80,95,162,666,582,530,525,432,671,919,286,150,448,562,771,807,148,802,249 | |
604,685,89,101,777,491,902,396,685,679,98,626,313,489,760,299,537,591,824,513 | |
537,175,918,89,486,431,899,620,402,138,483,756,832,769,761,70,384,534,361,330 | |
734,327,588,889,155,616,839,191,687,592,388,622,918,199,486,22,294,686,486,626 | |
635,523,144,779,182,697,562,554,379,453,289,381,679,943,438,650,168,805,74,594 | |
170,310,456,144,596,931,772,668,50,542,668,264,554,316,806,945,75,558,532,356 | |
799,557,252,777,746,885,757,324,929,59,729,454,116,795,418,161,662,653,717,141 | |
804,109,103,492,486,195,72,146,439,887,778,56,80,320,999,141,650,311,601,803 | |
719,61,115,459,100,433,336,522,738,681,256,102,617,395,904,318,535,167,888,807 | |
113,730,855,485,925,722,187,722,79,367,528,821,729,744,858,738,877,148,424,941 | |
862,670,51,437,823,532,855,56,134,424,674,187,157,689,108,941,370,737,439,221 | |
916,66,829,735,206,816,313,535,336,899,768,299,652,175,897,314,285,679,178,182 | |
104,95,434,246,188,822,423,599,701,283,818,778,802,261,102,715,780,615,290,750 | |
503,673,483,802,59,665,388,68,776,148,190,731,720,809,535,614,651,522,687,414 | |
142,288,245,746,800,326,506,779,553,193,530,332,899,777,252,157,385,592,762,922 | |
862,719,942,877,474,161,596,827,107,144,653,108,689,930,114,650,605,520,423,978 | |
628,889,631,772,930,381,917,746,58,861,488,162,948,765,486,117,927,21,112,936 | |
387,16,65,137,862,195,53,670,859,193,722,87,379,59,839,758,563,815,288,82 | |
427,901,429,81,78,535,652,245,179,880,197,318,286,643,837,809,143,935,245,78 | |
239,651,834,288,807,809,921,388,605,24,379,752,140,862,70,562,804,313,87,901 | |
875,669,225,480,777,835,917,802,928,179,102,302,482,79,620,850,487,616,94,592 | |
432,663,774,293,114,773,795,146,680,775,796,144,176,430,860,529,298,615,186,414 | |
761,561,668,321,603,816,775,58,752,281,222,597,302,797,813,741,327,657,691,676 | |
287,627,197,601,558,156,347,527,76,285,114,829,878,91,808,769,696,816,70,537 | |
878,286,456,762,903,683,534,485,611,420,451,307,17,395,949,784,453,384,107,937 | |
744,329,943,883,737,53,448,127,200,888,113,186,191,878,915,458,161,379,789,379 | |
898,829,622,527,289,984,133,822,731,457,811,115,191,717,423,785,822,455,782,591 | |
264,65,891,716,877,376,286,604,845,159,430,523,884,717,651,104,917,842,170,607 | |
931,789,110,173,327,833,920,566,492,922,812,530,97,286,808,284,861,453,620,523 | |
392,562,379,685,327,141,1,749,293,685,745,150,752,598,777,484,774,760,197,616 | |
358,930,790,915,507,442,807,326,945,901,776,417,610,83,289,258,634,831,878,444 | |
182,688,809,799,776,719,521,94,54,82,822,64,778,18,379,832,81,252,631,336 | |
925,800,668,161,303,716,783,714,943,138,140,459,9,669,190,193,677,522,740,76 | |
376,89,385,239,558,921,418,366,554,881,757,862,602,100,195,76,940,667,764,97 | |
157,892,476,814,385,688,225,258,597,736,946,362,684,758,68,735,627,528,380,81 | |
585,781,79,84,288,421,454,827,67,306,527,831,488,127,444,694,335,691,777,173 | |
626,146,243,422,323,375,225,918,154,997,375,83,720,855,306,520,433,802,766,221 | |
796,284,247,418,984,727,886,779,813,137,90,718,81,632,807,801,477,238,329,738 | |
778,692,334,304,935,160,893,322,903,427,842,143,721,236,991,292,782,773,562,80 | |
528,755,522,893,485,934,528,459,808,490,603,655,809,738,455,191,78,916,163,74 | |
114,861,281,299,295,798,553,98,98,948,889,380,263,936,437,433,686,360,893,299 | |
80,192,236,383,377,809,947,52,916,707,594,474,67,818,742,806,487,824,73,176 | |
773,743,356,522,487,890,936,722,639,813,809,607,822,169,601,63,288,802,78,680 | |
237,288,732,945,938,771,369,876,481,69,223,829,426,694,894,140,874,336,109,762 | |
244,680,767,753,612,262,650,413,940,288,862,89,421,433,53,328,537,880,435,298 | |
58,358,786,934,328,507,916,196,263,994,831,945,60,594,521,731,858,826,302,236 | |
330,386,723,193,822,745,673,448,755,535,735,677,778,511,163,949,898,460,194,783 | |
816,608,735,430,775,823,841,91,237,558,931,251,634,541,163,786,109,172,903,334 | |
603,932,727,742,922,326,668,800,938,901,325,389,782,924,902,695,768,429,259,773 | |
709,522,805,588,477,172,897,439,920,889,382,104,739,804,619,261,165,251,317,115 | |
173,88,588,87,135,446,441,537,240,435,809,600,690,227,523,247,730,416,828,797 | |
55,136,924,674,359,256,861,194,715,790,149,307,686,889,414,797,827,64,185,782 | |
263,559,240,106,585,464,198,138,291,325,532,875,593,943,751,633,751,697,481,631 | |
155,722,381,862,290,939,507,888,719,941,748,111,221,890,239,60,192,510,250,789 | |
341,626,187,438,300,632,68,94,814,102,336,507,191,595,53,856,441,282,80,330 | |
177,826,283,592,302,238,666,716,70,466,285,172,423,246,59,584,673,308,287,158 | |
855,378,460,312,568,836,154,473,480,134,250,670,800,921,193,557,887,793,857,54 | |
905,800,171,936,75,168,474,318,875,76,89,920,322,181,383,386,716,165,904,289 | |
895,841,74,584,934,525,377,532,790,133,811,114,944,881,225,298,750,258,935,942 | |
671,918,720,841,242,387,882,698,558,389,688,187,161,727,439,315,622,610,725,892 | |
440,105,807,336,434,750,193,526,263,225,636,291,426,785,679,883,854,727,883,319 | |
307,799,80,838,446,836,438,195,108,482,241,992,791,763,529,380,193,743,389,184 | |
417,757,9,153,607,634,95,680,170,811,531,479,246,261,251,112,425,78,133,937 | |
460,145,178,478,454,159,52,611,242,597,299,617,260,991,196,592,157,756,668,923 | |
295,859,766,670,486,626,309,897,570,443,313,375,199,100,53,610,293,306,191,524 | |
757,835,818,112,782,774,428,787,532,432,51,450,689,391,673,796,84,694,644,689 | |
833,746,922,311,158,51,922,935,133,624,81,735,635,690,747,881,252,293,854,630 | |
782,766,691,50,65,787,607,765,793,123,811,99,170,376,133,928,59,196,90,832 | |
760,816,584,781,65,945,728,194,536,178,364,556,896,380,109,633,178,483,302,390 | |
478,670,724,478,835,184,488,848,814,619,666,822,650,62,737,321,878,64,322,185 | |
810,735,792,694,414,752,512,200,144,242,743,666,766,362,531,715,856,455,745,759 | |
381,697,779,531,716,224,136,798,659,163,144,532,860,379,888,436,933,799,527,794 | |
436,452,600,805,437,929,902,448,731,834,327,88,588,188,0,854,748,85,444,160 | |
605,730,991,751,108,177,171,527,778,889,305,69,396,396,555,614,162,935,78,605 | |
803,933,765,918,590,137,678,526,152,681,0,753,183,326,170,668,298,457,756,824 | |
840,732,564,184,526,721,886,215,200,95,876,673,737,288,892,835,454,186,817,779 | |
856,788,67,426,748,595,597,438,913,761,756,324,437,651,938,449,729,622,331,527 | |
894,684,375,669,839,802,745,599,222,64,190,807,946,307,891,401,252,876,555,947 | |
765,338,927,95,811,598,140,769,536,487,556,159,290,305,677,294,286,359,489,103 | |
226,628,697,157,115,592,623,524,61,696,423,170,63,456,858,181,674,325,634,484 | |
305,586,222,7,675,115,332,556,82,781,795,775,397,388,388,111,828,670,247,874 | |
684,855,80,719,142,416,171,586,722,255,609,734,426,830,323,110,282,904,824,182 | |
937,767,752,717,686,723,77,331,783,530,115,415,354,894,813,481,299,895,306,793 | |
360,433,678,284,601,652,98,556,20,52,818,482,246,302,938,379,173,288,155,292 | |
161,397,327,64,697,786,891,311,831,734,600,946,730,398,824,385,288,382,361,506 | |
112,458,91,156,165,347,833,530,141,610,918,473,189,165,320,450,687,455,300,93 | |
949,56,99,221,416,686,181,650,857,929,676,307,530,170,332,793,632,767,195,660 | |
583,7,835,146,789,96,156,521,329,397,222,876,738,476,806,183,460,525,193,317 | |
84,490,559,715,611,225,990,237,51,69,812,110,758,917,261,241,51,298,250,192 | |
472,790,817,745,325,555,584,454,631,675,878,854,826,440,263,620,556,770,937,583 | |
785,301,676,246,420,2,188,936,537,653,772,134,93,435,807,881,140,920,772,491 | |
854,901,182,945,836,170,768,441,824,478,874,361,244,769,393,762,244,400,915,287 | |
902,620,414,426,11,56,621,827,446,775,328,249,333,618,155,836,612,140,141,73 | |
260,101,727,876,537,621,462,437,381,65,697,285,506,302,625,679,382,313,377,375 | |
623,81,821,292,111,740,648,289,587,630,147,832,537,942,729,830,394,610,750,188 | |
608,716,457,172,438,108,617,94,819,80,312,74,311,70,804,263,625,893,411,359 | |
332,262,887,590,650,919,837,483,356,230,531,801,238,442,596,335,679,801,622,890 | |
223,665,718,881,527,714,779,772,72,595,487,738,55,328,585,526,181,560,368,772 | |
753,803,389,522,823,651,607,804,64,860,755,784,378,623,158,778,831,874,654,493 | |
60,83,99,330,387,802,895,133,289,658,133,101,484,665,452,157,928,533,335,824 | |
876,432,743,90,180,830,196,521,442,7,396,102,438,287,922,926,447,316,89,795 | |
826,185,153,441,683,214,329,529,89,595,947,337,792,337,894,688,883,262,426,166 | |
140,311,590,826,489,788,838,330,947,741,856,105,162,151,373,391,291,675,423,860 | |
489,622,489,190,297,240,610,657,159,597,670,754,282,916,675,678,768,587,825,245 | |
282,780,248,813,562,284,302,509,385,395,889,57,753,245,261,187,95,322,160,221 | |
357,422,140,819,729,830,458,749,811,55,475,386,803,626,104,366,291,724,441,284 | |
252,396,861,65,513,491,554,110,774,74,833,117,70,184,474,597,191,64,333,634 | |
894,558,939,85,898,743,111,501,381,772,537,933,790,448,88,51,765,245,237,453 | |
193,96,759,822,506,362,424,610,341,225,111,456,159,923,555,595,306,444,677,875 | |
147,89,456,102,143,262,808,522,112,420,481,373,619,778,65,112,379,247,414,732 | |
786,918,780,684,367,829,144,58,854,589,449,282,251,200,633,761,140,931,246,621 | |
725,829,804,95,947,289,937,925,365,93,897,149,456,880,225,393,747,238,740,728 | |
557,58,89,527,423,714,483,71,170,99,694,593,78,437,148,9,383,449,606,161 | |
309,113,750,136,620,773,429,938,423,848,133,855,361,943,92,618,68,198,489,383 | |
494,747,170,181,440,139,418,717,251,219,362,882,833,323,417,760,802,489,163,526 | |
312,288,781,685,949,137,310,165,506,411,239,767,669,422,158,633,523,289,423,299 | |
301,100,237,815,884,423,263,720,138,280,767,393,98,789,609,90,613,441,238,802 | |
96,9,332,56,457,309,944,688,296,809,667,319,302,717,732,763,937,627,651,110 | |
363,584,949,251,154,152,506,616,949,681,394,861,763,429,676,604,945,776,758,223 | |
185,255,155,300,93,81,592,727,294,770,420,937,564,329,144,440,922,622,691,817 | |
670,447,673,527,531,899,724,334,594,246,298,769,511,841,448,629,100,285,159,880 | |
414,292,796,684,938,753,98,597,454,395,418,938,381,676,81,536,437,643,221,820 | |
296,766,387,453,422,584,86,604,828,95,60,184,584,365,102,325,613,947,895,526 | |
52,136,612,690,414,939,748,933,305,574,915,820,668,331,249,105,182,916,115,458 | |
127,375,222,879,388,817,169,898,454,615,146,73,237,64,222,831,812,460,239,783 | |
359,798,144,904,110,417,396,281,251,223,249,61,893,729,813,549,58,391,770,766 | |
311,480,322,925,753,526,217,771,619,685,85,63,163,537,859,388,329,593,920,314 | |
263,588,476,778,778,641,609,812,819,248,674,839,440,73,175,716,446,526,93,397 | |
521,665,583,92,176,308,380,807,68,491,281,3,753,793,99,251,236,756,691,309 | |
760,842,145,152,827,192,788,423,693,831,139,106,854,908,139,173,361,165,395,387 | |
633,282,561,828,827,812,582,285,178,294,478,378,177,295,194,80,874,741,180,257 | |
305,604,414,438,685,756,175,135,123,935,947,261,625,820,526,323,396,833,786,298 | |
169,487,506,252,588,432,426,430,24,605,593,282,247,727,612,727,391,478,90,114 | |
222,161,821,381,356,263,771,777,889,785,746,396,920,19,284,74,316,719,102,147 | |
524,423,326,935,286,442,659,288,391,103,305,678,805,304,294,941,736,948,242,749 | |
876,803,776,494,652,591,318,736,665,153,73,51,758,722,236,50,749,732,617,338 | |
261,859,260,188,436,629,87,900,238,189,525,310,360,344,263,827,386,143,532,752 | |
939,583,385,238,153,224,842,589,585,498,607,391,876,490,608,588,318,378,457,162 | |
917,652,370,198,808,808,822,894,932,172,154,335,390,156,292,476,174,378,750,375 | |
846,240,490,523,441,731,145,809,426,261,61,925,156,793,329,358,785,728,782,81 | |
258,750,616,630,807,150,942,608,299,438,68,440,245,824,611,921,915,591,247,555 | |
875,534,237,152,647,59,172,93,721,486,165,329,300,858,874,426,781,240,431,85 | |
524,485,76,261,673,632,571,79,433,152,106,936,744,945,87,833,632,166,309,460 | |
113,314,530,927,477,658,444,606,165,588,72,738,875,459,756,733,738,189,238,793 | |
457,195,691,877,308,993,387,610,618,884,840,139,426,947,816,732,236,393,384,819 | |
614,307,298,667,430,305,854,397,596,436,808,559,199,701,163,617,817,787,321,740 | |
879,76,139,827,441,334,592,434,162,284,446,886,899,613,449,287,696,161,350,630 | |
279,862,633,428,744,174,695,765,105,321,602,136,884,77,925,241,223,885,197,715 | |
198,113,51,763,788,995,812,678,107,884,823,835,108,589,424,732,221,627,796,137 | |
86,585,821,584,679,152,197,874,183,439,476,92,326,784,141,649,283,162,195,429 | |
931,653,901,242,583,174,779,795,814,899,518,923,309,769,84,287,767,87,684,738 | |
558,179,64,415,375,535,331,842,555,808,52,301,144,251,488,344,64,140,300,838 | |
188,391,116,437,88,172,897,752,515,891,224,900,674,925,64,623,804,668,64,749 | |
834,54,948,444,55,389,328,878,80,763,301,856,884,477,666,798,949,574,419,320 | |
829,943,690,535,55,545,933,356,194,297,240,536,336,200,937,562,523,774,148,286 | |
286,733,387,690,821,370,238,419,611,417,331,728,177,775,290,437,162,431,310,585 | |
782,561,773,172,818,112,604,728,107,54,896,629,675,782,622,513,477,731,885,260 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment