Compare commits
7 commits
9b78a63fba
...
c81ea4f786
Author | SHA1 | Date | |
---|---|---|---|
c81ea4f786 | |||
eafc6ef723 | |||
8b74765fe1 | |||
9a3c7d078c | |||
f0c4e6341d | |||
796c396af8 | |||
79a6b87c53 |
19 changed files with 4128 additions and 0 deletions
84
2.rb
Executable file
84
2.rb
Executable file
|
@ -0,0 +1,84 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
result = File.readlines("2.input").map(&:split).map { _1.map(&:to_i) }
|
||||||
|
.select do |v|
|
||||||
|
(v == v.sort || v == v.sort.reverse) &&
|
||||||
|
v.each_cons(2).map { _1.sort.inject(:-).abs }.all? { 1 <= _1 && _1 <= 3 }
|
||||||
|
end.size
|
||||||
|
puts result
|
||||||
|
|
||||||
|
require "rspec/autorun"
|
||||||
|
class Report < Array
|
||||||
|
def self.from_line(line)
|
||||||
|
new(line.split.map(&:to_i))
|
||||||
|
end
|
||||||
|
|
||||||
|
def safe?
|
||||||
|
(increasing? || decreasing?) && within_limit?
|
||||||
|
end
|
||||||
|
|
||||||
|
def safe_with_dampener?
|
||||||
|
dampened.any?(&:safe?)
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def dampened
|
||||||
|
size.times.map { Report.new(except(_1)) }
|
||||||
|
end
|
||||||
|
|
||||||
|
def except(v)
|
||||||
|
reject.with_index { |_, i| i == v }
|
||||||
|
end
|
||||||
|
|
||||||
|
def increasing?
|
||||||
|
self == sort
|
||||||
|
end
|
||||||
|
|
||||||
|
def decreasing?
|
||||||
|
self == sort.reverse
|
||||||
|
end
|
||||||
|
|
||||||
|
def within_limit?
|
||||||
|
each_cons(2)
|
||||||
|
.map { _1.sort.inject(:-).abs }
|
||||||
|
.all? { 1 <= _1 && _1 <= 3 }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
input = File.readlines("2.input")
|
||||||
|
|
||||||
|
puts "2-1"
|
||||||
|
puts input
|
||||||
|
.map { Report.from_line(_1) }
|
||||||
|
.select(&:safe?)
|
||||||
|
.size
|
||||||
|
puts "2-2"
|
||||||
|
puts input
|
||||||
|
.map { Report.from_line(_1) }
|
||||||
|
.select(&:safe_with_dampener?)
|
||||||
|
.size
|
||||||
|
|
||||||
|
describe Report do
|
||||||
|
[
|
||||||
|
"48 51 52 53 52",
|
||||||
|
"86 87 88 91 91",
|
||||||
|
"22 25 28 31 32 36",
|
||||||
|
"65 66 68 69 71 72 75 82"
|
||||||
|
].each do |line|
|
||||||
|
it "returns safe? as false for #{line}" do
|
||||||
|
expect(Report.from_line(line).safe?).to eq(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
[
|
||||||
|
"1 2 3 4 5 6 7",
|
||||||
|
"1 3 5 7 9",
|
||||||
|
"9 8 7",
|
||||||
|
"1 4 5 8"
|
||||||
|
].each do |line|
|
||||||
|
it "returns safe? as true for #{line}" do
|
||||||
|
expect(Report.from_line(line).safe?).to eq(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
11
3-1.rb
Executable file
11
3-1.rb
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
problem = 3
|
||||||
|
input = File.readlines("#{problem}.input").join
|
||||||
|
|
||||||
|
result = input
|
||||||
|
.scan(/mul\((\d{1,3}),(\d{1,3})\)/)
|
||||||
|
.map { _1.map(&:to_i).inject(1, :*) }
|
||||||
|
.sum
|
||||||
|
|
||||||
|
puts result
|
21
3-2.rb
Executable file
21
3-2.rb
Executable file
|
@ -0,0 +1,21 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
problem = 3
|
||||||
|
input = File.readlines("#{problem}.input").join
|
||||||
|
|
||||||
|
enabled = true
|
||||||
|
result = input
|
||||||
|
.scan(/mul\(\d{1,3},\d{1,3}\)|do\(\)|don't\(\)/)
|
||||||
|
.map do |cmd|
|
||||||
|
case cmd
|
||||||
|
when "do()"
|
||||||
|
enabled = true; nil
|
||||||
|
when "don't()"
|
||||||
|
enabled = false; nil
|
||||||
|
when /mul/
|
||||||
|
if enabled
|
||||||
|
cmd.scan(/(\d{1,3}),(\d{1,3})/).flatten.map(&:to_i).inject(1, :*)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end.compact.sum
|
||||||
|
puts result
|
6
3.input
Normal file
6
3.input
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
select(){,(where()+-mul(514,727);:]]what():^*from(764,547) mul(550,305)$^^%>select(587,376)mul(94,564)select()when(633,175)<where()mul(260,379)mul(790,810)&!$%mul(557,683) why(){/mul(220,10)!+{+mul(654,746){who()what() !%mul(89,191)who()select()*#&>[[mul(302,490)$-}&**+mul(335,535)@select()>select()mul(241,166)when(800,629)mul(758,530)',^ &!~%/#mul(938,70)?&!from();mul(412,287)}/mul(230,620)(~select()what()select()'@mul(410,577)$mul(720,516)-mul(373,78)when()!^:@{)mul(793,973)who()when()mul(85,246)>what()}[#[@!^/mul(396,22)@when()-;:':>}mul(515,670)<[mul(38,415)?~<?mul(200,147):mul(328,235)*<what() (] ::what()mul(571,33)mul(679,122)>select()why()^when()*#+($do()']select()>:^/when()^mul(440,923)<what():mul(971,274)(mul(833,181))don't()why();{#mul(468,401)$+?mul(446,956)where()mul(391,995)who(813,746),^who()%how()^when()mul(284,629);[why()mul(922,806)%}mul(183,352)where() [{,why(475,275)mul(547,62)$mul(753,602)*!%where()-mul(956,732)$;what()<;'{:*mul(481,556)from()*{select():what()'#mul(905,420)what()mul(327,771), who()}mul(45,757)mul(366,653)where(459,755))don't();when()mul(807,855)where()$)>@mul(48,816)mul(370,665)@*>who()^,when()mul(155,426) mul(132,914)^%select()&when()/from()(+}mul(296,176)mul(361,479)%{;!,'who()where():mul(506,495)#who()&%< ^mul(481,87))&!;mul(541,563)%don't(){}'-),from()$mul(495,427)^when()mul(640,499)select()}:] )%+()mul(967,918)?when()select()<{/who()what()mul(505,225)(mul(90,482)>!from()when()#do()mul(620,841):who()!mul(719,850)where()-)mul(931,185)?;select()]@,why()%]mul(39,103)mul(687,103)$%];how(337,314)[}$-when()mul(282,494):;!where(188,779);who()mul(342,554)<^who()(why()where()who(345,491)%mul(407,74)why()&}'%'mul(324,781)mul(90,925):from()mul(828,16)mul(438,549){what()>$why()*what(35,607)mulwho()mul(91,548)>,what()select()]&how()@mul(384,93!select(),where()$mul(835,662)@{don't():#<^/-+mul(489,462)>>where(){why()where()---when()mul(53,461)/~?mul(273,777)mul(119,879)+@'when()-mul(585,949)?['when()from(946,632)mul(22,105)>-:how())from();mul(439,876)?mulwho()@who()when()<@{-mul(111,687)$&mul(432,628)%*,{when()mul(287,508)'-select()}don't()/#~-@from()[:#mul(111,655)%: &;mul(518,391)don't()<from()%-~-!@mul(301,138)(,how()mul(654,521)!*when()--({who()how()don't() ~where()!~mul(910,877)?+select()+-[#&do()*< +-what()&how()%$mul(123,641)*?&mul(488,741)<}@@&?what()how()what())mul(301,649);why()%mul(259,148)$~')&[{mul(83,94)~select()~^when()mul(232,572)mul(889,281)why()%*#$}<[mul(256,607)}({mul(382,953)what()how()why() who()from()!?%mul(433,147)+>&mul(197,749)@who()*mul(935,21)+> who()why()mul(299,881)who()]@+%/from()[?do();{+[why()$select()#mul(264,731)]'select()what();+who()mul(713,161)where(931,649))mul(360,529)}where()!;]how()<mul;$-:]]how()#where()select()when()mul(971,836)when():[how(){mul(567,429)!}{{',mul(522,696),why(){mul(833;#-&#,select()~mul(80,121)+*,#how()select()${>how()mul(619,728)how()<%}+}mul(420,324);{!from();mul;)>mul(144,181)who()}?~where():who()${ mul(261,691),why() /+mul(189,450)
|
||||||
|
+when()%^]]/when()~@mul(533,22)mul(231,586)mul(107,724)!@mul(504who()@}when(291,528)mul(691,859)/}#mul(726,544)from()[>>what()^<mul(316,707)@&why(),what()mul(798,459) why()~)]mul(612,148)[??when()]*~mul(634,978)mul(477,947)<?(&!;what(724,289)@~^do()who()mul(828,259)mul(595,267)who(671,135)}why()&how()mul(351,552)when()how()^>?^from(762,977)mul(67,280)(who()^mul(586,844)}how()<from()mul(521,525)'select()mul(379,96), mul(478,481)where(465,218)mul-&*: ~mul(123,281)when()mul(249,626) <}mul(190,620)mul(21,142):from(278,629)}how(997,873)when()'from()#mul(117,186)^:]when(128,617)mul(940,708);mul(960,867);[,~when()when() mul(135,71)where(972,23)mul(79,533)how()* )%<&do()@>how()+where(),mul(886,320)#from(691,802)mul(376,296)'why()[@}how()#why(530,714)?>mul(791,363)?what()$${@why()>+mul(133,626))why()&}what(){%(mul(474,459)what()where()(^mul(311,372)mul(243,118)where()@mul(302,760):{who()-'{+mul(145,293)}why();how());$]mul(652,761%? ;]:@mul(259,51)@<mul(369,322 +#!mul(99,991):from()/}mul(137,230)why()}^%^{}select()where()mul(226,287)mul(590,394)[>>'mul(474,995){don't():}*mul(309,511)?select();(mul(553,164)]how(){when()mul(556,560/~when(464,361),^<#[/&do()when()&who()<mul(618,347)]/what()&mul(210,454)@,'^/%who()mul(297,766)who()&:{mul(961,326))&:#')what(663,984)mul(340,326)mul(329,543)%^#/{!mul(28,451)}@@mul(428,233)^%<-how()mul(710,863)[mul(944,973)[where()~[]where()'%~why()don't()!,@#%mul(582,87)$[[@ mul(569,58),]mul(746,840)[(mul(74,146)'where()(#+;mul(517,818)mul?*[->*mul(22,727)from()):who()when()}mul(367,34/when()where()mul(226,816)mul(421,33'(,(#, <who())what()mul(247,12)+when(199,246)who()what(912,935)~?select()how()&how()mul(620,264))how(726,381)/!mul(586,607)#when()[mul(684,722)&%-from()mul(11,63)&where()<select()^)<%select(127,191)mul(662,331)}% mul(631,2)~]mul(987,288)mul(261,47)]{when()>?who()do()%;+-<what()#*+mul@]@?[^mul(650,139)<who()[#don't())}-from()?:who()[mul(561,710){~+how()don't()mul(788,270)mul(151,849)+{;%[#~mul(531,530)how()>:-mul(99,868)#{[why()who(504,690)?mul(119,337)+,mul(250,122))%#%mul(708,536)>select();from()mul(480,332)}&what(423,278)mul(891,459)}mul(852,128)mul(418,844)~select()[{when()(mul(69,312);!)where(419,852)<:*@-don't()what()!$-;{mul(91,636)-when()select()~from()(&mul(894,19)how()]@,[do()#,what()'@mul(116,57)why()from(),@-?mul(651,74)]what(704,54)how()<$mul(169,494) )from()$~-mul(44,491)$mul(29,368)'why()+-+mul(961,385)>who()select(137,499)mul(586,30)$%when(765,538)?why()(mul(378,568)}select()[:[%?$from()don't();mul(375,803)#']/@/^}*where(184,703)mul(21,508)>;+,mul(921,355)};mul(594,553@<?when()what()%%when()*don't()-<,from(342,971))mul(983,69!!!mul(980,691)why()mul(200,735)select(435,520){?mul(489,554?~!mul(212,991)/#<$!<*mul(751,323)mul(102,317)when()},^;why()mul(51,80)}+what()$~[mul(454,897)'/);(>%])mul(793,439)]from(599,582)mul(982,538)}//^;how()~)'from()don't()~&who()<+#+mul(386,116)>/~who()mul(373,106)+#!do()(&-select(),+~;~mul(59,223)mul(233,653)mul(547,404)?where()~%don't()}}select() from()@] from()mul(150,196) ]}(>mul(514,824)where()+mul(332,418)
|
||||||
|
/>'^')what()mul(590,783)?$when()mul(55,422)from()~]select(198,113)from():}don't()mul(436,985)^:select()from()@//don't()/mul(675,976)$from(),!&]#*&don't()*[#how()~/*mul(172,297)<-{,select()};mul(866,305)$mul(938,509)+>mul(100,651)%where()how(223,719)/){!!;(mul(163,66)+''when()mul(217,127)^},(why()how()what()]who()mul(39,897)>/(mul(966,889)-]'}{,<mul(488,570)$@select(){do()~$@mul(878,77)why()-^mul(670,359)-]select()#{:}[mul(56,569);do()}}what()why()/what()[$mul(614,976)when()who()^'where()(mul(852,588)who(){how()}@when() $mul(532,868)}mul(603,823)#>+,!$$<mul(517,713)/&(select():where(910,84)[select()mul 'select(899,120)from()from()>why()from()mul(338,824)where()/&;mul(230,684)@'where(354,854)- )%when()mul(288,730){from()){}where()mul(124^}'(&don't()mul(688,399)from()++[how()why()mul(136,861who()!?#select()!]where()!do()&how()where()when()mul(968,380)'-$select()why()&:;mul(906>select()^~who())>:*mul(433,704)&why()#who()%@;what()>;mul(848,947) from(497,742)?select()~mul(590,692)why()* ,(<<)where()*mul(102,487)when()]where()>*when()!mul(406,710)mul(962,153)who()who()what()+&from()mul(419,854)$/mul(201,493)from()-)select()'^:[!;mul(779,883)why()why()}?why()(don't()what()]%~{mul(966,261)how()[when())^when()]mul(513,694)/*:when()select()who()'mul$?++~?:$mul(657,498)$ &why()mul(310,762)^+what()~,what()why()why()#}mul(320,448)%mul(886,159)(]what()?'@why():[mul(415@who()$what(){select()who())mul(912,558)select()<mul(614,536)don't()!%{mul(224,83)#why()who()where()+$mul(266,718)[where(437,374)?+who()};<+mul(939,819)'$mul(24,251))mul(101select()why(){how()when(),%mul(86,947)[<}^()%where(526,396)mul(694,25)^;do()what(); (how(307,882)mul(285,650)*%who()[#{what())/~mul(95,593)where()who(){/when()why()mul(931,886)&mul(110,763)}>where()%'why():mul(784,109)-&:-]mul(354,211):*#~mul(637,881),$from()mul(947,709)what():,'mul(284,267)&from()mul(259,860)/^],&(when()when()^mul@select() how()!mul(462,151)~,)where()mul(7,166)**what()<~<do()who()(how())why()}@[([mul(478,668)+!how()mul(118,569)^&;when()-@ mul(181,739^who(432,515)$mul(105,134)where()<from(880,223)who()select()%]mul(489{&>mul(137,598)^]~>mul(561,283)*@ ;select()mul(262,658)who()<,-what()/-why()mul'$;;-]<mul(7,931)?& ^+)where()mul(345,667)/^'mul(3,959)@%when()mul(522,907)~~ ]&%*how(106,70)mul(986,967)!where()when()mul(754,736)where(515,293)why()how()-:!mul(750,438)why()/~ mul[@'['>#why()>mul(510,757)$what()who()>mul(139,401)where()^#&/*mul(332,919)>?how()]when()/mul(218,127)[+mul(504,583)why()$>^mul(649,222)@?don't()from()&what())&'^mul(878,444),,mul(340,684)when()'why()when()?why()mul(852,617)mul(569,36)~(select():>~&/when()@do()<why(444,49)[#[?##^mul(298,203)([why()?,++:}mul(263,671),mul(197,758),';mul(893,114)who()^(,(#why()[*mul(917what()select()[where()from()&'@ [:don't()'+ ($]<where()*{mul(269,55)from()%!select()how()who()where()@mul(81,174)from())^who()mul(872,888&when()>why()from()>who()where()mul(93,146)(;why(863,117)mul(681,428);#mul)$from()how())?{] mul(793,537)where() @~?++?when()why()mul(163,958)select()}who()mul(540,501)$when()#who()/mul(331,537)[>~why()what(395,317)[)[mul(928,496):mul(127,943)$>mul(18,669)?&mul(443,860)when()!;;&select()*mul(624,669)[}:,*>]mul(941,338)?%where()((how();<~when()mul(483,529){)/'+'~$mul(254,159)when():when()'*!??%mul(731,125)when(670,595)]^^from()'?]mul(912,606) ):[^do()#{;?-mul(851,526)>'!'mul(689,174) >?{)how()/;what()mul(919,455)]mul(320,219){#+) {mul(267,831)((from()&:[-from()mul(84,102)mul(291,186)/+}*mulhow()?who()-*mul(973,390)
|
||||||
|
(~{$where()why(250,398)/how()&#!/usr/bin/perlwhy()-{{#^%>mul(772,422) 'how()}&)mul(184,89)$<how()what()%*~mul(197,267)*)[^mul(703,592)when(), ;why()select(151,652){{>what()mul(376,816)when(),@#mul(949,642)'/+select() [mul(399,146)[~who(){;~ mul(526,131)when()mul(787,620)@~+?from()@-mul(310,482)}:$?what() ,mul(360,720)/why()why()#)^mul(561,462)+@:-{who()mul(403,894)from(),}{(('?!mul(555,514)?-:#&]$-mul(18,725)??mul(901,195)how()mul(814,623)$;~)select()/mul(4,986)#,{-]{!*~mul(833,296)/?mul(496,21why():@/#[what();mul(162,231))>~do()select();+*^?}?mul(38,18)?*who()&why()/who(479,558)from()%,mul(225,613)mul(494,841)'who()%@+{>&~mul(586,498) select()*!/]};<mul(818,498)(}#@+mul(795,500)mul(285,406);;: ,mul(404,65)]] ;!when()+what()''mul(201,457how()%mul(489,759)!who():where()?mul(381,280when()mul(312,151)who()^-mul(236who();who();(&?&]&]mul(393,302)&>-; /what()where()mul(614,161){select()where()+!what()/-mul(927,228)mul(432,16)when()?&+'^mul(539,745)]^when()what()mul(970,413)+<&:don't()$%mul(533,997))-mul(574,681)mul(978,225)&![who()why()(>mul(453,460)why()*+how()~!why()where()*-mul(840,804)>+mul(570,880)/>how()'-~*;+mul(367,248)$@what()mul(303,242)when()?>!!!-what()>%mul(547,184);when(300,185),^mul(196,377)~<{,[@from()when()from()'mul(727,421)>mul(199,873)],select()-+<&where()mul(962,772):what()/[${how()<*where()mul(534,770)select()/how()>*mul(356,156)((%where()}~how()#who()mul(801,644)from()mul#select(458,914)how()where()~}(}what()mul(273,584)who()mul(692,224)(>what()where();%,-mul(779,81)<[~who()!mul(786,30)]':mul(328,225)/when()#])(>:?:don't())*/mul(914,292)why()mul(83,290)[~mul(257,792),;+]*mul(949,612)*{;[-:]$^]mul(813,824)]/mul(5,572)}+don't():)from()*[>+(#who(422,860)mul(243,781)<-mul#<*<#&{?/'mul(579,115)(:mul(861,206)?)<why()how()why()when()/&mul(919?''/?',mul(859,273) '/&~why()[who()]/mul(865,638)-<$(when(534,151)what()mul(756,102)''<% ]mul(521,726)how()*;*-~'~mul(830,632)><&{>;mul(331,573)mul,^->,~>?who():<mul(294,77)/,:/}},mul(477/who()what()@<}why()mul(113,420)?+,mul?why()(*+[>from()mul(463,386)['{*>],when()?mul(740,88)]<[where()from()-]mul(685,334)+how()}how()^mul(973,106)select()$+mul(867,634)do()@-?mul(535,483)how()$<mul(478,385))[#&mul$@/select()#$[}:#]mul(965,153)why(110,391))}how()mul(484,578)who()-<mul(847,771)/mul(921,939), ~when()%mul(981,816)$[how()$*who(578,752)>[mul(161,41)]where(),#,mul(129,507)don't()who()what()<how()mul(554,49)(^:mul(618,748)$%<:<> mul(214,987)[ *^*[&mul(870,285)when()how())(+)+who()^<mul(581,483)]mul(921,982:]*%how()<mul(434,655):+mul(242,610)mul(614,631)what())where()how()what(932,531)what()where()}why()%mul(494[<;what()% %how()+mul(357,150)who()?mul(949,239)mul(802,54)where()!where()*?+/mul(209,916)&&&select()mul(637,422)-,~why()?)where()^mul(502,914)(how(913,389)^how()what()what()@ from(382,173)where()mul(860,112)/don't()'['#when()mul(110,847-mul(828,62)mul(370,262)@[!][^#why()@mul(693,119)who()$what()$&mul(399,511)from()}-who()(when() *do(),&*(#}mul(395,383)why()how()>how()how()'why(990,834)<@from(535,913)mul(741,712)why()when()who()@>-*!mul(296,759)$@where()mul(585,923)where()who()/why()]}>mul(163,233) ;;what(771,674)when()mul(553,949)select()when()'mul(545,530)
|
||||||
|
( !>{!-*}mul(646,888)]-?<mul(908,145)mul(872,423)<why(523,766)$;what() &mul(724,993)]}from();>why()+mul(359,478)why()mul(186,893)]where()what()when() >select()mul(592,52)where()select()from()[select()from():~'/mul(164,308)what():>^)why()how()$&who()mul(377,499)why()((where()@~who(),mul(658,47)#how()+%from()'/select(287,448)]~mul(759,688)!<?%;}*mul(623,353)&#;~{mul(830,695)do()mul(755,160)-?{mul(138,691)mul(161,105)do())*&:who(592,695)![/mul(542,698)why()%/*do()[$from()~[mul(274,212)>@?]{(~mul(196,596)who()+mul(759,422)/@[#>where()mul)-how()>$&:$@},mul(861,458))mul(126,262)@;<how()(mul(986,49<)^[///[mul(615,656)-}): when()/mul(266,494)/)who()who()>what(){};:don't()#mul(695,332)>what(),why()#++%select(){mul(471,679)^select()/mul(387,568)when()%(]*how()>do()' ^]?mul(777,56)>where()(why()select(14,295)mul(874,481)!from(){;~how()@mul(22,505))~who())when():&mul(395,566)-(~what(231,98)$$;$mul(326,815)>from() select()^who()#mul(189,720)what(),from()don't()>%+/mul(418,532)-;):<when()[<%mul(561,959)/<*~/{mul(518,185)? ,select() <do()who()who()select()from():where()?when()mul(327,206)mul(501,728)',what(675,175):from();what()/{:don't()mul(219,962)when()'mul(7,809)/$;mul(768,798)mul(353,892)?from()! when()what()->don't())@:#<mul(899when()*;}^ &mul(506,552)mul(703,677):#}mul(13;when()don't()&/+><from()what()-{mul(801,431)(/mul(330,809)>!when():$[:<['mul(764,131)$:@&[from()%+~ mul(258,284)from(810,941)&how(232,473)mul(338,578);/select():mul(990,919)from()how()>[{!}mul(69,711),when()+do()}/[#who()*mul(907,255)?!}{]*mul(781,224)#select()<mul(400,377)mul(224,640)/@{why()mul(97,222)'~:select()mul(723,191)<~how()&->mul(755,122))<why()^]why()]mul(348,579)]where(758,732)mul(939,550)^]when()what()@*{don't()'+/:how()]}@@mul(21,125)mul(138,133)mul(482,114)where(),from(),*from()!/;[don't()why()what()how()mul(732,224)?!#?***!mul(823,749)%#/@*<what()mul(980,685)!;:/~} <$mul(51,373)$-!who()mul(523,713)!)~{%mul(16?;[who()!$how()&how()mul(461,976)#mul(108,138)when()@'} ;(;mul(194,793)~%' ?from()select()[when()mul(79,491$*#%:mul(914,754)$' where()$who(){why()mul(692,138)+;*}mul(853,262)why()$mul(15,398why()*>-:[',mul(863,596):how() who()%select()select()[what()do()+where()^+mul(722,58)^[,how()?#^ !:mul}&select()~{}mul(885,728)when()?mul(468,630)?where()from()select()>*~:don't()%#}$@-)mul(200,579)why() mul(10,435):)/;@{;mul(298,190)where()why()$ mul(9,631);where(7,826)@-don't():':;[,!@+mul(273,471)mul(325,690)mul(267,174)mul(339,952)}what()>)>@mul(307,862)do()why(335,510)]&>( mul(636,749)(-mul(592,773)!mul(2,50+'#mul(338,514)#;why()where()mul(127,711)@mul(146,911)mul(860,601)%select()mul(806,306)mul(410,847),:[mul(73,481)+don't()>}<what()mul(826,657<+ {*^? what()mul(172,949){'~+#mul(732,513)how()'/why()*+/#&)mul(11,422)+'%@+when()$why(383,170)how()mul(190,688)]!{select();who()what()mul(450,687)from()what()mul(171,95)how()how()where()mul(631,790)~how() @$why())[mul(893,598)mul(39,888)#([/what()!]*}mul(290,685)!#who()[$do()^+@what());{$mul(463,742):$mul(118,146)@mul(39,34)what() <,when()@@mul(489,439)mul(874,442)how()~where()^who()select()-don't()/:how();when():$)mul(975,618)why()mul(732,833)where()mul(17,484)
|
||||||
|
(>&)]mul(509,882)*/@~*<!&mul(813,280)::$+-*^mul(741,365)]()what()from(804,684)mul(734,644)*<]]%who()}[^don't()when()!;)mul(55,766+!select(797,794)@where()mul(595,285)why(807,706)/when(298,410)what()select()mul(439,186):mul(976,645)>where()-!mul)$do()where()?mul(308,113)/@?why()<where(35,826)&mul(127,972)^%<~??[!%;mul(781,845)/?#(select()mul(949,130)#{-#,mul(612,396)*{@@%'/mul(343,689)>where()>%mul(970,425)~[$@'[mul(83,136)+<%who()who()who()^~where()mul(960,152)when()mul(714,401)how()?]from()*!what(313,652)mul(455,389)select()why()<-[)%:(%mul(929,53[-@%~;%]where()why()mul(293,806)from(258,940)[mul(959,603)!@)why()?{{$mul(744,798) '{}&<&?,mul(389,91)#'select()@,who()/$<mul'who()where(634,260)^*$mul(625,376)@what()&mul(7,35)#)?!how(714,530)don't()from()who()>($-@,mul(792,652)how()mul&)!do())-}?~select()>mul(527,656)mul(220,657)who(453,708)mul&when()/when()+ how()how()%%@mul(62,191)'{%,mul(13,233)mul(780,237){from(817,212) when()mul(216,970)@what()}<: - ;mul(954,521)+mul(645,579)mul(695,53)%{},mul(927,488)$/$$what()&what()mul(815,350)](select(){;mul(650,656)&<:what(70,971)* mul(452,286)select()#&)when()+mul(438,390)>what()/mul(353,213) &from()~mul(920,652)~mul(971,287)don't()select()}/mul(4,595)where()-mul(332,353);>+mul(64,192)mul(33,846)}'where()(:mul(13,41)[@!^][(^$mul(728,587)what()>^&what()>who(73,62)why()where()mul(501,624)(%!mul(187,871),;>from()(, mul(563,884)]]/[who()mul(685,629){where()from()@@',who()why()<mul(741,377)'+{+'$+^/mul(69,647)!-mul(338,68)!why()mul(752,772)-'from()'what(){[&-mul(193,86)don't()from(899,805)how()what()+'+^mul(492,628)};from()*when()#?select()mul(20,602))-:where()mul(34,881),how()}mul(777,504){;mul(425,245):how()</:&}%mul(504,651)mul(193,8)+&who()+!^*{mul(247,144)}[#;when()where()mul(857,787); % (>;mul(57,598)mul(799,387)why()?mul(963,99)*-!''when()mul(606,12)who()]how(), mul(615,921)/what()from(858,351){how()#who()@mul(379,934)~/{mul(871,792)<[+&mul(206,542)mul(154,161)-when():why()[mul(663,226)>from()from()?#mul(320,293)>select()!@;from()where()<^~mul(865,92)mul(834,118)select()#>mul(36,886) why()[>,,))select()mul(777,447)what()};<>how()from()*mul(942,312)how()]mul(810,261)select()@+>)'){mul(356,987){mul(33,198)[select()from()where()({mul(752,594)$why()who()>,?^where()->mul(478,705)why();select()from()when();]/]from()mul(878,617)@who()<how()%;mul(951,929)<& ~mul(193,497) (mul(670,912)&from()*from(57,764)mul(872,457)]mul(411,192)@from(247,487)@*'select()mul(830,878)when()<?@!~why()mul(103,203)([- ;who(37,653)who()+{mul(574,907)$mul(288,478)'who()@select(453,494);-where()why()#mul(418,593)+^%>-who()[&&mul(554,90)#+:^do(), <{mul(978,459)/##[^ ]how(); mul(470,763)mul(342,6):&mul(192,104)from(220,224)[mul(309,253)$}mul(98,92)[mul(690,632)how()why()!>@mul(880,975)~/<what()}mul(233,433),>what()why()/*[mul(663,3)when()[@! )&,~^mul(965,150)#~},%^(]from()mul(503,640)::where()mul(146,66)&)~[mul(37,741)mul(714,547)/;
|
123
4-1.rb
Executable file
123
4-1.rb
Executable file
|
@ -0,0 +1,123 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
problem = 4
|
||||||
|
@input = File.readlines("#{problem}.input").map { _1.chomp.chars }.reject { _1.empty? }
|
||||||
|
#@input = DATA.read.split("\n").map(&:chars)
|
||||||
|
|
||||||
|
def diagnal?(x, y, dx, dy)
|
||||||
|
if dx == -1 && dy == -1
|
||||||
|
return false unless x >= 3 && y >= 3
|
||||||
|
|
||||||
|
return @input[y][x] + @input[y-1][x-1] + @input[y-2][x-2] + @input[y-3][x-3] == "XMAS"
|
||||||
|
elsif dx == -1 && dy == 1
|
||||||
|
return false unless x >= 3 && y <= @input.size - 4
|
||||||
|
|
||||||
|
return @input[y][x] + @input[y+1][x-1] + @input[y+2][x-2] + @input[y+3][x-3] == "XMAS"
|
||||||
|
elsif dx = 1 && dy == -1
|
||||||
|
return false unless x <= @input.first.size - 4 && y >= 3
|
||||||
|
|
||||||
|
return @input[y][x] + @input[y-1][x+1] + @input[y-2][x+2] + @input[y-3][x+3] == "XMAS"
|
||||||
|
#elsif dx == 1 && dy == 1 -- SHRUG
|
||||||
|
else
|
||||||
|
return false unless x <= @input.first.size - 4 && y <= @input.size - 4
|
||||||
|
|
||||||
|
return @input[y][x] + @input[y+1][x+1] + @input[y+2][x+2] + @input[y+3][x+3] == "XMAS"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def horizontal?(x, y, dx)
|
||||||
|
row = @input[y]
|
||||||
|
|
||||||
|
if dx == -1
|
||||||
|
return false unless x >= 3
|
||||||
|
return row[x] + row[x-1] + row[x-2] + row[x-3] == "XMAS"
|
||||||
|
end
|
||||||
|
|
||||||
|
if dx == 1
|
||||||
|
return false unless x <= @input.first.size - 4
|
||||||
|
return row[x] + row[x+1] + row[x+2] + row[x+3] == "XMAS"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def vertical?(x, y, dy)
|
||||||
|
col = @input.transpose[x]
|
||||||
|
|
||||||
|
if dy == -1
|
||||||
|
return false unless y >= 3
|
||||||
|
return col[y] + col[y-1] + col[y-2] + col[y-3] == "XMAS"
|
||||||
|
end
|
||||||
|
|
||||||
|
if dy == 1
|
||||||
|
return false unless y <= @input.size - 4
|
||||||
|
return col[y] + col[y+1] + col[y+2] + col[y+3] == "XMAS"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
xmas = 0
|
||||||
|
h = 0
|
||||||
|
d = 0
|
||||||
|
v = 0
|
||||||
|
puts "Scanning"
|
||||||
|
puts " - x: #{@input.first.size}"
|
||||||
|
puts " - y: #{@input.size}"
|
||||||
|
(0...@input.size).each do |y|
|
||||||
|
(0...@input.first.size) .each do |x|
|
||||||
|
next unless @input[y][x] == "X"
|
||||||
|
|
||||||
|
if diagnal?(x, y, -1, -1)
|
||||||
|
xmas += 1
|
||||||
|
d += 1
|
||||||
|
puts "Diag LU at #{x}, #{y}"
|
||||||
|
end
|
||||||
|
if diagnal?(x, y, 1, -1)
|
||||||
|
xmas += 1
|
||||||
|
d += 1
|
||||||
|
puts "Diag RU at #{x}, #{y}"
|
||||||
|
end
|
||||||
|
if diagnal?(x, y, -1, 1)
|
||||||
|
xmas += 1
|
||||||
|
d += 1
|
||||||
|
puts "Diag LD at #{x}, #{y}"
|
||||||
|
end
|
||||||
|
if diagnal?(x, y, 1, 1)
|
||||||
|
xmas += 1
|
||||||
|
d += 1
|
||||||
|
puts "Diag RD at #{x}, #{y}"
|
||||||
|
end
|
||||||
|
|
||||||
|
if horizontal?(x, y, -1)
|
||||||
|
xmas += 1
|
||||||
|
h += 1
|
||||||
|
end
|
||||||
|
if horizontal?(x, y, 1)
|
||||||
|
xmas += 1
|
||||||
|
h += 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if vertical?(x, y, -1)
|
||||||
|
xmas += 1
|
||||||
|
v += 1
|
||||||
|
end
|
||||||
|
if vertical?(x, y, 1)
|
||||||
|
xmas += 1
|
||||||
|
v += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
puts "Diag: #{d}"
|
||||||
|
puts "Hor: #{h}"
|
||||||
|
puts "Vert: #{v}"
|
||||||
|
p xmas
|
||||||
|
|
||||||
|
__END__
|
||||||
|
MMMSXXMASM
|
||||||
|
MSAMXMSMSA
|
||||||
|
AMXSXMAAMM
|
||||||
|
MSAMASMSMX
|
||||||
|
XMASAMXAMM
|
||||||
|
XXAMMXXAMA
|
||||||
|
SMSMSASXSS
|
||||||
|
SAXAMASAAA
|
||||||
|
MAMMMXMMMM
|
||||||
|
MXMXAXMASX
|
66
4-2.rb
Executable file
66
4-2.rb
Executable file
|
@ -0,0 +1,66 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
problem = 4
|
||||||
|
input = File.readlines("#{problem}.input").map { _1.chomp.chars }.reject { _1.empty? }
|
||||||
|
#input = DATA.read.split("\n").map(&:chars)
|
||||||
|
|
||||||
|
mas = [["M", "M", "S", "S"], ["M", "S", "M", "S"],
|
||||||
|
["S", "M", "S", "M"], ["S", "S", "M", "M"]]
|
||||||
|
|
||||||
|
x_mas = 0
|
||||||
|
matches = []
|
||||||
|
(1...input.size-1).each do |y|
|
||||||
|
(1...input.first.size-1).each do |x|
|
||||||
|
next unless input[y][x] == "A"
|
||||||
|
|
||||||
|
corners = [
|
||||||
|
input.dig(y-1, x-1),
|
||||||
|
input.dig(y-1, x+1),
|
||||||
|
input.dig(y+1, x-1),
|
||||||
|
input.dig(y+1, x+1)
|
||||||
|
]
|
||||||
|
|
||||||
|
if match = mas.find { corners == _1 }
|
||||||
|
matches << [y,x]
|
||||||
|
|
||||||
|
x_mas += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
relevant = matches.map do |match|
|
||||||
|
[
|
||||||
|
match,
|
||||||
|
[match[0] - 1, match[1] - 1],
|
||||||
|
[match[0] - 1, match[1] + 1],
|
||||||
|
[match[0] + 1, match[1] - 1],
|
||||||
|
[match[0] + 1, match[1] + 1]
|
||||||
|
]
|
||||||
|
end.flatten(1)
|
||||||
|
|
||||||
|
# input.each_with_index do |_, y|
|
||||||
|
# input[y].each_with_index do |v, x|
|
||||||
|
# if relevant.include?([y,x])
|
||||||
|
# print v
|
||||||
|
# else
|
||||||
|
# print "."
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
# puts
|
||||||
|
# end
|
||||||
|
|
||||||
|
p x_mas
|
||||||
|
# wrong
|
||||||
|
# - 1968
|
||||||
|
|
||||||
|
__END__
|
||||||
|
MMMSXXMASM
|
||||||
|
MSAMXMSMSA
|
||||||
|
AMXSXMAAMM
|
||||||
|
MSAMASMSMX
|
||||||
|
XMASAMXAMM
|
||||||
|
XXAMMXXAMA
|
||||||
|
SMSMSASXSS
|
||||||
|
SAXAMASAAA
|
||||||
|
MAMMMXMMMM
|
||||||
|
MXMXAXMASX
|
140
4.input
Normal file
140
4.input
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
MMSMXMSASXMXAXMAXSASXXXMASAMXSMMMXMMXMXMASMXMASMSMXSSXMASXSMMSASMSAXAMXMAMMMSAMXXXMAMSMXMMMXMASXMAXXMMMXMMSAMXAMMSMSSMSMMMSMMXSXXAXMXSAXMASX
|
||||||
|
XAXMASMXMASASXSXAMAMXMXMAXAMXSASAMXMAMAMSAMSSXMMAXASXAMAMSMAXMXMASMSASASASAAMAMXSMSMSAXAAXXAMSSMXMXSMAMXXAXAXXASXAMAAXAAXXMAXAXXMMSSMSSXSASA
|
||||||
|
XMASXXXASAMAMASMMMAMMSASXSXMASAMMAXSAXXXMASXMASMSMMMMXMAXAXXMSAMXMAAXSASASMXSAMAAAAXSASMMMMMSAXMASAMSAMSMMSAMSAMAMMXSMSXMASXMASAASAAXMAMMAMM
|
||||||
|
SSMSMSSXMMMAMSMAXMAXXMAMMAMSXMSMMMXMAMSXSSMXSAMXXAASXMSMSMSMMSXSAMMMMMAMXMXAMASXMSMMMXMAAAXMMMSMAMAMMMMAAXMAMSAMXXXMAMAASXMAAXXMXMSMMMSMMAMX
|
||||||
|
XXAXAAAMMSSMMXASXSMSSMAMSAMXAXXXASMMSMSASAMXMASMSXMXAAXXAAAAASASAMAXSMSMSSMSSMAAXAXAMXMMMSXXAXAMSSSMMSSMSMSAMSMMSMXMMXSMSASXSXMMSMAMAAMAMASX
|
||||||
|
MMMMSMMAAAAMASXMAAXAAMSMXAMSAMXSMXAAAAMMMAMASMMMASXSMMSSSSSSMMMMMSAMSXASAAAAAMMXSXSMXSSXSAXAMMMSMAXAAXAMXAASAMXMXAMXMAMXSAMMMXXAAMXMMXSAMAAX
|
||||||
|
XAAAXAXMMSSMASAMXMMSSMMASMMSASXMXAXMMMMAMMSAMAAMAMXAXMMAXAMAMXSAMMMMMMMMSSMSMMXMAMMMAMXMMAAXMASAMXMMMSAMSSMXMASMASMAMXSAMXMAAMMMMSSXSASASXMS
|
||||||
|
SSSSSSMMAMXMASXMAMXXXAMAMMASXMASMSMSAMXSSXMASXMMSSSMMAMMMSMMSSMASAAXAAAAXXAMXSASMXMMXSAXMSMMSMSASXSSMMAMAXXXXAXSAMXXSAMASASMSSSXSAMAMXSXMAXS
|
||||||
|
MAMMMAAMSSSMASXSSSSMMMMAMMAMASAMAAASXMAMMMMMXMASXAAXMXMXAMAXSAMAMXSSSSMSAMXMASASXMMAMSAMXXXAAAMAMXMAMSSSMMMXMSXMMSXXMASAMMXAXAAXMAMASAMASMMS
|
||||||
|
MAMMSSMMAAXMXSAMMAAXAAXMMMXSASAMMMXMSMMSAAXXAMXSMXMMMASMSSSMSAMXSXXMAXAXXMAMXMAMXAMAXMASXMMSMSMSMMSMMAAMXMMAXMASAMXXMAXAMXMXMMMMSXSAMASAMXAX
|
||||||
|
SMSXAMMSMSMSAMAMMSMMSMMAAAXXASXMAXSAMXAMXMSXSAMMMSAXSASAAAAASMMASMMMMMXMXSSMSAXXMSSMXMAMAMXAAAAASAMXMMSMSXMASMMMXASMMMSAMSSMSSSXSAMXSAMASMSS
|
||||||
|
SXMMXXAXXMAXXMAMXAXAAMSSMSXMMMAXMSMSMMMMSXXMAAMAAMMXMASMMSMMXASAMAASAMXSAAMAMAMSAMXMAMSSSMMSSMXMAMMXAXMASXSAXAAMSAMXAAMAMXAAAAAMMAMAMMSMMAMS
|
||||||
|
SAXMXMMSMMSMMSMSSMXMSAMXAMXSMMSMMAMAMMMASAMMSMMMXXSASXXXMXXMXMMASMMXAMAMMSMMMAMAAMAMASAAAAAMXMXSMMSSMMMSMMMMSSMXXAXMMXXAMSMMMSMASXMMSMAXMMMM
|
||||||
|
SXMMAMMAXMAXAAXMASAMXAMSASAXAAMMSMSASAMXSAMXXXXMAASXXMXMXAXXAXSXMAXMSMSMMXMXSASXMSSSMSMSMMMSAMXSAMAAAXMAXXAAMXMASMXMASXMMXAMXXXXASXMAMXMXXXX
|
||||||
|
XMASXSSMSSXSSMXSAMMSXSXSAMAMMMSAAASASXSMSAMXSMAMMXMMSXSAMSMSSXSXSXMAXMXAAXSAXAMAXAXAXXXMASAMAMASAMXSMMSMSSMSSMSAMMASAMASXXXAMXXMAAXSAMXMSMMM
|
||||||
|
MSXSAAXAAAXXXXAMXMXMAMAMXMXXAAMMMMMAMAXAMAMAXMMXSAXSAAXSAXMAMMXAMSSXMASMMMMASAMSMMSSMMMSXMASAMXXAMXMXMSAMXAAXXMAXSAMAMAMXSSSMSXMXMMMXSAAAAAS
|
||||||
|
ASAMMMMMMSMMAMXXMMAMAMAMXSMSMXXAXAMMMSMASMMSXSMASXXMMSMMMMSSSSMMMAMMMAMAMSSMAXXXAAAAAMAMASMMMMSSMMXMASXMSMMMSMSMMMMSAMSSMMAMAAMMMXMAAMMSMSMS
|
||||||
|
MMAMXXAAXAAMMMSAMSASASAXAXAAMXSSSMSXAXMAMMAXAAMMMMXAAMXXMASAAASXAASAMXXAMAAMASMMMMSXXMASMMXASAMAAAAMSMAXXAAAAMAMMMMMXSXAMMAMSMSAAXMMMSAMAMXX
|
||||||
|
MSSMXSSMSSMMAAXAXSXSMSXSMMSMMAMXAXMMMXMAXMAMSMXSAMSMMSASMSSMSMMMSSMXMMMSMSSMAXMAAMXMSMMSMASAMASXMXMSASXMSSMSMSASAAMMMMMMMMXMAASMSMXXAMXSAXMX
|
||||||
|
XAAXAMAXAAMSMSSMMMMSAMMAMMMMMAMSAMXAXXSMSMSMXXAMMXAAAXAMMMMMMAMAXAAASASAAMXMASASXSAXMASMMAMXSMMXSAMAXMMMMXMAASASXMMAASASXSMSMXMAMXSMSSMMMMSM
|
||||||
|
MMMMMSAMSSMXMAAASAAMAMSAMAAMSSMMASXXMAAAAXXAMMMXSMSXMMXMXAAAMAMXMSMMSSSMSMMMASMXAMMMXMMAMXXXXASASASAMXXSAMXMMMAMAMSSMSASAAAAMAMAMXSAMXAXAXXA
|
||||||
|
SXSAMXMMXXAAMXXMMMMXXMMASMMMAAAXAMAASMMMMMXAXAMAMXXASXXXMXSSMMXSAMXXXXMXMXAMXSXMMSMSAMMXMASMSAMMSMMMMMMMASMXSMSMSMAMAMXMMMSMMAXAXXMMMSSMSXSM
|
||||||
|
AAMSMASXAMSSSSXSXXSSSSSXMAMMSMMMMMSMMAAXXASXMMMASXSAMAMSMXMXAAAMSMSSSMMASXSMASAMXAASASXMXAAMMXMASAAAAAXMSMMAAAAAAMSMXMSXMMMMSMSMMMXMASXAMASM
|
||||||
|
MMMXMXSMXMAAAMASXMXAAAMSMXMXMXSAXMAXXXMMMMXMAMSAMXMAMAMAASASMMMMXMAXMASASMAMAMAMMMXMXSASMXMXMSMASXSMSXSXXAMXMMMMMSXMASMMMAAXXMAMAMAMXSMSMAMX
|
||||||
|
SXMASMXAAMSSSMAMAAMMMMSAMAMMSASXSMSSSMAAXSAMAMMASXSSSMAMMMAMXSAMAMASXXMAXMAMMSSMSXXMAXXXAASAMXMAMXMAMAMXSAMMSXASMXMMSAMXSMSMMSSSMSASAXAAMAMA
|
||||||
|
AAXASASXMMAAAMSSXXSXSXSAMMMAMXSXXMAAAAXSXXAMXMXAMXXMAMXXXSAMXSASMXSMAXMSSSMMMAMXSXAMSXMMSMSASMSSMMMXMAMASAMAXMMMSASXMASAMXAAXXXAASAMMSXSXSSS
|
||||||
|
SSMAMASAMXMSMMXMXMXAAASMMSMSSXMASMMSMSSMMSMMASMXSSSSMMSXMSAXASAMXXMASXXAXAAXMAMMMSMAMXSAMXSAMXAAAAXMSXMAMAMSXSXAMMMXMAXAMSSMMAMMMMXAXMAMAMAA
|
||||||
|
AMMSMAMXMMMAMXAMAAXAMXMAAXAAAASMASAMAXAXAAAXAXMMMXAMAAAXMXXMXSXSMXMAMXMMSMMMSAXAAXMAXMMASAMAMMXXMMXASMMMSMMMASMMSASAMXSXMAAAMXMAXXMXXMAMAMSM
|
||||||
|
MXAMMSMMAXSAMSASMSAAXXSMMXMMSMMXMMMSXMAMSMSMMMXAMXMMMMSSMAMSAMXXASMAMXAXXAMAXMSXMXMMSAMXMXMAXMMSMSXSXASAAMAMMMAXSASASAMAMSSMMASMSSMMSMXMAMXX
|
||||||
|
XMASXMAXAAMAMSAXAMMMMMSASAMXXMXAXAAMAMAMXAXMSMSSSMSAASAAMAMAAXAXAXAASXMMSAMSSMSAMSAMMMMAMMSXMSMAASXMSMMSSMXSMMSMMXMXMASAMMAASXSAAXXAAAXMSMSM
|
||||||
|
AAMMMXAMXSMSMMAMMMAMAASAMXMSMSSXSMSSXSASXMMAMAAAAAXMSMMSSSSMSAMSXXXMSAMXMAXXAASAASMSASMAAXXXSASMSMMMAXMMMAMXMAAAMSMMSXSMSSSMMAMMMSMSSSMAAAAA
|
||||||
|
SMSASMMMMMMXAXXMAMAXSAMXMAXXAMXXSMMAASASMXMXMMMSMXMXXAAAXAAAMXMAMSSMXASXSMMSMMMAXMASASMSMMXXSMXXAMXSAXSAMXMAMSXSAAAXXAXAAAASMMMAXAAAAAMSMMMS
|
||||||
|
MAMAXXAAAAMSAMXMSXXXXAMXSXMMAMSMSASMMMMMAMMMMAXAXMSMXMMSMMMMMMMASAAMXMXMASAXAAXXMMAMXSXMAMSAMXSAMXMMMXMSSMSXXAMXMSSMMMMMMSMMMMSXSXSMSMMMSMAX
|
||||||
|
MXMMMSSSSSXXAMXMAASASAMXMAXSAMAAXAMXXAMAMXAAXMSMXMAAASAMXSXAXAXSMMSMASMSMMSXSMSXMSXMMSASAMMMMAXMMXMAMAMXMMXXXXXMAXAAASXMXAMXAASAMXMAMXAAAMXS
|
||||||
|
SSSSMAXMAXXSMMXMSSMAMMSAXAMSASMSMAMMSMMSMSSSXMSXSSMSMXAMXSSMXXXAAXMXAXAXMAMMMSMAMSAMAMAMMMAXMMSMMMSASMSAMMSMSMMXSXSSMSASMMSSMMSAMXXAMSMSXSAS
|
||||||
|
AAAXMMSMAMXMMAMXMAMXMASMMMXSAMAXMSXXAAAXAXAMXAMAMXMXMMAMAXAMASXMMMMMSSSXMASMMAXAMXAMSSXSXSXSAAXAAXXXAXSASAAMAAMAMXXAASAMAAAAXASAMXSSXXXMAMAS
|
||||||
|
MMMMAAAMMXXAASMSSMMXMAXXAXMMXMXMMAAMMMMSMMAMMMMSSMXAASXMMXXMAMAXAAAMAAASMAXAMSXXXMAMAMMSAAMSMMSMMSMMMXSAMXMMMMMAXXXMMMSMMMMSMXMMMXXMAMMMXMAM
|
||||||
|
MAAXMSMSAMXSXMAAAASXMSSSSSSMSMMAMMMMAAMXXMAMAXAAAAMSMSAAMMSMMSSXSSSSMAMMMAMSMXAASXSMSXAMMMXXAXXMXXAAXAMXMXSSSSSSSMSAXMASXSXMMSMXSSMSAASMSMAM
|
||||||
|
SSXSAXAMXSMMAMSMMXSASAAXMAMAAAMXMAASXSSMMSMXSMMSSMAXAMXMMAAAMAXAAXMAXMXXXSXMAMAMXAMAMAXXXXMSSMSAXSSSMMSASXAXAAAASAAXMASAMXAMAAXMXAAMSXMAMXAM
|
||||||
|
MAAMXMAMAMAMSMAXXAMMMMMMMSMXSSMAMSXSAAXAMAMAMXMXMAXMXMAMMSSSMASMMMSXMMSMMMAMXMMXMMMAMMMSMMAMAAAMMMAXAASAXMMMMMMMMSMMMMMAMMMMXMMAMMMMMMMAMXSS
|
||||||
|
MMMMXMAMASMMMSXSMMXAXXXAAXMAXAMMXMAMMMSSMXMAXAXMASMSMMAMAXMAMXSAAXXASAAAAMAMAMMMAASXMXAXAMSMMSMXMMSMSMMMSMXAXMASAXXSAAXAMAASASXSMSAMXASAMMAA
|
||||||
|
XXAXASXSXSAAMAMMAMSMSMSMSMMMSAMXAMXXXMAMAXMMSAMMSAXAASMSXSSXMASMMMSAMXSSMSAXAXAMXMMASMSSSMAAXAMAXMMAMXXAAMASAMXMASASXXMXMXXSAMAXASMSXMSASMSM
|
||||||
|
ASMSASASASMMSMMSAMAMAMAMMASMMMMXSMMSMMASMMMAAAMXXAMMMMAAAXMSMASAMAXASAMXXSAMXSMSAMSAMMAAASMSSMSSSXMAMMSSMSAXMAXSAMXMASMMSSMMXMXMXSAMXXXAAAAX
|
||||||
|
AAAMAMAMAMXMAXAXAMXSASMXSAMAAAXSMAMMASAMAASAMXMXSXMAAMMMMMAXMASAMXXAMMSSMMXMXAAXAMMXXMASXMMAAXAXMAMASAMXXMXMAAXASMXMAXAAAAXAMXXMMMAMASAMMSMX
|
||||||
|
SSXSAMAMAAAAXMMMSMASASAAMXSMMMMMXAMSMMXSAMXMSMMAMASXSXSAXMMMMMXXMMMSXAXAAAAXMMMMSXMMSSXMAMMMMMMXSAMXMASMXSMSMSXSXSXMMSMSMMMMSMAXAXAMSMAXAXXS
|
||||||
|
XMAXMSSSMSSMSASAAMXMMMMMSMXXAXAMSMXXXXXAMMAAAAMMSAMXMAMAMMAAMMMSSMAMMMSSMMXSASXAMAAAAMASXXSMSSXASAMMSAMXAAXAAXXXAMXMAAXAXAAXAMMMMSASAXMMMXXA
|
||||||
|
SMSMXAMAAXAAXAMMSMAAXASXSAMSMSMMAMXMMMMXMSXSSMMXMAMAMAMAAXSMXAMSAMASAXMAXAXSAMMMXSMMXSAAAASAMXMASAMMAMXMAMSMSMAMSMAMSSSSSSSSMSAAMMMSASXASXSM
|
||||||
|
XAXAMXSMMMMSMXMAXAXMSMSMSAMXMAXXMMAXAAMXXMAXAASXSMSXSASMSMXMSAXMAMXSAMXMMMXMAMXSAMXSMMMSMMMMMAMMMMMSAMMXSAMXMMMMAXXMXXXAAMAMXSXMXAMXMAMASAAX
|
||||||
|
MSMAMAAAAAXMAMXMXAXMAMXAMMMXMXSMASAMSSMXMMXMSMMAAAAXMASAAXAXSMMSMMMSAMMSAMXSXMAMAXAAAAXAMMXSSMMSAMXSAMAAMAAAXAXSSSMSMMMMMMAMMMMMSXSAXMAXMXMM
|
||||||
|
MAMAMMSSSSSXSSXMMSXSSSMSMMSXSAAMAMMXMAXMXXSAMXMMMMMXMXMXMMMMXSAAAAAXAMXMASAMXMXSAMXSSMSMSMAAAXMXSAAMAMMSSXMXSAMMAAAAAXMASXXSAAAMXMSASXSMSASX
|
||||||
|
SMSXSMMMMAMMMMAMAMMMASAMXXAAXSSMSASMSAMMMMMMMMSAXSMXXASASMXAXMSMSMSMMSSSMMXXAXAMASXAAAAXXMMXAMMMXMMSAXAMAMXXXXSSMMSSMMAMAXASXMXSXAXAXAMASASA
|
||||||
|
SAAXXXAAMAMAAMXMXSAMMMMMAMMSMXXAMAAAMXMAAXAXMASAXSAXSAXASAMXSXXMAAAAXAMAMAMXMXMSAMMSMMMMSXSSSXXAXAAMMMMMSAAXAMAAXXXAMSAMXMAMXMASMSMMMAMMMMMM
|
||||||
|
MSMXMSSXSASMSMSAAMMSXSASMAAAMXMXMXMXMASXSSMSMAMSAMAMMSMMMMMXMASXMMMSMASMMASASAMXAXAMXMAXAAAAAASMMMMSMAMAMSMMMMSAMXXMMXXSASASAMMSAAASXSMSAMSM
|
||||||
|
MAXAMXXMSXSAAAXMMMAMASAAXMXSMAMSMMXSXMAMMAMXMXSAXMMMAAXMAMMAMXMXMXAMMAMXSXSAMAXSXMXMASMSMXMMMMMAAMMAXAXAMASAXXMAMMSSXSASASAMXSAMXMSMAAASAMAM
|
||||||
|
SASXSASMXAMXMMSASAMXAMMMSMAMXAXAAAAAAMMSSMMASXAMXXSMMMMSSMSASAMXSMMXMXMAMXSMSSMSXMAMXMAAXAMASXSSMMSSSSSXSAMSAMXSMAAAAMAMMMMMXXXSXXMMSMMMMSXM
|
||||||
|
MAMXMMSAMXXXXXAAMXXMAMAAMXAMSMSSSMSSXMXMAXSASMAXSAXASXAAAMSASMMXSAMSXMMSSMMAAXMXASAXSMSMSXSASXMAMAXMAAXMMMMMXMAMMMMSMMMMXAASMSMMMMMAAAXSASXS
|
||||||
|
MAMXMASAMXMXAAMMMXMAMSMSSMMMAAAXAXAMXMXMXMMASASXMASAMMMMSAMMMXAAMAMAAXAAAMMMMSMSMMMSMAMAMXMMSAMXMAMMSMSMMAAXMXSMSAMXMASMMMXAAXMAAAMSSSMMXSAA
|
||||||
|
SMMMXASXMXSXMXMAXAAAAAAXAAXSMMMSMMSSSMXSAXMAMXXXSAMAMSMAXMXSAXMXSAMSSMASXMXSAXAAMAMAMAMAMAMASMMSMSXAAMAAMXXMSAMXSAMXSASAMSSMSMSMSSXMMXASXMMM
|
||||||
|
XMASMMSAMXXMMAAXMASXSMSMMSXMAMMAMXMAXMAMMMMMSXSAMXSAMMMMXXAMMMMASAXAMMXMAMMSAMSXSASASMSMXAMAMXXAAMMMMSSSMSSXMASASAMAMXMAMXAAXAXMAXAAASMMXAMS
|
||||||
|
MSASAXMAMXMAMASMSMAAAAAXAMASMMSASMMMMMAXAAMXMAMXMASASMASAMXSSXMASXMASXXSXMXMAMAAXAXAMAAXXXMMSXMMMMAXXXMAAAAXSAMAMAMSSMSAMXMMMMXMAXXMMSXSMMMM
|
||||||
|
AMASXMSSMAMSXXXAAXMMMXMMXSAMAAMAMXMXAMMMSMSAMAXAMXSAMXAMAASAMXSASAASAMXSMMASAMMSMMMSMMMSXXAXAXSAMXSMMXXXMMSMSMMSMSSMAASMMMSAAMSSMSSSMSMMASMM
|
||||||
|
MMMMAMAMXMAMAMMSMMXSMMXXMMMSMMMSMMMSSMSAMASXMMXMSAMAMMMXMMMXSAMAXXMMSMAMAXXMAXAAMAAAAAXAASXMSXSASAXASXMMMXXAXSAAMXAMMMMAAASMSMAASXAAXMAMAMAX
|
||||||
|
XSASAMASAXMMAMAAASAMAXMSSXMAMAMAAAXMAAMAMMMSAAASMMSAMXMASAMSMMSAMSSMAMASXSXSXMSSSXSSXMMXXSAAMASMMASAMMMASAMXAMSSMSAMSSSMMMXAAMXXMMSMMSSMSSSM
|
||||||
|
ASASMXASAXMAAXSMMMMSSMAAAASMSMSSSMSMXMMSMSASMSMSAXMASAMASASXAAMAXMASAMXSAAAAAXMAXAAMMSXMMMMAMAMAMAMAMMSASXSMAXAMMSAMMASXMAMSMSSMMAAAAAAAAAXA
|
||||||
|
XMMMXMASASASMXMMSAMAMMMMSXMMMMAXAMMMMMXXAMAXMMASMMXXMXMASXMMMMSXMSMMSMAMMMMSSMMAMSMMASMMASXSMSSXMXXXMXMASAXMMMMMASAMMAMXMAXAAAASASMSMSMMMSMS
|
||||||
|
XMXAAMXMAXMAXXAASXMASXMXXMXAAMSSXMAAAMXMXMMMSMAMAMXSMXMASAMXXAAAXXXAAMXSXXXXXMAMAXAMXSASXMAMXMAMXXMASMMXMAMAAAXMAMAMMSSMSMSMSMAMMXAAAXMAXAAX
|
||||||
|
MSMMMMMMXMXMSMMMSMMXSXMAMAXSSMXXXSXXXSMSASAAXMMMXMAMAAMMSXMMMMMMMAMSMSXMMSMSMMSSSSXMASMMMMSMMMAMAXSAMAMMMMSSSSSMASAMAMSAAAXMAXXAXMMMMSSMSMSM
|
||||||
|
AAAMASMMAMXXXAAAMAMXMMMMSSMMMMSXMAXSAAASAMMSSXMMXMASMSSMSMMXXMASXMMMXMAAAXMMAMAAMMAMAMAMAXMAMMAMMMMAMAMAAMAMXAAMXAMMAMMXMXMSMSSMXSXAMXMXAAAM
|
||||||
|
MAXSASAXAXMXSSMSSSXAXAAXAMSXMASAXAAMXMMMSMSAMAASXSASXMAXMAMMMMAMAAAXASXMSSMSSMMSMSAMAMAMSMSAMMMASXMASMSSXSAXMXMMXMASMSMSSXMAMXAXAXMXSAMMMMMS
|
||||||
|
ASAMMSXSMMSAAMXMAXMASXMSAMXSMAMAMMSMMSAMXMXAMMMMAMASMSMMXSMAAMASXMMSXMMSMMAAMMMMMXMSMSSMMASXMASASASAXMAMAXXMASMXMXAMAAAAXXSASMMMSSMMMASAAAXX
|
||||||
|
AMAMXXXMAAXMXMAMXMXMAMXSAMXSMMXAXXAAAAXXAAMXMASMSMXMMAXAAXSSSMASAAAXXSXSAMMMSMSMAAMXMAMAMAMAXAAASAMXSMSMSMAXMASASMMMSMMMSMMXSAXAAAXAMAMMSXSM
|
||||||
|
XSSMMAXMMMSMMSAMSAMXXMASAMXMAMASMSMSMMMSASAMXMXAXMSMSASMXMAXXMAMXMMSASASXMASXAAMSMSXMASXMMSSMSMXMXMXMMAAMSAMXXSMMAMXAAAXSAMASMMMSSSSSMSAMAAM
|
||||||
|
MAXAXXMASXXXASXSAMASXMXXAMXMAMMXAXMAAAASXXAAMXMAMAAMXAXAAMSMMSMSMSAXAMMMASMMMSMMMAXAMAAAMAAAAMXSAMSMSAMMMMXMAMMXMAXSMSSXSAMXMXXMAMXXAAMAMSMM
|
||||||
|
XMSMMMSAMXAMMSMAASXSMSMSSSXSASXMASXSSMXMASMMSAMAMSMSXMMSXSAAMAAAAAXMXMASASAAAXMASMMXMMSMMSXMMMAMXMAASMSAAXSSMXSASXXXXAXMXAMAMSSMSSSSMMMAMAXX
|
||||||
|
MXAXXXAMMMXMASMXMMAXAAAXAAAXASXMASAMXMAMAMXAMXMXXXMAMMAXMXMSSMSMMMMMSSMMASAMASMMMMXXXXAAXXAMMMMSMSMMMAMXSXMAAXSASMMSMSASXSMSMAAMAAMMAAMSSMMS
|
||||||
|
SSMXMSASASASMSAXSMSMSMSMMMMMMMMMXSXMASXMSSMSMSASMMMSMSASAMXXXAMXMAXXAAXMMMAMAXMAAMAMXSMSASAMXASAMASXMXMAMASMMMMAMXAAMAAMAXAXMAXMMSMSSMSMAMAA
|
||||||
|
XASAASAMMSASXXMMSAXMAXXXSAXAXAXMXMASXMXAXMAMAMASAASMAAXMXAMAMXMXSXXMSSMMASAMXSSSXSAMXXXMMMMMSXSAXAMXAMMMSXMAMXMMMMMSSMSMMMMMAXMXXAXMAMAMAMSM
|
||||||
|
SAAMMMAXMMAMMSXMMAMSMSMAMMSMXMSMXSAMMXMAXMXMXMAMMMMMMMMXXXAAMASXMXXMAMASXSASXAAAASMSAMXMXMSAMASAMSSSMXAASASAMMXXAASAMXAAAAAMXMMSAMSMSSSMMXXX
|
||||||
|
MMMMXSXMSMSMASMSMSMXXAMAMAXXASAXXMAMAXAMMSMMXMXSXSASXMAXSXSMSXXAMXXMASMMASXMMMAMXMASXSAMAMMASAMXMXAAAMMMSASMSXMSSSSXMMMSSSXSAMXAAMMAAAAASMMM
|
||||||
|
XMXSXXXXAAAMMSAXAMSSMSSMSXMAMSASXSSMSMSXAAASAMXMAAASMXSASAXXSASMMMMSXMXXMMAMXXMASMXMASMSAXSAMMSMMMSMXXXAMMMXAAXAMXMAMSAAAMASXSSSSMXSMSMMXAMX
|
||||||
|
MMAMMXMMMSMSXMMMSMMSMASAXMAXXMAMXAXAAAMMXSSMXSMSXMXMASMAMAMAMAMAAAAMAMXMXSAMMMSAMXMMAMMSAMMAMXAAXAMXSAMXSASMSMSAMXSAMMMMSMXMAXAXXMXMAXXMXSSS
|
||||||
|
AMASMAMSAXXXMASAXAAMMAMXMMSMMMXMAMMSMSMSMMMMAMAXMASMXXMSMMMAMMMSSMMMAMXAXSMXAAMAMSAMMSAMXXSMMSXSMXMAAXASMMAXMASAMXMSSSXMXXAMMMMMAXSMMMSAMXAM
|
||||||
|
XSAMXAASASMXMXMASMMSMXSAAMAMAAAXXMAXAMAXAMAAAMSMXAXAXAAXMASMMSAXXAASXMSSXSMSSMXAMSXXMXAXMASAAMAMXSMASXSAMXMSMXMAMSAXXAASMSXSAAAAMMMAAXMASMSM
|
||||||
|
MMMXXMXXAMXAMXMAMAMXAXSXXXAXMSMSAASMSMMMMSASMSXMMXMXMASMSMSAAMAMMMMSAAMMMSAAAMSMMMMMMSMMSASMMMAMASAMXMMMMAMXMASXMMMMMXMMAMXSMSSXSASMMSMMSAAX
|
||||||
|
SASAXSSXSMSSSXMSSSMMSMMASXMSAAAMXMXAAAXAXAAMMMAXSASXAXMAAXMMMMSSXMASMMMAAMMMXMAMMAAMMASXSAMXXMASXMXMAAAXSXSAMAMMMMSSSMXMAMXSAMAAMXMXMXMAMMMS
|
||||||
|
SAMMSXAAMAMXMASAAAMAMAXXMAAMMMMAMXMSSSMSSMSSXSMMMAAASMXSMMAMXAAMAMAMAXSMSSXAASASMMSMSASXMAMXSAMXAAXSXSXMAXSXSXSAMXAAXAASASXMAMMMMSMXAAMXSAMM
|
||||||
|
MAMXMMMMMSMASXMMSMMASXSMMXMXMXMASXMAAMMXSAAMAAXXMXMAXMMXMASMMMMSAMSSMMMAMMMSXSASAAMAMAMASXMXAAMXMMMSAMXMMXMASMSXMMMSMXMSAXMMXMAXAAASXSSMXASX
|
||||||
|
SASAMSAMXXSAMXSAMXSMMAAXAMXASXMXAMXMMAMAXMAMSMMXMASXSMMASXMASAAXAXMAAAMMMMAMASXSMMMAMAMXMAMMSMMSXMASAMXMSAMXMAMMSSMMAXMMMSASXSSMXXMAMXAXXAMX
|
||||||
|
SASAXMAMSXMXXMXASASMMMMMMASXSASMSMXMMXMASXXMAXSASMMXMASAMASAMMSMMMSAMSMSMMXSAMXXMAMMSXMAMAMAAAMAAMASAMMXAXSAMSMAAAXMSMXAAMAMAAXAASXMXSAMSSMX
|
||||||
|
MXMMMXSMSAAMSMSXMASXXAAMXXXAXAMAAXMASMMMSAASAMSMSASMSAMASXMASAXAXAXAMXMAAXAMAMMMXMSMAAXSXSSSMSAMAMAXAMAAMMSASMMMMXMMAAMXMMMMMMMSXMAXXMAMAMAM
|
||||||
|
SMMMAAMASMMMAASAMXMAXSSSXMMMMSMSMMSMMMAAMXMMMXSXSAMXMASXSASXMASXMXSSMXXSSMMSMMMSAMAMMSMXAAAAAAMXMMSSXMXAXAMXMAAAMSXSASMSXMAMAMXMASAMASMMASMA
|
||||||
|
SASMMSMAMMXMXSMMSAMXMXAXXMAXAXAXAAAAASMMSAMAMAMAMXMASMMASAMXMAMASMXMASXMAXXAAAASASMSAMAMSMMMMMMASAMXMSXMMSSMSSMXXAASAXAXXXASASMSAMXMXMXMASXS
|
||||||
|
MAMXAAMXMMAASMMXMAXMSMAMMSAMSSMMMMXSMSAASASASAMSMMSMSAMXMAMXMAXAMAXSASASXMSSMMXSXMXSXMAMAAAXXXSAMAMXXMAXSAAAXXSXMMXMAMSMMMMXXXAMMSMMAXAMXXMA
|
||||||
|
MXMAXXXAAMMXAAXSMSMAAMAMAAAMXAMSMSMAAMMMSMMMMMSMAXXXSXMAMAMXMAMSSSXMXSAMXAMMASMMXMAXXMXMSSMSMMMMSMMAMSXMMMSMMAASMSSMMXMASXSSSMXMAAMSSSXSXMAS
|
||||||
|
MSSSMASXSMSXSAMXAAAMXMAXSMXXMAMMAASMMMAAXMXMAMAMMMMXMASMSXSAMAMXAAXMAMMMMXMSAMAMXMASMSAMXMAAMSAAAAMXMASMAMAAMXMAMAAASMMSMMAAMXXMMXMAAMASXAXX
|
||||||
|
AAAAAMAXMAAMXASMSMSAASMMXXMMMAMMXMXXAMMSAMXSXSSXMAXMSAXMAAMMMAXMMMMMAMMAXSAMXXASAMXSAAASAMMMSSMSSSMASXXMASXSMMXSXSMMMAMXAMMMMMASAMMMSMAMMSMM
|
||||||
|
MMSMMXMXMMMXASMAMAXAMAMXMAAXMMMAXSMSXSAMXMAMAXMASXSAMXMMMXMXSSXSAMMSSSSMXSMSMSASAXXMAMXMASAMXXXMAMXAMSXSMSAMXMAMAMASMMMSAMXAAXMMAXAXXMASAAAX
|
||||||
|
XMXAMXXMMASXMAMXMAMAXMSXSSSMASMMSAAAAMXMAMASMSMAMSAMXMXSAXSAXMASASAAMAAMXXAAAMMXAMSASXASAMAMXMMMMMMAXXMAAMXMAMAXASAXAAAMASMSXSMSAMMXMSAMXSMM
|
||||||
|
SXSXMXMASASAMXSMMASXMMSAAAAXAMAMXMMMSMSSMSAMMAMMSXMXAMASASMAMMXMAMMSMSASMSMMSMSMAMSAMMAMASXMMAAAAMXMSMAMXMASXSMSASMXMMASAMXAASAMXXSAXMASAMMM
|
||||||
|
XXXXXMAMMASMMAAASXSAAAMMMMMMMSAMAXMXMXMAMMAXXAMXSMMSMSAMMMMASMMMAMXXAMAAAAXAXAXSMMMAMAXSXMAXMXSSSMSAAMXSAMXAAAAMMMXMMSXMXMMMMMAMAAMAMXMMMSAX
|
||||||
|
SAMMMSXMMAMMSSSXMMSXMMSXMASXXSAXSXSAMASXMSAMSMSMSAXAXMMSXMMAAAAMMSSXAMSMSMSMMAMASXSAMSMMASMMSAAAAAMSMMMSMSMMMMSMAAAXXMAMAMSXSXXMMXSASAMMXSMM
|
||||||
|
MAMXAAAMSMMMAXMAXAMAXAXMMASMASAMXAMMSMMMXMMXAMAXXSMMMSXSAXMSSSMSAXXMAMXAAAAMXXAMMMMAXMAXAMXAMMSMMMMASAAXMAMXSAMXMMMXAMAMAXSASMXXAAMAXASXMXAA
|
||||||
|
SAMMMSAMAAMMMSSSMMMAMSSSMAXMAMMMMAMXSMAMAMXSASMSMMXSAXAMXMXAMMAMXSMXMMMSMSMSASMXXAXSMSSMSSMXSXMASXSASMSMMSSXMASXSAAASXMSMSMAMAMMMMSSSMMASXMM
|
||||||
|
SASAAXXSSSMAXMAMASMAMAAMMSSMASMSSMMMMMAMAXAXXMAMAAAMMMSMMMMMSMAMSXMASXAMAMXMXMSASXSMAXMMAAMXAMSMMMMMSAMAXXXMXAMAMMSMXAMXXAMMMMXAMXAXAXSXMASM
|
||||||
|
SMSMMSAMAXMMMMAMAMXSMMMMAXAMASAAMXAAMSMSXSASXSSSMMSXSAAXAMAMAXAXMASASMMMMMAMMMMXMMAMSMXMMSMSMMAMAMSAMXSMXMAMAAMXXAAXXAMSSSMXAXXXSMXSMMMASAMX
|
||||||
|
MXXAXXXMMMSMMSXMASAMAXXMMSAMXMMSMSSMXAAAAMXMAAXAXAXXMMMXMSASMSMXSAMXXXXAXSASAAXMASAMXMMXXAXXXMASASMXSAMMASAMSXMSMMSMSAMXAXAMSMSAXMAMMASMMSMX
|
||||||
|
MSMSMMMMXXXAAMASAMMSAMSAMXAXXAXAAMAMSMMSSMSMMSSSMSSMMMSAASXSXAXAMXSMSMSMMSASMXMMAMAMXAASXMMXSMMSXSXAMAXSAMAXMAMSAAAMMMSXSMXMAAMMMMSMSXSXAAXX
|
||||||
|
XAAAXAAAXMXMMXAMASXXXSSXMMMMMSSMSMAMAXAAAAXAXAAAAAXAAAMMMMMSMMSMXMAAAAAMXMMMASXSSSSMMMMXAASXSAASASMXMSMMASMMSSMSSMXSAAAAXXSMMMMXAAAMAMXMSSMM
|
||||||
|
SMSMMSSXSASXMMSMMMMSSXMASAMXMAAMMMMSXMSSSMSMMMSMMSMMMSSMSMAXMMAMASMSMSMSASXMMMAAAAMXMASMSMMASMMMMMAAXXASAMAAXXAMMMMSMSMMSAMXSSXSMSSXMAAMMMAM
|
||||||
|
XMAMXXXMAMAASAMAAAAMAXXAMASAMSSMASMMAXMAMXSMSMXXAXASAAMXAMSSMMAXMMAAAAASAXAAXMMMMAMSXAXXXAMXMXAAMXSMMSAMXMMMSMMMAAMXMMMXMAMASMAXXAMAXSXSXSAM
|
||||||
|
XMAMMMASMMMXMASXSMSSMMMSSMSMXMMMMSASXMMMMMXAAAXMAXAMXXSMMMMAMSSSSMSMSMXMSMSMMMXMMXAXMASMSMMAMSSSSMAMAXMXSXMASASMSXSAXMAXSAMXSMMMSSSMMMMMMSAS
|
||||||
|
AMSSMSAMXSXMMAMAXMAXAAAAAAMXAAASMSMMXSAMAAMSMSSSSMAMSXSASXMAMXMAXAAMXMXAAMAMXMAXSMXSAMAAAASXMAAMXXAMSMSAXAMAMMMMAASMSMXMMAMAMAAAAMAXAMASAMXX
|
||||||
|
XAAAXMASAAAXMSXMXMASXMSMMMMMSXMXAMXAXMASASAXAXAAAXSMMASAMASMSMMAMMMMASMMMXAXAMXMXAAAMAMXMXSMMMSMMMMMXAMXSSMAMAAXMMMMAMAMXMMASMMMSSSMXSASXXXA
|
||||||
|
XSMSMSAMXSSMSMSMAMASAAMXSAXXMMSSXMMSMSAMAMMMSMMMMSMAMAMAMMMXAMMXSXXSASAMSSSSSSSXMMMSMXMXMAMASAMXAASAMAMAXXSAMSSSXMASMSXSAMSAMAAMAAASXMASXMSS
|
||||||
|
XMAXAMXMXAMXAAAMSMMMMMSASAMAAAAAAXXAAXAMXMXAMAMXXAXAMMSXXMXMAMSAMXXMAMAMAAXAAAXAMXAXAMMSMASASMXSXXXAXMMSSMMXXAAXMMMMAAAXAMMASMMMMSSMMMAMAMAA
|
||||||
|
MMAMAMXSXMXSMMSAMAXXSSMASMSSMMSSMMMMSMSSSMMMSMMMSMMSAMXMXMMSMSXSXMASXSSMMMMMMMMSAMXSMSAAMMMXSAXSSSSSMXAAXMAMMMMMMASMMMSXSMSAMMAXAMAAAMASMMMA
|
||||||
|
ASAXAMXXAMMXMMXASAMXMAMAMXAAXAAAMAMAAAXAAXAXAXAMAAXMXSAMAXMAMXAXSAXMAXXAXXAAXXAXAMXXAMMSSSMMMXMXAXAMXMMSMMSMSAMASASAMAMAMXMAXSSMMMMMMSASXMXM
|
||||||
|
MSMSXXASMMAAMAMXMXXXXXMAXMXSMMSMSAXSXSMXMSSSMXSSMXMAAXASAMSMSMSMXMSMSMSXMASMSMASMMXMMMAMAAASXSMMXMXMSMAAAXAMXASMSASMMAXMASMSMAAASMSSXMXXAMMX
|
||||||
|
ASAAAXXMAMXSSSXXXMMSMXXXSSXXXXMMSAXMAMXMXXMAMAXAMXSMMSAMMMXXXAMSMASAMXAXAXMAAXMXMASAXMXSSSXMAMMAASMMMMSSSMASXXMMMAMXMASMXMAMMSMMSAAMXMAXSMSX
|
||||||
|
MMMMSAMMAXXAAASMASASXAXSAMXSSSMMMSAMXSXSMMMSMMSAMAAAMMXMMAMSMSAAMMMAMAMXSXMSAMXMXMAMMXXMAMMMSMASXXAAXXAAXMAMXXSAMXMAMSMMAMXMAXMAMMMMAMMSMAMX
|
||||||
|
XAXAXMASASMMMMAMAMSMMMMSAMASASXXAMXSAMMAAMAAMXSAMMMSMAXXMAMXAMXMSXSAMAXAXXMASMXMAMAXSXSMMMAMAXMXASXMMMMMMSSMMMSXSAMAXMASXMAMXSMSSMXSXXMAMAMM
|
||||||
|
SAMXSXMMASXSXXMMSMXXASASXMXMAMXMMMXMASMSMMXMSASAMXXAAXMXSSSMXMMSMMSMSAMXAXMAMMMSSSSMXAAXXSSSMXXMMMAAXAAXMAMAAAMXSASMXSAMMSMSMAAAAXAMMSSXSMSS
|
||||||
|
MXMASMSMMMAXMXXXMASMMMMSAMXMAMMSAMMMXMAMASXSMASMSSXMASMXXAAXAXXAAMXMXXXXSAMASAAMXAAMMMMXXXMAXSMSXSSMMSASMASMSMSAXAMXMMASAAXAASMSSMXSAXMASAAM
|
||||||
|
MAMMMXAAXMSMSMSXMAMAAXXSXMASAXASASAAMMMMAMMAMXMAMXAXMAMMMSMMMMSSSMAMMSMMAMSASMSSMSMMXAXMMMSMMSAAAAXAXXAXXMMAAAMAMSSSXMSMMXSMXMAMXAXMAMMSSMMS
|
||||||
|
SXSSSSSSMAMAAXSAMXSSMMMMXSAXMMXXAMMAAAAMASAMSSMXMSXMMMAXMAXAAAXMAXASMSXAAXMMSAAXAAAMSMMASASAAXXXSMMMMMSMSMMSMMMAMAAAAMMAXMAXAMAMMMMXMAMAMAAX
|
||||||
|
AAAAAAAAMAMSMMSAMAMXMXMXAMSMSXSMXMXMSXMSAXMXAAXMMSMSXMMXSASXXMMSAMXXXMASXSXAMMMSSSSMXAASMASMMSMMAXXAAXAAXXAMAXSXSMSMMMMAMSAMMSXMAXSSMMSASMMS
|
||||||
|
MMMAMMMSMMMXSAMAMASAMAMMMSXXSAAMXMAXAXMMMSMMSSMMMMAMAASXSASMMSAMXSMMAXXMASMMSMAXAMXMSAMMMAMASAXSAMSMSSMSMMMSMMSXMAXXXXMAMXMMXAMMSMXAAXSAMMSM
|
||||||
|
XXAMXXXMAXSSMMSSMXSASASASAMAMSMMASASMMMAMXXAAAXSAMAMSMAAMSMAAMASAAASASAMXMASAMMSSMAMXMASMXSMMAMSAMXAAMMAASAAAAMAXSSMMMSASAMXXXSAMSSMMMMAMMXM
|
||||||
|
MSMMMMMXSMMAAMAMSAXMMMMXSAMSMMMSMAASXAMSMMMSSMMSXSAMAMMXMAXMMMAMXSMMMXXMASXSASAAAMXMAXSXSAAXMXMXMXMMMSSSSMASMMMMMXAXAAMXSASMSMMMSAXAASXMMMAX
|
||||||
|
XAASMMSAAASXMMAXMMMMSSMMSXMAAAMAAMAMXXXMASAMAXAXMMMSASXMMMSMSMMMAXAXXMASASXSMMMXSMSSSMMAMXMSXMMMMMXAXXXMAMAMASAASMMMSSSMSMMAMAASMMSSXXAAMXMX
|
||||||
|
MSSMAAMSSMMXXSMXSXSAAAXAMMMMXMMMSMSXSMMSAMASXMSSMSXSMMAMAMSASXSMSSSMXSAMASMSMAXMAAAAAAMMMMXMAMSAAAXMMMMSMMMSAMAMXAAAAXAASXMSMSMSXMAXAMSMMASM
|
||||||
|
AXMAMMMXMASXMASASAAMSXMAXSASMSSXXAXMMAAMASAMAAAAXSASXSXMAMMAMMSAAAAAXMAMSMMXSASXMMMSMSMAAXAXXMAXSXMAAAAAXAXMMMSSSSMMSSMMMAXMAXAXXMASMMXAMAXA
|
||||||
|
MMAAMXMAMAXXSASMMSMXMXSXMMAXAAAXMSXAMMMMMMMMMMMSMMAMASMSSMMSMAMXMXMXMMAMMASMMMMXAAAXXMXSSSSSMXMMMASMSSSSSMSAMXMAAXAMXXAASXMMMMSMMSAMXASXMXSS
|
||||||
|
AMSMSXSAMXSMMASXAAXAAAXSXMSMMMMXXXMSXSMXSASXAMXMXMAMAMMMMAXAXMMMMSMSSSSXSAMAAXXSSMSSMSMMAAXXXASMMAMAAAAXAMSAMXMMMMXXASXMSMSXMAXSAMXSMMSASAAM
|
||||||
|
SMAAXASXSAAAMXMMMSMMMMSMSAMXXAXMMXAXAMXXMAMMMMAMASAMASAAXMMMMXMAMAMAAAAAMMMSMMAMAAAAMAAMMMMMSMSAMXMMMMMSMMSXMXAAAMMMMSASMMAXMASMXSAMXXSAMMSM
|
||||||
|
ASMMMMMAMMSMMASMAAAXXXAMSMSSSMXMAMSMMMSSMAMAAMXSASASASMSSXSXAASMSMSSMMMMMXXASXMSSMMSSSMMXXAASXSAMXXXAXXXAAXAMMSMSAAMXMMXAASMSMMAAMXSAXMASXMA
|
||||||
|
MAMSSXMAMXXAMAXMMSSMAMXXXAXMAMAMXAXAAAAAXAMMXXXMAMAMAXAMMAMASXMAAXAXSXXXAXMAXSAAXXAXAAASMMSXSASXSSXSMSMSMMXAMXAAXXMXAMXSSMMMAAMMMSXMMXSSMASX
|
||||||
|
XMSAAMSMSSSSMSMSAAAXXSMMMSMXAMMSMAMSMMSSSMSMSAMXSMSMSMASMMMAMMMSMMMSXSMMSSMMMMMMSMMMMSMMAAXAMAMAMAASAAXMAXSASXXSMAMSMMAAAASXSSMMMSAXAASASAMM
|
||||||
|
SXMMSMAAAAAMAAAMMSMMSXAAAAASMSAXMAMAAMAAAAAASMAAXAXAXSAMAAMASXXMASXSAMXAAAAAXXSAMXSAMXXMMMMAMAMAMMSMSMMSAMSAMAXXMXMASMXSSMMMXAAAASMMMSSMMMSA
|
||||||
|
XXXXXXMSMMMMMMSMXAXMASXMSXMAAMMSSMSSSMXSMMMMMMSAMSMMMMMSSMSXSASXMMSMAMMMSSMMAMXXMASXSAXMAMSXSXSXSXXMAMXMXXMMMAMXAXMAMSAAXMXMASXMMSXXMAMXXMAX
|
47
5-1.rb
Executable file
47
5-1.rb
Executable file
|
@ -0,0 +1,47 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
problem = 5
|
||||||
|
input = File.readlines("#{problem}.input").map(&:strip)
|
||||||
|
#input = DATA.read.split("\n")
|
||||||
|
split = input.index("")
|
||||||
|
|
||||||
|
rules = input[0...split].map { _1.split("|").map(&:to_i) }
|
||||||
|
page_sets = input[split+1..].map { _1.split(",").map(&:to_i) }
|
||||||
|
|
||||||
|
result = page_sets.select do |page_set|
|
||||||
|
rules
|
||||||
|
.select { |a| (page_set & a).sort == a.sort }
|
||||||
|
.all? { |(a, b)| page_set.index(a) < page_set.index(b) }
|
||||||
|
end.map { _1[_1.size / 2] }.sum
|
||||||
|
|
||||||
|
p result
|
||||||
|
|
||||||
|
__END__
|
||||||
|
47|53
|
||||||
|
97|13
|
||||||
|
97|61
|
||||||
|
97|47
|
||||||
|
75|29
|
||||||
|
61|13
|
||||||
|
75|53
|
||||||
|
29|13
|
||||||
|
97|29
|
||||||
|
53|29
|
||||||
|
61|53
|
||||||
|
97|53
|
||||||
|
61|29
|
||||||
|
47|13
|
||||||
|
75|47
|
||||||
|
97|75
|
||||||
|
47|61
|
||||||
|
75|61
|
||||||
|
47|29
|
||||||
|
75|13
|
||||||
|
53|13
|
||||||
|
|
||||||
|
75,47,61,53,29
|
||||||
|
97,61,53,29,13
|
||||||
|
75,29,13
|
||||||
|
75,97,47,61,53
|
||||||
|
61,13,29
|
||||||
|
97,13,75,29,47
|
61
5-2.rb
Executable file
61
5-2.rb
Executable file
|
@ -0,0 +1,61 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
problem = 5
|
||||||
|
input = File.readlines("#{problem}.input").map(&:strip)
|
||||||
|
#input = DATA.read.split("\n")
|
||||||
|
split = input.index("")
|
||||||
|
|
||||||
|
rules = input[0...split].map { _1.split("|").map(&:to_i) }
|
||||||
|
page_sets = input[split+1..].map { _1.split(",").map(&:to_i) }
|
||||||
|
|
||||||
|
result = page_sets.select do |page_set|
|
||||||
|
rules
|
||||||
|
.select { |a| (page_set & a).sort == a.sort }
|
||||||
|
.any? { |(a, b)| page_set.index(a) > page_set.index(b) }
|
||||||
|
end.map do |page_set|
|
||||||
|
matched_rules = rules
|
||||||
|
.select { |a| (page_set & a).sort == a.sort }
|
||||||
|
.reduce(Hash.new { |h, k| h[k] = Array.new }) { |a, (k, v)| a[k] << v; a }
|
||||||
|
|
||||||
|
page_set.sort do |a, b|
|
||||||
|
if matched_rules[a].include?(b)
|
||||||
|
-1
|
||||||
|
elsif matched_rules[b].include?(a)
|
||||||
|
1
|
||||||
|
else
|
||||||
|
0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end.map { _1[_1.size / 2] }.sum
|
||||||
|
|
||||||
|
p result
|
||||||
|
|
||||||
|
__END__
|
||||||
|
47|53
|
||||||
|
97|13
|
||||||
|
97|61
|
||||||
|
97|47
|
||||||
|
75|29
|
||||||
|
61|13
|
||||||
|
75|53
|
||||||
|
29|13
|
||||||
|
97|29
|
||||||
|
53|29
|
||||||
|
61|53
|
||||||
|
97|53
|
||||||
|
61|29
|
||||||
|
47|13
|
||||||
|
75|47
|
||||||
|
97|75
|
||||||
|
47|61
|
||||||
|
75|61
|
||||||
|
47|29
|
||||||
|
75|13
|
||||||
|
53|13
|
||||||
|
|
||||||
|
75,47,61,53,29
|
||||||
|
97,61,53,29,13
|
||||||
|
75,29,13
|
||||||
|
75,97,47,61,53
|
||||||
|
61,13,29
|
||||||
|
97,13,75,29,47
|
130
6.input
Normal file
130
6.input
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
....#.......#.............#..##...................#..#..#..................................#....#.................................
|
||||||
|
................................#..#.............##.....#....#....................#.............................................#.
|
||||||
|
.#....#.........................................................................................#.#...............................
|
||||||
|
.......#.......#..................#........#..................................#...............#...........#.......................
|
||||||
|
..#......................#.....#...........#..........................................................................#...........
|
||||||
|
.#.............#.............#....#...............#..#................................................#..........#................
|
||||||
|
.#............................................#........#........................................#...............................#.
|
||||||
|
...............#...........#....#............................................#.......#...................................#........
|
||||||
|
.#.........................#................#.........#..##.....#........................................#........................
|
||||||
|
.........#...#......#..................#...........................................................#...#..............#...........
|
||||||
|
..................#..#....................#...................#.....................#......#....#...........#..#.........#........
|
||||||
|
.........................................................................................#..........#.............................
|
||||||
|
...........#...........#.....#..................#....................#............................................................
|
||||||
|
........#...........................................#............#...........................#.........................#..........
|
||||||
|
....##....##..............................#.................................................................#....#....#.......#...
|
||||||
|
..#............#.........##....................................................#.....................#.....................#......
|
||||||
|
......#.......#.##.......##...........................................#........#................#.................................
|
||||||
|
..#...#.........................................#....................#.....#........#....#......#......#................#.........
|
||||||
|
.#...................##............................................................#....................#.......................#.
|
||||||
|
......#....#.....#............#............#.................................................#..#.......#..........#..............
|
||||||
|
...............#....#.........#.............................................................................................#.....
|
||||||
|
...........#..........................#..............................................#.........#...............#..#..............#
|
||||||
|
...........#...#.................#........................................#...................#....#..............................
|
||||||
|
........#................................#...........................................................#.......#....................
|
||||||
|
...........#....................#.....#.........................................................#..............#....#...#.........
|
||||||
|
..........#........................................................#..............#..............................#................
|
||||||
|
..............................##...........................................#.....................................................#
|
||||||
|
...#..#........................................................................................................#........#.....##..
|
||||||
|
.......#........#........#.#.....................#................................................#.......................#...#...
|
||||||
|
...............#.......................................................................#.........#......#.#.##....................
|
||||||
|
......#..................#.....#..................#..#..................#.................#..#.....#...................#....#.....
|
||||||
|
.....#........#.............#....#...............................#.................#..............................................
|
||||||
|
....................................................#.......#......................................#....#.........................
|
||||||
|
...#.............#...............#.............#......#.#..............#......#.............#.....................................
|
||||||
|
..............#..................#............................................#..#.........................#......................
|
||||||
|
.............#............#........#........................................#.....................................................
|
||||||
|
...#.........#.............#.........#............#..........................................#................#...#...............
|
||||||
|
...........#.................#...................................................................#................................
|
||||||
|
...#..............................................................................................................#...............
|
||||||
|
..........#...............#...#......#...............##..............................................#....#...................#...
|
||||||
|
.........................................#...................................................#..#.....................#...........
|
||||||
|
......#..#.........#....................................#....................#..........#......#..................................
|
||||||
|
........#.........................................#................#.#.......#.......................#............#..............#
|
||||||
|
..........................#...............#....................#.............................#..............#.....................
|
||||||
|
..........................#...........#............................................#....#...#.....................................
|
||||||
|
...........#........#..........#..............................................................#...##......#.......#......#........
|
||||||
|
....#..........#...#...................##..........#.........................................#....#...............................
|
||||||
|
...............................................................#................................................#..........#......
|
||||||
|
................................................................................................................#.....#...........
|
||||||
|
...#.....................#......................................................................#....................#............
|
||||||
|
......................##...........#.......#.......#.......................................#......................................
|
||||||
|
......#......#........#....................................................................................#......................
|
||||||
|
.......#......................#.........................................................#.......#.................................
|
||||||
|
...............#..........#...#.#..........#.....#..............##.......#.....#....................................#.............
|
||||||
|
.......##....................................................................................#.#...#..........................#...
|
||||||
|
......#.............#.#.........................#....#......#......#...............#.........#..#.................................
|
||||||
|
.........................#........#.........................#....#..................#.................#............#......#.#.....
|
||||||
|
............#............#......................#.#................##........#....................................................
|
||||||
|
......#..............................#...........#.......#........#.................#.............................................
|
||||||
|
............................................#.....................................................#.................#...#.........
|
||||||
|
.................#.......................................#..................##...#..............................#......#.......#..
|
||||||
|
.#..#................#.#......................................#..........#..........#...........................#.......#.........
|
||||||
|
.........................................................................#.....##.............................#.............#.....
|
||||||
|
.#.......................#.....................#....##....#........................................#..............................
|
||||||
|
......#...........................................##..........#......#.........................#..#..........#....#...#...........
|
||||||
|
........#.#....................................................................................#..................................
|
||||||
|
..........#..............................#.....#......#.........#............................#........................#...........
|
||||||
|
....................#................................................................#...............................#........#...
|
||||||
|
....................................#.......#...................................##.........................#......................
|
||||||
|
.....................#.....................................#.........#..........................#.................................
|
||||||
|
.......#.................................#.....................#........................................#....................#....
|
||||||
|
......................................................................#.....#........................#.......................#....
|
||||||
|
..#............................#..................#...#.........#..........#..#.........................................#.#.......
|
||||||
|
....#............................................................................#.............................#..#.....#.........
|
||||||
|
......#..................................#.............................................................................#.........#
|
||||||
|
....#......................................................................#................#.....#...........................#...
|
||||||
|
.............#.........................#.#....................#........................#......................................#...
|
||||||
|
....#......................................................................#...#..................#..........#....#...............
|
||||||
|
.......#....#.#..#..#....#........#.....................................................#..................#..#...................
|
||||||
|
#..............#....................................#.......................................#.....................#...........#...
|
||||||
|
#.........#....#..#.........#.................#..................#.#..............................##......................#.......
|
||||||
|
................#.........#......................................................................................................#
|
||||||
|
...............................#.........#.................................................................#.....#.#..............
|
||||||
|
..........#................#.............................#.............#.......#..........................................#.......
|
||||||
|
.....#.........#........#..............#.......................................#.........^........................................
|
||||||
|
........................#................#........#.......................................#............................#...#......
|
||||||
|
......#.....#.......#.................................................#...............#.....#.....................................
|
||||||
|
..................................................#......#.....................................#....#....#.##....................#
|
||||||
|
.........................................................................#...#..............#...............#.....................
|
||||||
|
..........#.................#...................#.........................................................................#....#..
|
||||||
|
...........#.....................#.....#.......................................#....................#............#........#.......
|
||||||
|
......................#...........#........................................................................................#......
|
||||||
|
..........#.......#.................................................................................#.......#.....................
|
||||||
|
........#.....................................#..................................................##...............................
|
||||||
|
.......#................................#.........#..#..................................................................#.........
|
||||||
|
...........#...................##.............#...............................#..........#....................#.....#...#.........
|
||||||
|
....................................##..#..........................................#..............................................
|
||||||
|
...............#..#............#..............................#.#.#........#......#...............................................
|
||||||
|
..#..................................#....#.......................................................................................
|
||||||
|
........................#.................##.........#......................#........................#.#.#........................
|
||||||
|
.......................................#.##....................................................................#..................
|
||||||
|
..................................##............#..............................................................................#..
|
||||||
|
..#.................................................#.....................................................................#.......
|
||||||
|
................#..#..#...#.........#...#.................................................................#.....................##
|
||||||
|
.....#......................#...........#.............#...........................................................................
|
||||||
|
........#.....................#..............................................#................#..............................#....
|
||||||
|
........#.............#.........................#.............................................#................#..........#......#
|
||||||
|
#........#...................................#....#......#...............................#........................................
|
||||||
|
...........#........#..................................................#.............#..........................#.............#...
|
||||||
|
....................#..#.#.................................................#.#...........#................................#.#.....
|
||||||
|
.......................#...................................................#....................................................#.
|
||||||
|
......#......................................#..........##.......................#...........#.........#..........................
|
||||||
|
.......#..................#..................#......................#............................#.............#...#..............
|
||||||
|
.....................................................................................#........#................#.........#........
|
||||||
|
............................#..............................................................#.....#........#......#................
|
||||||
|
..#..........................#.........#.................#...........#...#....#........................#.......#.............#....
|
||||||
|
.#.....#.....#.....................#........#...............#............#.##........#..................................#.........
|
||||||
|
............#.#..................................#..#.........#.................#............................#........#.....#.....
|
||||||
|
............#.........................#..................................#........................................................
|
||||||
|
....................#................#...........#..........................................................................#.....
|
||||||
|
....................#.....................................................#.........#......#...........#...#.#..................#.
|
||||||
|
........#..........#.......................................#...............#....#............#.....................#..............
|
||||||
|
.......#...#......#...................#.......#..........................#.........................#...................#..........
|
||||||
|
.#............#....###...............###................................#.............................#...........................
|
||||||
|
.............................#.......#..............................#.#.........................................#..#..............
|
||||||
|
...............#.........#...................#...................................#..#..................#..........................
|
||||||
|
........#.......#..#..................#........................................................................#...............#..
|
||||||
|
.#.............#.....................#........#..........................#.........#..........................#...........#.......
|
||||||
|
.....#.............#.....#..........#.....#.............#............#.............................#..........................#...
|
||||||
|
...................#.......................#......#.#..............#..###.....#......................#...........#.......#.#......
|
104
6.rb
Executable file
104
6.rb
Executable file
|
@ -0,0 +1,104 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
problem = 6
|
||||||
|
input = File.readlines("#{problem}.input").map(&:strip).map(&:chars)
|
||||||
|
#input = DATA.read.split("\n").map(&:chars)
|
||||||
|
|
||||||
|
DIRECTIONS = ["^", ">", "v", "<"]
|
||||||
|
|
||||||
|
def find_start(input)
|
||||||
|
input.each_with_index do |row, x|
|
||||||
|
y = row.index { DIRECTIONS.include?(_1) }
|
||||||
|
return [x,y] unless y.nil?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def movement(direction)
|
||||||
|
[[-1, 0], [0, 1], [1, 0], [0, -1]][direction]
|
||||||
|
end
|
||||||
|
|
||||||
|
def out_of_bounds?(input, location)
|
||||||
|
location.first >= input.size ||
|
||||||
|
location.last >= input.first.size ||
|
||||||
|
location.first < 0 ||
|
||||||
|
location.last < 0
|
||||||
|
end
|
||||||
|
|
||||||
|
def obstructed?(input, location)
|
||||||
|
["O", "#"].include?(input[location.first][location.last])
|
||||||
|
end
|
||||||
|
|
||||||
|
def traverse(input, starting_location, starting_direction)
|
||||||
|
location = starting_location.dup
|
||||||
|
direction = starting_direction.dup
|
||||||
|
visited = Hash.new { |h, k| h[k] = 0 }
|
||||||
|
|
||||||
|
while
|
||||||
|
visited[location] += 1
|
||||||
|
|
||||||
|
next_location = []
|
||||||
|
loop do
|
||||||
|
movement = movement(direction)
|
||||||
|
next_location = [
|
||||||
|
location.first + movement.first,
|
||||||
|
location.last + movement.last
|
||||||
|
]
|
||||||
|
break if out_of_bounds?(input, next_location)
|
||||||
|
break unless obstructed?(input, next_location)
|
||||||
|
direction = (direction + 1) % 4
|
||||||
|
end
|
||||||
|
|
||||||
|
if out_of_bounds?(input, next_location)
|
||||||
|
return visited.keys
|
||||||
|
elsif visited[location] > 5
|
||||||
|
return :loop
|
||||||
|
else
|
||||||
|
location = next_location
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def find_obstructions(input, nodes, start_location, start_direction)
|
||||||
|
last_value = "."
|
||||||
|
nodes.select.with_index do |node, i|
|
||||||
|
# undo last mark
|
||||||
|
if i > 0
|
||||||
|
last_location = nodes[i - 1]
|
||||||
|
input[last_location.first][last_location.last] = last_value
|
||||||
|
end
|
||||||
|
# mark node a barrier
|
||||||
|
last_value = input[node.first][node.last]
|
||||||
|
input[node.first][node.last] = "O"
|
||||||
|
|
||||||
|
# traverse
|
||||||
|
traverse(input, start_location, start_direction) == :loop
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
path = []
|
||||||
|
location = find_start(input)
|
||||||
|
direction = DIRECTIONS.index(input[location.first][location.last])
|
||||||
|
|
||||||
|
visited = traverse(input, location, direction)
|
||||||
|
|
||||||
|
start = Time.now
|
||||||
|
result_2 = find_obstructions(input, visited, location, direction)
|
||||||
|
finish = Time.now
|
||||||
|
puts "Finished in #{finish - start}"
|
||||||
|
|
||||||
|
result_1 = visited.uniq.size
|
||||||
|
|
||||||
|
p result_1
|
||||||
|
p result_2.uniq.size
|
||||||
|
|
||||||
|
__END__
|
||||||
|
....#.....
|
||||||
|
.........#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
..........
|
||||||
|
.#..^.....
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#...
|
45
7-1.rb
Executable file
45
7-1.rb
Executable file
|
@ -0,0 +1,45 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
problem = 7
|
||||||
|
input = File.readlines("#{problem}.input").map(&:strip)
|
||||||
|
#input = DATA.read.split("\n")
|
||||||
|
.map do |line|
|
||||||
|
solution, expression = line.split(": ")
|
||||||
|
[
|
||||||
|
solution.to_i,
|
||||||
|
expression.split(" ").map { _1.strip.to_i }
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
OPERATIONS = [:+, :*]
|
||||||
|
|
||||||
|
def solve(equation)
|
||||||
|
equation[1..].each_slice(2).to_a
|
||||||
|
.reduce(equation[0]) do |acc, (operation, number)|
|
||||||
|
acc = acc.public_send(operation, number); acc
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def possibilities(solution, numbers)
|
||||||
|
OPERATIONS.repeated_permutation(numbers.size - 1)
|
||||||
|
.map { numbers.zip(_1).flatten.compact }
|
||||||
|
.any? { solve(_1) == solution }
|
||||||
|
end
|
||||||
|
|
||||||
|
result = input
|
||||||
|
.select { possibilities(_1.first, _1.last) }
|
||||||
|
.map { _1.first }
|
||||||
|
.sum
|
||||||
|
|
||||||
|
p result
|
||||||
|
|
||||||
|
__END__
|
||||||
|
190: 10 19
|
||||||
|
3267: 81 40 27
|
||||||
|
83: 17 5
|
||||||
|
156: 15 6
|
||||||
|
7290: 6 8 6 15
|
||||||
|
161011: 16 10 13
|
||||||
|
192: 17 8 14
|
||||||
|
21037: 9 7 18 13
|
||||||
|
292: 11 6 16 20
|
51
7-2.rb
Executable file
51
7-2.rb
Executable file
|
@ -0,0 +1,51 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
class Integer
|
||||||
|
define_method(:"||") do |v|
|
||||||
|
to_s.concat(v.to_s).to_i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
problem = 7
|
||||||
|
input = File.readlines("#{problem}.input").map(&:strip)
|
||||||
|
#input = DATA.read.split("\n")
|
||||||
|
.map do |line|
|
||||||
|
solution, expression = line.split(": ")
|
||||||
|
[
|
||||||
|
solution.to_i,
|
||||||
|
expression.split(" ").map { _1.strip.to_i }
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
OPERATIONS = [:+, :*, :"||"]
|
||||||
|
|
||||||
|
def solve(equation)
|
||||||
|
equation[1..].each_slice(2).to_a
|
||||||
|
.reduce(equation[0]) do |acc, (operation, number)|
|
||||||
|
acc = acc.public_send(operation, number); acc
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def possibilities(solution, numbers)
|
||||||
|
OPERATIONS.repeated_permutation(numbers.size - 1)
|
||||||
|
.map { numbers.zip(_1).flatten.compact }
|
||||||
|
.any? { solve(_1) == solution }
|
||||||
|
end
|
||||||
|
|
||||||
|
result = input
|
||||||
|
.select { possibilities(_1.first, _1.last) }
|
||||||
|
.map { _1.first }
|
||||||
|
.sum
|
||||||
|
|
||||||
|
p result
|
||||||
|
|
||||||
|
__END__
|
||||||
|
190: 10 19
|
||||||
|
3267: 81 40 27
|
||||||
|
83: 17 5
|
||||||
|
156: 15 6
|
||||||
|
7290: 6 8 6 15
|
||||||
|
161011: 16 10 13
|
||||||
|
192: 17 8 14
|
||||||
|
21037: 9 7 18 13
|
||||||
|
292: 11 6 16 20
|
850
7.input
Normal file
850
7.input
Normal file
|
@ -0,0 +1,850 @@
|
||||||
|
426048: 425 608 69 88 1 282
|
||||||
|
1234: 8 53 21 2 611 1 538
|
||||||
|
3493064: 42 823 101 932 966
|
||||||
|
7851123: 81 52 937 7 9
|
||||||
|
109137611815: 9 4 9 1 9 5 13 97 18 1 4
|
||||||
|
143516213: 2 906 6 5 12 22 578 3 3
|
||||||
|
629453: 7 492 3 28 6 6 9 104
|
||||||
|
5423661: 5 2 8 8 91 4 6 7 3 40 8 6
|
||||||
|
18682395: 93 37 3 1 431 765 2
|
||||||
|
556488358421: 794 98 33 6 917 7
|
||||||
|
14604120: 89 13 65 703 17
|
||||||
|
51347: 24 9 908 8 9 3 6 36 41 6
|
||||||
|
1200264: 1 324 69 614 9 34 52
|
||||||
|
84467: 99 1 694 50 64
|
||||||
|
832680: 3 58 68 45 3
|
||||||
|
13238: 4 3 58 9 652
|
||||||
|
1505251: 3 24 97 1 29 669 5
|
||||||
|
28869324: 99 749 1 46 74
|
||||||
|
125890: 6 894 7 6 87 9 2
|
||||||
|
265251: 8 9 8 87 251
|
||||||
|
928664914: 4 7 6 8 664 8 2 9 1
|
||||||
|
103228624: 7 2 73 7 94 91 95 26
|
||||||
|
5765376: 442 85 4 41 8 742 8 4 8
|
||||||
|
101551004: 2 78 991 38 75 8 4
|
||||||
|
11531: 4 42 589 122 1
|
||||||
|
230639: 88 6 3 722 3 9 1
|
||||||
|
533796498: 66 80 3 2 101 4 5 2 501
|
||||||
|
8494148: 32 35 79 2 8 3 30 2 8
|
||||||
|
222246692: 23 41 13 94 970 689
|
||||||
|
9841934: 2 998 419 815 5 809
|
||||||
|
2186556: 51 9 9 660 4 2 9 8 69 7 3
|
||||||
|
11207789126: 1 9 425 1 68 5 9 2 293 9
|
||||||
|
33355203: 7 199 5 84 119 57
|
||||||
|
60424: 989 61 79 8 8
|
||||||
|
651253: 3 4 904 8 2 8 72 87 493
|
||||||
|
2099106644: 277 842 9 624 22
|
||||||
|
29145931: 3 6 15 3 7 9 70 6 1 1 6 5
|
||||||
|
63140: 8 79 61 77 82
|
||||||
|
720845730: 9 3 43 1 53 45 650 81
|
||||||
|
3030: 45 57 85 280 5 94
|
||||||
|
64316066: 7 6 7 422 14 953 37 4 2
|
||||||
|
31898201: 77 74 3 622 3 797
|
||||||
|
99024982725: 48 77 1 3 47 8 1 30 846
|
||||||
|
3086415: 5 139 1 6 1 8 2 24 2 3 6 9
|
||||||
|
1604915280: 2 7 652 74 321 7 18 4
|
||||||
|
1040: 316 22 7 3 4
|
||||||
|
792201: 748 7 22 488 99 493 4
|
||||||
|
1449102: 23 525 6 4 4 5 82
|
||||||
|
6672: 8 1 563 7 9 593 863 1 4
|
||||||
|
641235: 18 5 76 3 87 8 8 93 15
|
||||||
|
836: 399 2 31 7
|
||||||
|
2589888404878: 4 8 94 21 41 40 4 8 77
|
||||||
|
79158297957: 221 570 58 29 795 6
|
||||||
|
94656: 64 547 254 223 87
|
||||||
|
158670130: 2 9 3 4 32 2 645 2 6 5
|
||||||
|
1172900: 5 624 9 5 3 69 38
|
||||||
|
18570144924: 6 3 570 144 926
|
||||||
|
11809188: 63 26 801 77 7 9 90
|
||||||
|
17569711116: 9 9 2 2 156 793 3 109 4
|
||||||
|
72864: 8 2 3 1 5 3 99 8 4 72
|
||||||
|
30090677155977: 38 89 11 5 217 41 9 79
|
||||||
|
54186: 5 418 6
|
||||||
|
536456640: 1 53 273 27 3 1 35 52
|
||||||
|
1324: 568 47 2 45 5 2 40
|
||||||
|
255466537: 98 49 133 4 82 56
|
||||||
|
108593: 440 931 5 635 54
|
||||||
|
274562: 18 4 88 12 3
|
||||||
|
2310: 168 125 6 551 1
|
||||||
|
158226796: 4 2 1 71 56 18 67
|
||||||
|
227860: 632 36 2 68 5
|
||||||
|
254276307: 211 927 13 62 57 90
|
||||||
|
969151: 96 75 1 79 6 608 1 856
|
||||||
|
1381920960: 329 7 7 6 4 3 5 51 5 4 3 8
|
||||||
|
57750433: 466 22 1 43 6 1 131
|
||||||
|
2039463: 8 532 4 2 2 4 3 59 245 1
|
||||||
|
924: 4 2 42 57 2 23
|
||||||
|
984: 9 5 1 3 4
|
||||||
|
3490: 32 9 8 5 7 7 18
|
||||||
|
764789: 47 91 3 83 341 2 942 4
|
||||||
|
8761312983: 1 5 1 645 2 56 981
|
||||||
|
49375245: 46 16 94 4 67
|
||||||
|
1371731088: 258 80 58 98 119 1 6
|
||||||
|
1691074: 3 653 36 8 2 4 61 153
|
||||||
|
237984: 3 60 942 4 84 514
|
||||||
|
8487: 3 836 6 3 7
|
||||||
|
1302665: 8 327 850 4 8 848 637
|
||||||
|
338504789434: 9 7 96 4 27 58 1 7 7 431
|
||||||
|
4375: 5 320 13 87 62
|
||||||
|
39114592: 24 74 32 3 53 53 8 58 9
|
||||||
|
55211: 1 2 5 261 3 6 6 3 873 6 5
|
||||||
|
3930310: 6 727 89 883 77
|
||||||
|
105416741: 8 6 2 7 830 2 7 81 29 72
|
||||||
|
1864306: 752 37 67 22 76
|
||||||
|
10308245: 460 6 22 56 243
|
||||||
|
8724688: 61 143 1 688
|
||||||
|
802716549428: 81 991 6 5 494 30
|
||||||
|
4542460: 5 11 52 818 924
|
||||||
|
3187936924: 8 9 54 879 356
|
||||||
|
63545: 1 459 7 429 71
|
||||||
|
117919: 9 76 202 28 91 1
|
||||||
|
3743973: 74 82 5 41 5 269
|
||||||
|
861952: 57 558 68 7 2
|
||||||
|
3334911: 668 16 39 8 255
|
||||||
|
66798536: 27 9 931 6 92 65 3 3
|
||||||
|
8653262: 4 82 5 326 2
|
||||||
|
658062508: 5 97 94 2 5 6 9 3 55 6 7
|
||||||
|
22128516: 111 222 898
|
||||||
|
1200278: 40 5 6 269 1 8
|
||||||
|
8492254: 465 206 452 28 74 6
|
||||||
|
3976640: 97 49 2 8 340
|
||||||
|
6598260668: 7 20 3 459 9 9 9 66 8
|
||||||
|
349711968: 699 417 1 4 1 9 50 4 4 8
|
||||||
|
4360998090: 46 474 98 40 5 9 586 2
|
||||||
|
38968452095: 4 8 59 12 7 172 6 592
|
||||||
|
7435934408: 521 8 34 8 32 2 2 2 7 79
|
||||||
|
3601746: 772 4 711 1 61 7
|
||||||
|
1037835487: 2 33 58 143 836 7
|
||||||
|
5238563720270: 5 238 5 5 4 9 720 27 2 5
|
||||||
|
73195290: 1 5 3 442 4 46 2 7 74 9
|
||||||
|
39219: 7 612 3 676 2 9 5 58 3 3
|
||||||
|
171333389699: 63 45 681 1 9 868 3 96
|
||||||
|
5938: 5 554 315 59 8
|
||||||
|
26921: 93 28 3 36 843
|
||||||
|
462492: 370 38 563 73 443
|
||||||
|
372492502: 9 1 521 5 407
|
||||||
|
252499564: 6 1 676 72 5 91 736 44
|
||||||
|
9089304: 8 405 786 1 28
|
||||||
|
22290929687: 18 8 255 512 849
|
||||||
|
496884960: 62 9 691 5 3 52 2 418 1
|
||||||
|
52469758: 7 21 96 244 80
|
||||||
|
1915494: 72 667 81 32 1 5
|
||||||
|
9240: 10 4 9 8 48 21
|
||||||
|
1229174: 39 965 1 6 16 2 676 73
|
||||||
|
63520233: 629 6 20 20 2 31
|
||||||
|
40053664: 520 36 298 72 207
|
||||||
|
31513519: 5 63 13 52 1
|
||||||
|
73259497328: 105 380 5 4 81 92 2 82
|
||||||
|
380149: 5 2 9 59 84 52
|
||||||
|
3532752: 75 6 40 8 7 9 1 4 7 7 48
|
||||||
|
735865836: 2 63 65 3 220 42 58
|
||||||
|
1036899: 1 972 63 89 6
|
||||||
|
119723575: 885 89 2 8 95 775
|
||||||
|
3394585738: 1 14 571 49 3 218 264
|
||||||
|
43184: 9 47 91 47 18 728
|
||||||
|
49179361: 3 2 358 1 27 7 8 5 1 35 1
|
||||||
|
60589: 51 9 55 8 31
|
||||||
|
3853: 376 9 454 6 9
|
||||||
|
97218628: 727 238 7 1 5 3 562 67
|
||||||
|
573: 3 18 8 47 306
|
||||||
|
2673281: 37 17 850 5 31
|
||||||
|
2519097323: 4 4 5 97 433 8 9 95 142
|
||||||
|
6282472: 46 1 691 942 3 472
|
||||||
|
1997842: 25 474 46 4 4
|
||||||
|
21463827009: 6 23 2 74 68 7 1 540 5 6
|
||||||
|
52876: 55 96 7 3 3
|
||||||
|
5458: 97 56 11 8 8
|
||||||
|
306: 4 93 5 1 3
|
||||||
|
2246440404358: 35 2 97 944 68 53 358
|
||||||
|
2156122429948: 627 6 8 625 3 796 3 1 9
|
||||||
|
705471450: 257 448 47 1 450
|
||||||
|
12086441200083: 60 4 322 5 3 8 5 5 20 86
|
||||||
|
95185977895: 98 5 36 209 966
|
||||||
|
66643: 1 3 7 1 6 43
|
||||||
|
243331: 233 9 57 6 756
|
||||||
|
12661228256: 590 33 4 6 7 5 4 774 8 4
|
||||||
|
1100: 141 1 952 1 5
|
||||||
|
10510801045: 69 2 2 9 86 5 9 1 76 28 3
|
||||||
|
9888464534: 77 6 246 98 7 74 967 5
|
||||||
|
361718875114: 2 97 4 725 12 1 5 186 6
|
||||||
|
106512316: 40 7 2 8 449 818 536
|
||||||
|
7588010: 64 694 772 1 291
|
||||||
|
991: 23 4 7 1
|
||||||
|
417: 6 45 7 75 65
|
||||||
|
15920852: 55 93 8 8 3 3 5 8 5 7 8 9
|
||||||
|
699: 4 8 55 43 589
|
||||||
|
35097279829: 4 6 2 2 7 9 58 9 5 7 982 9
|
||||||
|
108684: 5 6 2 62 283 1 6 4 9 2 1 6
|
||||||
|
35276: 28 575 4 57 677
|
||||||
|
8895075: 5 175 18 8 8 171
|
||||||
|
40618: 7 219 38 7 558 54 46
|
||||||
|
55909321: 4 4 4 6 3 2 41 705 8 3
|
||||||
|
176390408: 496 6 61 6 8 3 64 5 2 5
|
||||||
|
407788355: 40 778 7 603 3 747
|
||||||
|
102608197: 81 5 348 5 7 26 1 4 237
|
||||||
|
8020532: 9 9 9 1 969 8 4 5 8 884
|
||||||
|
2581035: 66 5 388 83 7
|
||||||
|
802185122: 561 993 4 360
|
||||||
|
3277848705: 9 6 53 9 95 6 7 11 7 6
|
||||||
|
134464957445: 1 493 1 9 495 74 44
|
||||||
|
229748861160: 67 46 3 205 234 518
|
||||||
|
2940111322: 37 12 917 589 22
|
||||||
|
18670960793: 9 6 5 3 9 8 261 3 1 46 4
|
||||||
|
1142150721: 5 16 55 5 212 5 5 2 18 3
|
||||||
|
22196443505: 815 786 45 77 4 1
|
||||||
|
573211: 2 377 7 24 18 9
|
||||||
|
4843: 3 6 9 44 4 82 8
|
||||||
|
302249666485: 3 194 57 134 54 717
|
||||||
|
662063: 5 3 2 1 624
|
||||||
|
132572: 6 8 36 82 57 2
|
||||||
|
3864582: 2 3 24 7 582
|
||||||
|
1690: 102 691 4 128 765
|
||||||
|
1209: 19 8 7 7 96
|
||||||
|
126089845: 7 5 8 5 98 736 3 7 9 1 7 6
|
||||||
|
46487320: 7 1 664 7 249 71
|
||||||
|
39486: 46 405 1 87 160
|
||||||
|
2736552: 3 28 8 83 7 28 537
|
||||||
|
2172301065: 63 91 618 3 55
|
||||||
|
523522: 93 1 67 362 522
|
||||||
|
986428764: 985 978 446 4 722 43
|
||||||
|
12315880: 9 29 96 8 470
|
||||||
|
3984391: 39 843 92
|
||||||
|
5689708: 5 4 5 7 7 576 6 157 6 19
|
||||||
|
64505661: 64 1 505 397 262
|
||||||
|
227515138: 227 5 1 513 5
|
||||||
|
215361445: 3 83 63 820 93 86 2 46
|
||||||
|
34003007060: 651 993 2 526 60
|
||||||
|
16267: 920 7 1 2 834 6 58 69
|
||||||
|
267374268991: 6 89 73 9 8 826 8 71 59
|
||||||
|
112166154: 10 2 93 5 66 155
|
||||||
|
135: 9 1 5 42 43
|
||||||
|
11248: 70 1 423 8
|
||||||
|
2911500: 7 1 379 10 647
|
||||||
|
65618: 984 65 686 971 1
|
||||||
|
1423917: 23 24 26 9 18 1 3 99
|
||||||
|
1436633024645: 2 84 134 9 2 9 9 8 79 8 2
|
||||||
|
280912: 935 3 3 62 52
|
||||||
|
102593598: 442 2 326 89 3 4 1 7 75
|
||||||
|
38611: 3 9 503 9 6 7
|
||||||
|
36060: 5 8 1 16 4 601
|
||||||
|
28487: 73 691 6 37
|
||||||
|
721930973: 72 18 830 479 70
|
||||||
|
36324778803: 800 100 3 2 26 454
|
||||||
|
70492231245: 571 990 211 5 591
|
||||||
|
801607886: 2 79 33 888 80 7 886
|
||||||
|
15442400: 28 69 999 3 72 157 8
|
||||||
|
354682: 8 40 1 3 5 5 4 8 3 18 9 1
|
||||||
|
11718044: 9 180 31 20 43
|
||||||
|
2292878: 7 56 82 229 425
|
||||||
|
8686510: 37 390 2 64 1 9 291 4 3
|
||||||
|
47239: 2 77 52 4 9 9
|
||||||
|
23755253: 2 3 1 14 707 19 10 22 1
|
||||||
|
20814560: 68 8 44 536 1 3 2 4 2 2
|
||||||
|
431195040: 3 579 696 74 1
|
||||||
|
29632103424: 32 66 6 7 6 62 898
|
||||||
|
3417: 8 81 2 28 869
|
||||||
|
10513496180: 211 3 56 7 2 6 7 135 47
|
||||||
|
4575903869: 45 6 2 3 9 1 903 8 6 9
|
||||||
|
481562: 2 15 946 50 5 9 3
|
||||||
|
23919714428: 27 8 335 3 2 6 39 4 2 6
|
||||||
|
7227024325: 393 870 603 211 22
|
||||||
|
113705615: 16 7 76 94 561 4
|
||||||
|
36627744: 31 879 122 467 76
|
||||||
|
9682305217682: 3 1 3 8 5 9 739 1 1 835 1
|
||||||
|
1883: 19 215 8 1 14
|
||||||
|
310865765704: 4 5 93 47 8 3 6 8 5 703 4
|
||||||
|
65640: 2 3 9 5 671 1 89 9 3 9 3
|
||||||
|
34615688: 8 581 1 9 1 6 5 699 4 90
|
||||||
|
2874960: 136 2 372 936 55
|
||||||
|
125692: 11 4 89 28 2
|
||||||
|
21607840833966: 9 9 950 1 75 96 871 39
|
||||||
|
23335608: 45 75 54 7 51
|
||||||
|
6234: 20 18 819 73 6 654
|
||||||
|
250181: 92 8 4 338 50 7 4
|
||||||
|
38566354: 9 7 120 611 37
|
||||||
|
62704469: 2 8 9 71 5 66 44 5 6 10
|
||||||
|
385850: 5 8 8 7 2 8 63 6 3 678 3 2
|
||||||
|
115032285: 8 150 96 7 913 15 21
|
||||||
|
24871: 8 3 270 600 1
|
||||||
|
77113465: 7 555 723 1 6 7 465
|
||||||
|
6231: 5 8 5 956 5
|
||||||
|
388: 4 291 1 18 4 72
|
||||||
|
63870451184: 1 1 3 2 911 508 8 293
|
||||||
|
961: 5 9 1 8 4 9 87 5 10 5 26 1
|
||||||
|
651002: 2 861 685 2 84 5 2
|
||||||
|
2999: 9 328 41 3 3
|
||||||
|
697540864632: 38 79 4 2 726 8 4 316 2
|
||||||
|
13399549: 3 1 11 73 8 59
|
||||||
|
3562090: 866 1 6 83 674
|
||||||
|
7828907: 74 2 706 87 2 10
|
||||||
|
2386854: 1 2 6 68 78 5 2 4 3 5 5 4
|
||||||
|
81760686: 706 5 7 1 6 6 2 7 2 19 87
|
||||||
|
214797: 8 9 3 421 8 1 3 4 1 9 42 9
|
||||||
|
54427336: 30 712 8 173 53 79 73
|
||||||
|
1053341344949: 65 569 3 712 238 4
|
||||||
|
1448736525566: 160 97 9 6 4 6 8 57 563
|
||||||
|
2123419597390: 606 83 8 9 9 6 6 9 7 393
|
||||||
|
123978240: 336 8 4 9 4 6 8 7 7 2 8 60
|
||||||
|
35148535: 2 7 4 48 565 8 4 2 8 9 5 2
|
||||||
|
204124802990: 9 630 13 340 36 7 583
|
||||||
|
539960: 44 66 196 25 960
|
||||||
|
37179596269: 5 9 63 806 153 6 267
|
||||||
|
46944: 256 517 694 4 8
|
||||||
|
164447918604: 3 3 5 68 2 239 59 3 20 1
|
||||||
|
606512067: 202 5 85 25 2 1 7 4 6
|
||||||
|
582: 6 82 4 78 1 8
|
||||||
|
358489335615: 4 8 36 290 49 3 356 12
|
||||||
|
37968920318: 619 787 27 6 9 203 1 8
|
||||||
|
45917891663: 6 97 6 743 4 91 665
|
||||||
|
56974260612: 681 192 73 598 894
|
||||||
|
1433362936: 23 81 301 2 938
|
||||||
|
13387282062: 71 5 209 7 382 7
|
||||||
|
1440477: 3 9 37 3 66 4 2 667 58 9
|
||||||
|
54297: 87 359 12 77 5 2 7
|
||||||
|
45930136: 75 180 3 3 8 378 104 8
|
||||||
|
15415060: 60 9 86 5 795 94 115
|
||||||
|
152568: 9 1 61 5 68
|
||||||
|
27460988: 2 74 60 488 501
|
||||||
|
1057969: 284 4 4 93
|
||||||
|
2426020: 856 7 13 202 2
|
||||||
|
49096: 6 5 24 2 68
|
||||||
|
9219: 345 9 3 85 8 23 15 5
|
||||||
|
502450092967: 1 142 17 6 6 1 85 589
|
||||||
|
252469069: 478 8 7 1 57 8 66 59
|
||||||
|
24272: 1 8 8 7 4 752 9 6 1
|
||||||
|
156972819: 21 9 858 968 3
|
||||||
|
4435814457: 77 9 8 8 6 1 14 460
|
||||||
|
7029: 57 3 5 6 971
|
||||||
|
7053569543: 70 52 914 2 653 531 9
|
||||||
|
19649102: 9 7 9 5 22 545 4 839 94
|
||||||
|
267089242: 3 5 3 83 8 2 342 7 29 5 7
|
||||||
|
93765: 40 945 53 957 47
|
||||||
|
815253659: 48 97 581 700 8 52 7
|
||||||
|
14381: 70 1 91 2 1
|
||||||
|
6727770: 8 5 1 2 7 47 96 2 4 2 9 38
|
||||||
|
488959: 12 7 770 5 7
|
||||||
|
444850: 57 3 7 68 6 350
|
||||||
|
359101435530: 819 36 14 3 143 553 2
|
||||||
|
255298640: 5 7 2 336 9 6 25 6 226 8
|
||||||
|
627971804: 91 69 71 723 81
|
||||||
|
376876294: 603 625 5 15 779
|
||||||
|
4870224: 8 32 3 2 68 8 93
|
||||||
|
2921378615: 7 3 1 1 7 7 272 2 3 953 5
|
||||||
|
25762: 22 3 475 1 288
|
||||||
|
9334: 8 9 6 1 5 125 42 364
|
||||||
|
61711944: 453 61 26 6 4 8 3
|
||||||
|
31159097: 62 1 5 953 605 32 97
|
||||||
|
1486721291: 178 87 68 96 9
|
||||||
|
164195070864: 93 879 40 795 8 4 22
|
||||||
|
209: 2 83 46
|
||||||
|
448419: 16 657 642 341 4
|
||||||
|
2213729487: 7 9 9 7 1 33 6 6 7 457 3 4
|
||||||
|
826: 83 91 642 8 2
|
||||||
|
69845916113: 4 6 87 39 6 1 6 62 78 77
|
||||||
|
420247390: 7 8 70 5 9 6 6 33 1 9 6 53
|
||||||
|
468391418: 1 5 4 363 885 7 3 9 6 3 8
|
||||||
|
730151: 729 320 7 816 9
|
||||||
|
6121517413: 707 9 6 6 4 4 6 43 6 9 3 4
|
||||||
|
1331520: 8 304 44 288 95
|
||||||
|
2651662: 24 755 9 34 1
|
||||||
|
55557168: 45 8 7 13 6 49 716 8
|
||||||
|
925030462: 453 992 2 8 8 64 4 2 3
|
||||||
|
22929993: 6 1 9 403 8 6 7 9 677 9 8
|
||||||
|
136079: 10 7 80 8 1
|
||||||
|
4018560: 24 2 115 4 182
|
||||||
|
155443251648: 1 89 7 9 6 2 2 819 48
|
||||||
|
47311914088: 1 739 4 9 498 7 71 7 4
|
||||||
|
12959675904: 7 558 529 98 1 84 64
|
||||||
|
117075505: 4 651 2 693 2 63 6 89 7
|
||||||
|
8663990338: 3 5 36 5 2 989 3 23 337
|
||||||
|
38598654357: 8 78 6 7 3 2 5 1 9 1 343
|
||||||
|
1066: 3 68 3 447 7
|
||||||
|
9763884: 4 8 11 4 806
|
||||||
|
2649: 710 3 76 94 1 3
|
||||||
|
97022: 6 5 4 84 77 2
|
||||||
|
4436743: 2 4 20 36 7 37 6
|
||||||
|
10887: 8 1 931 930 26
|
||||||
|
41289: 5 160 2 2 4
|
||||||
|
64001920: 561 4 3 61 38
|
||||||
|
4877046: 961 40 84 3 58
|
||||||
|
94551: 942 3 5 3 1
|
||||||
|
2348968: 234 86 3 6 8
|
||||||
|
4829697944: 5 51 4 9 7 8 687 122 8
|
||||||
|
1275687: 531 4 6 262 9 9
|
||||||
|
866: 5 3 7 3 8
|
||||||
|
62826: 1 6 1 1 6 2 634 84 491 7
|
||||||
|
234421278: 586 4 2 12 81
|
||||||
|
987: 5 81 3 31 864
|
||||||
|
1512712546: 9 8 7 63 7 125 47
|
||||||
|
81507: 1 4 800 69 38
|
||||||
|
6885843415: 743 5 546 570 926
|
||||||
|
28383880: 20 47 9 76 1 89 469
|
||||||
|
8399: 73 86 242 8 877 994
|
||||||
|
6734289681: 841 681 9 889
|
||||||
|
2487534047373: 259 5 3 948 9 974 101
|
||||||
|
11402873: 17 96 609 414 17 553
|
||||||
|
18904325600: 55 21 735 4 325 600
|
||||||
|
1335462451: 16 5 9 9 14 8 3 3 70 955
|
||||||
|
70253: 2 115 30 9 2 38
|
||||||
|
17112: 9 5 4 7 9 66 1 6 5 1 9 2
|
||||||
|
240212907: 4 9 83 31 381 71 8 21 4
|
||||||
|
1137902: 24 89 78 71 31
|
||||||
|
17115001: 8 9 5 100 978 2
|
||||||
|
8596391: 85 8 7 3 87 9 24 3 5 5 22
|
||||||
|
536020: 80 67 17
|
||||||
|
1999835: 8 241 881 8 790
|
||||||
|
91503776: 1 6 419 4 5 7 7 2 6 8 91 7
|
||||||
|
141043433: 470 5 59 6 4 796 1 2 3
|
||||||
|
662831: 69 96 6 5 31 9
|
||||||
|
2527482: 5 670 26 6 8 4 3 6 6 258
|
||||||
|
663617436: 3 8 420 90 66 91 7
|
||||||
|
5117396: 9 43 45 5 32 34 74
|
||||||
|
286833458: 299 976 59 956
|
||||||
|
1810904: 402 12 2 15 73 351 3
|
||||||
|
14755500281: 339 44 1 161 3 3 2 1 3 2
|
||||||
|
891738: 8 2 2 43 1 6 4 93 2 963
|
||||||
|
1431924: 1 32 3 124 9 92 4
|
||||||
|
18526: 572 3 33 7 71 27 4
|
||||||
|
204101449: 650 314 9 5 50
|
||||||
|
19637: 54 6 5 57 55
|
||||||
|
46435032: 4 5 706 87 84
|
||||||
|
3901884025: 21 5 80 167 377 335
|
||||||
|
1357110633: 798 3 2 85 633
|
||||||
|
368814453: 93 509 63 8 612
|
||||||
|
16783688: 4 9 9 417 4 972 5 31 9
|
||||||
|
12778007: 75 949 14 552 167
|
||||||
|
3103890: 775 4 3 89 3
|
||||||
|
746384: 52 14 91 74 5 8 305 9 8
|
||||||
|
1324077: 1 132 24 2 1 6 674 967
|
||||||
|
6907431: 203 9 3 7 2 6 3 6 30 4 3 3
|
||||||
|
291241150: 142 5 2 5 909 5 500 86
|
||||||
|
10416: 35 4 9 217
|
||||||
|
222786114772: 428 3 36 98 836 1 52
|
||||||
|
30956235: 5 263 130 3 193 37
|
||||||
|
1807890624: 973 24 27 1 688
|
||||||
|
70133160056: 822 711 9 1 4 2 6 5 5 5 7
|
||||||
|
882460946: 1 8 8 6 3 1 3 2 5 943 2 3
|
||||||
|
2371851: 8 27 50 5 890
|
||||||
|
40024680321: 1 8 5 7 65 5 4 38 941 3 7
|
||||||
|
487213: 29 9 661 697 9
|
||||||
|
740743860807: 77 75 6 2 46 134 812
|
||||||
|
17850: 20 9 9 26 83 5
|
||||||
|
83290948: 5 91 8 75 2 927
|
||||||
|
586005: 584 894 66 816 228
|
||||||
|
483120417: 3 3 72 4 50 99 4 17
|
||||||
|
21612195: 117 9 6 9 6 1 3 379 5 6 9
|
||||||
|
1146285425: 70 5 863 1 945 427
|
||||||
|
311680: 8 8 5 4 81 3 621 3 4 1 6 5
|
||||||
|
81: 2 5 2 4 1
|
||||||
|
1692432: 6 80 5 764 8 146
|
||||||
|
982802: 73 73 2 8 4 3 8 5 3 5 7 2
|
||||||
|
25409164560: 1 6 9 1 188 7 2 5 7 9 12 5
|
||||||
|
366260: 318 47 47 1 78 7
|
||||||
|
168240337: 5 944 11 6 9 9 4 3 5 2 67
|
||||||
|
156807: 47 4 8 456 80 7
|
||||||
|
14995745: 6 714 25 35 870
|
||||||
|
24780095: 8 15 5 5 4 7 67 4 3 7 11
|
||||||
|
104125: 557 482 2 22 2
|
||||||
|
1844501: 41 2 9 357 7 202 32 5
|
||||||
|
6275963892: 1 482 98 9 9 699 1 12 1
|
||||||
|
3890574408: 176 78 786 6 28
|
||||||
|
47467: 293 9 3 6 1
|
||||||
|
926285: 9 2 532 96 5
|
||||||
|
2209: 7 1 8 94 20 9
|
||||||
|
219763712: 294 7 62 184 8 8
|
||||||
|
1754288721: 344 99 440 155 814 9
|
||||||
|
531930: 49 85 694 65 6 900 85
|
||||||
|
1005239880: 1 733 9 94 6 997 2 4 60
|
||||||
|
462: 33 9 26 131 8
|
||||||
|
6132669: 9 52 546 4 6
|
||||||
|
14541: 30 6 1 8 8
|
||||||
|
49132039: 57 7 6 4 6 8 98 5 2 5 2 42
|
||||||
|
10597759252: 40 7 3 622 8 10 9 7 7 6 9
|
||||||
|
750879481848: 55 65 6 1 6 5 8 7 3 31 9 5
|
||||||
|
301540320: 46 510 83 819 8 795
|
||||||
|
25711201: 3 7 337 9 296 2 2 60 5 7
|
||||||
|
3131219615335: 6 1 51 20 21 9 615 3 35
|
||||||
|
190931: 6 6 9 7 836 2 1 7 6 1 552
|
||||||
|
39873482: 1 61 950 90 687
|
||||||
|
136495497599: 4 878 7 7 4 48 5 3 7 99 2
|
||||||
|
62: 5 9 3
|
||||||
|
4072901: 4 52 40 14 1 2 9 1 4 1 8 8
|
||||||
|
3639889: 665 7 2 540 6 46 7 1
|
||||||
|
44833: 8 910 6 472 1 8 3 672
|
||||||
|
226176: 2 65 275 30 608
|
||||||
|
100819083: 3 9 6 7 16 325 116 9 18
|
||||||
|
2124636580913: 5 382 61 9 6 580 91 1
|
||||||
|
18389: 71 5 6 4 6 2
|
||||||
|
74957687: 7 2 7 8 5 9 5 59 9 636 6
|
||||||
|
1935561104: 70 129 276 8 5 58 561
|
||||||
|
285412: 39 26 7 961 98 2
|
||||||
|
910425: 7 9 111 4 4 5 427
|
||||||
|
1868263488: 7 973 1 56 654 52
|
||||||
|
356: 9 9 7 64 4
|
||||||
|
121563: 2 3 84 6 25 566
|
||||||
|
11793880: 9 1 1 61 292 577
|
||||||
|
6433920: 50 265 4 8 4
|
||||||
|
757114712: 677 795 6 739 29 86 4
|
||||||
|
92196314: 91 427 769 314
|
||||||
|
3622: 9 5 32 3 9 8 9 20 65
|
||||||
|
748249: 41 5 3 5 3 9 1 101 4 810
|
||||||
|
57521100: 67 570 940 490 3
|
||||||
|
694140: 42 712 4 1 92
|
||||||
|
2584: 1 9 2 2 6 8 7 8 12 7 460 4
|
||||||
|
1299844: 72 4 567 8 8 47
|
||||||
|
4438062035: 7 710 541 133 8 1 996
|
||||||
|
17848382: 733 639 949 13 44
|
||||||
|
1285415254454: 377 73 415 786 82 3 2
|
||||||
|
42573460: 1 8 2 3 317 730 79 381
|
||||||
|
6487474065: 4 6 6 6 4 42 4 48 4 5 7 89
|
||||||
|
11248830: 1 570 7 7 4 3 5 7 11 6 9 6
|
||||||
|
1236900001: 24 10 720 625 57
|
||||||
|
774935037: 293 473 63 40 66
|
||||||
|
121832: 7 5 3 2 6 88 1 1 552 7 3 3
|
||||||
|
1016743: 76 37 6 658 58
|
||||||
|
2533368513: 61 4 55 636 596 21
|
||||||
|
6990058: 4 1 835 30 204
|
||||||
|
1847406607: 20 526 740 9 8
|
||||||
|
779328000: 6 373 4 2 3 8 80 9 12 5 8
|
||||||
|
96371: 3 5 88 208 156 7
|
||||||
|
5419039: 3 8 517 90 41
|
||||||
|
249830: 99 374 8 177 3 7 9 8 90
|
||||||
|
100166088: 8 9 99 5 45 733 9 264
|
||||||
|
3376144: 7 157 927 442 7 584 6
|
||||||
|
43593660: 11 9 537 99 41
|
||||||
|
411324689: 7 21 208 389 4 41 29 6
|
||||||
|
234004: 61 323 7 87 89 62
|
||||||
|
23183285: 23 18 26 6 88
|
||||||
|
97916165533: 269 91 4 165 535
|
||||||
|
1112448: 9 61 841 2 5 4 3 8 9 6 89
|
||||||
|
8963: 896 5 1
|
||||||
|
73558189852: 5 6 9 4 6 97 6 658 2 98 7
|
||||||
|
13680414: 49 47 66 90 594
|
||||||
|
24172014797: 48 336 8 5 1 479 7
|
||||||
|
9967992824: 9 41 946 706 93 28 2 4
|
||||||
|
76153297584: 47 81 66 2 975 84
|
||||||
|
541346194846: 45 1 6 73 5 2 97 4 2 2 5 2
|
||||||
|
2476666710: 2 630 15 208 17 630
|
||||||
|
60279278: 6 982 17 61 6 3 845
|
||||||
|
55027351: 4 528 9 2 88 135
|
||||||
|
929699919: 3 89 480 9 8 2 99 5 4 21
|
||||||
|
257203: 304 846 14 3 2
|
||||||
|
19954464: 4 2 199 29 8 7 2 8 6 8 12
|
||||||
|
349703121: 87 425 69 5 1 43 8 8 9
|
||||||
|
9607739480: 120 8 1 4 3 7 3 6 3 4 74 3
|
||||||
|
70229: 6 57 4 3 227
|
||||||
|
19346675608: 4 3 7 4 3 7 466 3 5 5 609
|
||||||
|
59456: 9 39 3 3 875 64
|
||||||
|
4049373107: 490 831 2 825 85 1 7
|
||||||
|
38708598: 9 8 89 40 412 1 7 18 2 5
|
||||||
|
217787072132: 186 39 5 2 3 6 9 5 355 6
|
||||||
|
1252444294: 382 309 78 42 9
|
||||||
|
7796721302: 7 796 71 6 5 300
|
||||||
|
232741316: 8 29 741 314 1
|
||||||
|
26910444: 298 907 9 879 9 15
|
||||||
|
40916974: 2 8 5 2 9 8 6 1 5 16 971
|
||||||
|
34830687: 15 387 6 668 19
|
||||||
|
49022893747: 778 140 1 17 7 4 9
|
||||||
|
240774: 4 815 4 1 5
|
||||||
|
2030: 4 95 11 46 895
|
||||||
|
141432: 8 9 395 3 5 8 7 8 3 49 7 1
|
||||||
|
466823: 1 32 544 26 71
|
||||||
|
5847912: 202 47 694 82 7
|
||||||
|
242621: 232 7 801 56 67
|
||||||
|
330876: 8 4 2 2 2 2 7 150 5 18 7
|
||||||
|
93687: 25 197 3 19 55
|
||||||
|
71444393: 1 6 5 9 7 8 5 789 8 423 9
|
||||||
|
6751035: 1 21 553 845 258 5 1
|
||||||
|
191462315465: 957 31 2 3 15 464
|
||||||
|
15511497: 55 8 2 94 73 289
|
||||||
|
494852056149: 918 7 65 77 610 4 9
|
||||||
|
116901382: 42 97 79 9 847 3 608 6
|
||||||
|
287727946: 1 643 7 8 1 2 799 5 1 7
|
||||||
|
26218340: 244 68 525 56 8 8 5 5 4
|
||||||
|
76566: 9 77 13 60 6
|
||||||
|
1830: 292 29 891 531 87
|
||||||
|
403126: 356 9 148 58 706
|
||||||
|
26406: 799 7 32 525 2 79 8
|
||||||
|
61533769122: 1 551 8 75 6 983 189
|
||||||
|
5083523328: 909 3 8 7 1 3 976 4 1 68
|
||||||
|
35952796: 7 5 952 35 39 5 51
|
||||||
|
167412767: 5 1 4 1 9 8 94 38 6 7 7 70
|
||||||
|
2195302: 85 6 308 41 46
|
||||||
|
1474198: 69 9 5 70 54
|
||||||
|
364088987: 88 8 41 8 987
|
||||||
|
78139858: 1 4 5 2 19 3 628 2 7 6 5 6
|
||||||
|
4404409: 63 832 69
|
||||||
|
78435: 7 47 2 61 5 16 7 21 5
|
||||||
|
757520426: 77 2 98 98 26
|
||||||
|
203318778: 4 281 991 7 5 62 31 8
|
||||||
|
287102009: 8 88 930 764 73 6 8 7
|
||||||
|
90227: 48 705 88 61 26
|
||||||
|
8181666: 73 8 8 166 9
|
||||||
|
4345042264: 16 1 3 8 23 5 183 8 62
|
||||||
|
1748: 74 8 5 4 2
|
||||||
|
253: 1 3 5 5 160 54
|
||||||
|
7800887: 9 4 5 7 5 99 79 15 94 7
|
||||||
|
5590: 14 42 8 5 81
|
||||||
|
37762: 87 9 48 2 9 167
|
||||||
|
333279: 2 2 58 80 363 524 1 57
|
||||||
|
171214269218: 844 322 681 3 63
|
||||||
|
118944: 5 8 7 873 93
|
||||||
|
124807260: 419 9 9 3 40 8 270 300
|
||||||
|
57067: 5 2 65 9 88 41 1
|
||||||
|
67645321537: 92 3 2 715 36 71 4 4 9 6
|
||||||
|
897: 1 7 827 62
|
||||||
|
1191701596: 94 6 393 18 83 83 3 15
|
||||||
|
1273: 3 4 7 1
|
||||||
|
144149: 5 9 32 78 68
|
||||||
|
1256472: 63 7 3 2 1 539 71 277 6
|
||||||
|
30990621: 309 83 94 668 4
|
||||||
|
38536499222: 2 510 18 1 9 95 88 780
|
||||||
|
856374: 5 802 1 492 5 7 17
|
||||||
|
130842660: 3 6 58 8 1 3 793 9 4 9
|
||||||
|
69578132: 7 21 1 5 2 47 6 99 7 1 3 3
|
||||||
|
5276748016: 8 7 53 1 208 226 93
|
||||||
|
48947804: 5 910 9 3 8 1 330 773 2
|
||||||
|
194740286300: 5 8 3 275 5 5 2 67 5 89 9
|
||||||
|
22422998: 337 7 85 37 95 905
|
||||||
|
6918244: 6 8 497 29 1
|
||||||
|
45185615913: 97 710 90 9 1 9 1 810 3
|
||||||
|
316116: 27 527 2 312 54
|
||||||
|
11292: 929 9 4 5 201 64 9 384
|
||||||
|
143302570: 4 16 808 8 117 82 888
|
||||||
|
6574936: 810 8 94 844 91
|
||||||
|
19500766: 927 48 20 7 67
|
||||||
|
5496862: 4 4 2 5 86 8 399 28 3 3 7
|
||||||
|
4081: 4 74 6 281 7
|
||||||
|
107041551: 2 57 2 900 35 9 52
|
||||||
|
365716: 8 34 43 277 3 719
|
||||||
|
233199: 34 225 11 9
|
||||||
|
75781172: 315 75 3 8 2 9 1 6 4
|
||||||
|
6441: 3 601 327 1 3 6 45
|
||||||
|
72: 7 5 6
|
||||||
|
1847: 2 645 49 191 869 90 1
|
||||||
|
689524: 27 4 504 47 44
|
||||||
|
421965206413: 87 9 6 8 4 5 206 391 25
|
||||||
|
965613600002: 4 846 6 280 7 140 690
|
||||||
|
50559280: 8 1 6 4 2 4 567 26 534 4
|
||||||
|
365496049: 9 4 32 4 8 7 6 686 7 4 2 5
|
||||||
|
64994090: 2 9 4 1 21 74 3 73 79 7
|
||||||
|
1241: 1 3 4 2 7 1 927 298
|
||||||
|
7392027906: 8 350 66 4 2 7 909
|
||||||
|
72665135998: 6 6 743 1 3 4 3 68 727 8
|
||||||
|
42527813: 6 563 5 4 3 74 13
|
||||||
|
2085967: 414 4 499 14 7
|
||||||
|
10090710861: 386 49 70 80 95 41 21
|
||||||
|
188483597: 7 582 4 8 218 54 1 877
|
||||||
|
367380998: 2 2 2 6 96 3 900 5 998
|
||||||
|
68095186: 23 615 83 8 58 665 27
|
||||||
|
6509884572: 69 3 7 3 5 447 3 29 45
|
||||||
|
24930077: 28 690 986 2 4 3 8 70
|
||||||
|
886840: 24 5 86 770 45 5 883
|
||||||
|
42180751: 55 6 7 350 535 356 90
|
||||||
|
73846429: 761 303 97 4 36
|
||||||
|
118157648: 762 70 33 91 1 9 221
|
||||||
|
31303: 316 129 114 56
|
||||||
|
2340: 1 2 1 90 13
|
||||||
|
38925682: 993 392 77 2 5
|
||||||
|
132208396: 881 37 1 90 5 8 7 3
|
||||||
|
17362906539: 165 30 832 90 653 6
|
||||||
|
513060: 806 636 6 352 86
|
||||||
|
13556739: 451 47 42 13 3
|
||||||
|
87166290: 5 85 372 295 72 4
|
||||||
|
2085930558: 856 47 3 770 559
|
||||||
|
1271377657: 9 33 460 8 7 7 8 914 6 3
|
||||||
|
92480: 40 514 24 4 40
|
||||||
|
203612568029: 9 8 9 3 4 593 8 4 4 80 3 1
|
||||||
|
997367027585: 79 95 567 99 21 6 2
|
||||||
|
14986059: 5 53 1 4 2 4 3 8 9 2 2 338
|
||||||
|
16943: 7 4 20 353
|
||||||
|
192411245217: 1 4 16 3 411 243 2 214
|
||||||
|
3267945: 932 5 35 316 8 35 993
|
||||||
|
7584118814: 7 671 470 45 7 3 34
|
||||||
|
92005506: 773 3 57 87 6 1 761 8
|
||||||
|
83148275295: 3 339 4 451 3 44 80 9 7
|
||||||
|
2758387: 393 7 7 3 88
|
||||||
|
158229124: 29 55 19 2 19 6 28 3
|
||||||
|
19731329: 2 9 1 83 7 94 6 1 2 980 9
|
||||||
|
372969: 6 731 54 84 9
|
||||||
|
44398676936: 995 485 95 8 446
|
||||||
|
29: 4 8 2 5
|
||||||
|
28812: 917 31 113 6 27
|
||||||
|
3221058: 4 4 121 4 4 5 83 41 620
|
||||||
|
5012875154: 898 6 867 8 88 75 157
|
||||||
|
619: 81 324 57 159
|
||||||
|
2000875149: 877 559 36 5 57 387 8
|
||||||
|
538511: 4 7 544 52 863
|
||||||
|
37415205: 7 45 7 9 84 9 78 4 9 991
|
||||||
|
87187684: 567 6 8 2 951 2
|
||||||
|
723726: 7 146 73 188 2 12 9 62
|
||||||
|
5611: 15 2 2 547 8
|
||||||
|
161732: 8 19 1 4 8 39 32
|
||||||
|
77322232001: 8 26 104 9 591 9 93 4 1
|
||||||
|
7664: 9 8 5 45 7 2
|
||||||
|
43978994: 462 45 951
|
||||||
|
184200: 63 29 10 5 4
|
||||||
|
24754844735: 574 385 653 66 2
|
||||||
|
38841958460: 447 488 62 14 60
|
||||||
|
512307698: 78 476 8 7 92 35 2 978
|
||||||
|
978764208: 1 83 5 78 7 56 484 4 8 4
|
||||||
|
51510: 9 1 77 9 7 32 38 7 583
|
||||||
|
519848234: 89 192 64 9 659 7 8 4 3
|
||||||
|
279759946564: 694 6 76 839 58 1 6 8 2
|
||||||
|
27642337368: 30 7 9 658 999 7 368
|
||||||
|
1714046887054: 9 4 3 88 3 699 1 7 3 976
|
||||||
|
2096866: 762 7 4 2 9 7 4 7 1 2 27 2
|
||||||
|
829347: 57 9 11 283 50 19
|
||||||
|
5188: 9 98 18 397 4
|
||||||
|
8546580: 3 931 494 63 95
|
||||||
|
2569449: 4 318 202 3 8
|
||||||
|
1008685401: 3 24 22 9 26 3 511 2 8
|
||||||
|
38907: 341 1 41 3 61 4 64
|
||||||
|
47134149: 59 5 6 423 9 55 2 6 37
|
||||||
|
156: 4 5 48 80 8
|
||||||
|
13690: 373 8 21 967 3
|
||||||
|
152680: 5 4 62 3 9 75 1 7 6 2 5 4
|
||||||
|
22638959: 203 8 12 282 4 90
|
||||||
|
667766987: 6 184 969 39 93 7 5 3 2
|
||||||
|
491050285: 9 3 9 9 9 7 6 28 270 6 8 3
|
||||||
|
123681: 9 1 5 8 4 88 91 3 4 5 14 3
|
||||||
|
2442314: 2 5 7 9 947
|
||||||
|
66996296: 6 1 9 7 48 8 1 1 8 4 4 372
|
||||||
|
527: 6 5 6 4 2
|
||||||
|
18881838: 929 53 32 45 52 21 6
|
||||||
|
41565: 44 3 73 665 8 52 2
|
||||||
|
38558: 1 5 21 68 21
|
||||||
|
6715471: 839 434 8
|
||||||
|
6389: 91 7 6 9 5 7 178 974 5 4
|
||||||
|
2117591196: 3 5 748 679 614 9 3 94
|
||||||
|
28162196: 8 7 1 32 2 196
|
||||||
|
35808181: 2 2 8 746 180
|
||||||
|
9867444479: 73 352 40 6 9 1 2 48 1 4
|
||||||
|
78674: 7 501 25 659 66
|
||||||
|
45024: 4 4 3 3 18 18 57 276 7
|
||||||
|
19756: 4 99 3 942 7
|
||||||
|
799: 34 57 708
|
||||||
|
157466: 8 2 6 8 7 678 40 9 6 69
|
||||||
|
12013722: 53 771 14 3 7
|
||||||
|
305851750: 8 736 8 8 5 6 3 34 8 7 5 1
|
||||||
|
31627: 85 8 4 85 7
|
||||||
|
120636732: 750 274 14 587 7 7
|
||||||
|
239363098: 57 7 6 69 1 1 1 8 59 5 4 6
|
||||||
|
23142: 7 7 4 3 8 579 6 6 8 8 50
|
||||||
|
330: 3 42 4 9 8 5
|
||||||
|
610059: 3 3 2 541 80 888
|
||||||
|
15743730746: 31 237 561 6 84
|
||||||
|
1289162: 5 6 57 370 11 28 8 5 2
|
||||||
|
4912012: 49 120 12
|
||||||
|
21034792439: 47 1 58 1 7 2 7 915 9 39
|
||||||
|
10550: 2 3 9 970 45 8 514 1 5
|
||||||
|
27651: 2 9 1 8 1 5 8 7 8 4 4 35
|
||||||
|
53322: 8 87 4 8 2 66 63 96 759
|
||||||
|
138446470: 26 6 47 682 4 71
|
||||||
|
1648416: 9 278 7 657 3
|
||||||
|
6538688411: 30 351 741 838 668
|
||||||
|
1344480: 7 466 85 43 7 56 424
|
||||||
|
244514648942: 468 4 7 2 5 2 1 2 37 945
|
||||||
|
241060: 8 3 5 67 8 69 6 48 4
|
||||||
|
40133289211: 659 7 87 9 7 2 9 17 4 1
|
||||||
|
435126: 783 57 518 8
|
||||||
|
17711006228220: 76 834 259 998 890
|
||||||
|
5734080: 36 1 1 288 55
|
||||||
|
8979895786: 9 2 93 110 38 8 5 21
|
||||||
|
3330: 532 23 6
|
||||||
|
10241840: 102 34 7 8 38
|
||||||
|
13305407: 2 1 4 5 8 7 259 5 2 12 5 2
|
||||||
|
1433165: 3 9 1 891 73 367 65
|
||||||
|
177433659084: 44 3 58 41 477 10 4 2
|
||||||
|
222432: 311 919 67 3 4 6 71 56
|
||||||
|
85538: 1 4 7 2 910
|
||||||
|
32399920: 9 4 9 9 9 343 93 8 3 8 70
|
||||||
|
3157308169: 1 373 938 9 169
|
||||||
|
48314570: 8 329 1 58 9 3 470 5
|
||||||
|
2157760504767: 751 9 9 76 9 2 9 7 9 2 8 3
|
||||||
|
113124347: 1 9 87 43 2 9 95 347 1
|
||||||
|
234373743: 2 9 28 89 3 4 285
|
||||||
|
65134472: 65 133 910 5 559
|
||||||
|
5111: 5 42 2 513 9 53
|
||||||
|
280608943: 45 909 7 7 7 5 5 9 4 587
|
||||||
|
4944: 40 1 9 45
|
||||||
|
177101: 80 4 186 35 2
|
||||||
|
8123256299: 643 1 251 7 58 4 9 296
|
||||||
|
2610013: 28 55 24 2 655 487 6
|
||||||
|
3473695: 10 681 6 7 17 5
|
||||||
|
102288: 44 8 693 6 8 980 4 2
|
||||||
|
792006: 80 9 71 8 1 44 73 6 82
|
||||||
|
8393424: 656 4 6 4 3 8 4 9 8 87 3 4
|
||||||
|
3357448904: 9 2 514 71 901
|
||||||
|
11955840: 5 778 1 3 2 8 3 2 4 4 16
|
||||||
|
33523655: 1 1 3 1 1 294 8 68 4 5 8 3
|
||||||
|
40658: 1 477 43 78 20
|
||||||
|
419: 5 99 4
|
||||||
|
10692: 9 8 4 4 27
|
||||||
|
2316100872: 772 5 1 6 812 6
|
||||||
|
8456347: 98 587 147 25
|
||||||
|
45388: 6 755 4 4 18 59
|
||||||
|
98449258: 90 859 57 260 7
|
||||||
|
290537744: 880 4 3 514 8 11
|
||||||
|
1920630535: 5 7 1 57 4 6 4 84 1 771
|
||||||
|
41738341141: 8 3 103 9 3 4 6 5 962
|
||||||
|
267888: 53 5 71 5 36
|
||||||
|
457162268328: 14 3 754 7 71 9 6 318
|
||||||
|
9818370: 378 26 9 30 10 3 90
|
||||||
|
136158886: 8 1 7 95 325 2 1 5 3 8 7
|
||||||
|
407: 6 42 69 8 78
|
||||||
|
1012705468: 822 4 44 7 657 811
|
||||||
|
4180406340096: 466 981 98 12 6 36 9 4
|
||||||
|
10705064: 4 424 136 5 931 181
|
||||||
|
2217819683: 7 51 62 9 9 423 96 3 5 4
|
||||||
|
7508279323: 3 250 555 272 3 6 32 2
|
||||||
|
2658216: 558 18 25 4 66
|
||||||
|
59297: 60 97 2 747 351
|
||||||
|
7495229447: 8 328 9 266 28 50
|
||||||
|
2644059830523: 57 55 2 97 574 815 8
|
||||||
|
54008124608: 94 751 10 958 57
|
||||||
|
2207268: 50 592 72 49 50 7 9
|
||||||
|
9395936945: 83 33 540 34 9 806 4
|
||||||
|
65754981: 340 41 89 53
|
||||||
|
5424: 267 8 2 69
|
||||||
|
194627: 564 43 8 613 1
|
||||||
|
75167376: 75 166 1 972 404
|
||||||
|
237336645000: 628 915 45 700 590
|
||||||
|
522553: 7 58 4 91 7 2 7 9 148 49
|
||||||
|
4897: 29 13 6 95
|
||||||
|
13670996090: 500 614 6 73 31 610
|
||||||
|
16290039939: 74 7 6 1 7 882 87 2 438
|
||||||
|
2804002896239: 85 2 41 17 5 52 774 5
|
||||||
|
86506: 910 1 29 157 73 74
|
||||||
|
21660911180: 722 2 15 911 180
|
||||||
|
6815: 6 743 72
|
||||||
|
114802992537: 6 17 215 5 39 1 5 186 2
|
||||||
|
720907: 203 61 587 39 81 8
|
||||||
|
15904808: 28 3 80 96 5 5
|
||||||
|
200829237621: 999 710 37 3 744 27
|
||||||
|
95188135587: 835 3 68 49 755 579 8
|
||||||
|
61525: 81 49 4 75 3 4 5 8 28
|
||||||
|
13221210319: 3 486 9 6 6 4 20 5 5 6 2 8
|
||||||
|
3728996709124: 945 71 9 708 62 96 6 1
|
||||||
|
39283710: 7 46 6 3 64 51 9 717
|
||||||
|
24046652: 1 8 92 61 34 2 646 46 7
|
||||||
|
178492223: 4 1 18 61 81 5 7 2 8 194
|
||||||
|
1677144138: 6 123 83 227 39
|
||||||
|
105579656: 2 3 4 7 2 96 8 6 63 6 366
|
||||||
|
78276190303: 7 94 9 131 13 41 3 7 9
|
||||||
|
110367683: 778 9 8 5 5 3 4 9 394 9
|
||||||
|
7626312605: 4 502 5 552 1 72 598 5
|
||||||
|
56319236258: 9 5 39 82 6 8 9 548 258
|
||||||
|
5406139: 642 842 45 4 6
|
||||||
|
45342: 7 29 96 267 8 1 2 50
|
||||||
|
7525096: 1 820 330 35 97
|
||||||
|
80899207: 11 236 80 9 7
|
||||||
|
1022048029: 328 76 82 5 24 7
|
||||||
|
853304431680: 313 630 752 6 603
|
||||||
|
4608388638: 31 9 958 177 93
|
||||||
|
68959734: 7 8 33 5 44 732 6 2 6 4
|
||||||
|
4653: 845 319 4
|
||||||
|
2523796352: 2 51 789 2 4 8 98
|
||||||
|
185856: 885 21 6
|
||||||
|
19948509: 72 83 24 3 910 396
|
||||||
|
1680716: 236 37 35 71 3
|
3
Gemfile
Normal file
3
Gemfile
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
gem "rspec"
|
27
Gemfile.lock
Normal file
27
Gemfile.lock
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
diff-lcs (1.5.1)
|
||||||
|
rspec (3.13.0)
|
||||||
|
rspec-core (~> 3.13.0)
|
||||||
|
rspec-expectations (~> 3.13.0)
|
||||||
|
rspec-mocks (~> 3.13.0)
|
||||||
|
rspec-core (3.13.2)
|
||||||
|
rspec-support (~> 3.13.0)
|
||||||
|
rspec-expectations (3.13.3)
|
||||||
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
|
rspec-support (~> 3.13.0)
|
||||||
|
rspec-mocks (3.13.2)
|
||||||
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
|
rspec-support (~> 3.13.0)
|
||||||
|
rspec-support (3.13.2)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
arm64-darwin-24
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
rspec
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
2.5.23
|
8
template.rb
Executable file
8
template.rb
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
problem = 1
|
||||||
|
input = File.readlines("#{problem}.input")
|
||||||
|
|
||||||
|
result = :solution
|
||||||
|
|
||||||
|
puts result
|
Loading…
Add table
Reference in a new issue