init
This commit is contained in:
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Cmake
|
||||||
|
CMakeFiles/
|
||||||
|
CMakeCache.txt
|
||||||
|
cmake_install.cmake
|
||||||
|
Makefile
|
||||||
|
|
||||||
|
# Other
|
||||||
|
bin/
|
||||||
|
|
||||||
34
CMakeLists.txt
Normal file
34
CMakeLists.txt
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.10)
|
||||||
|
project(Aoc2024 VERSION 1.1)
|
||||||
|
|
||||||
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||||
|
|
||||||
|
# Adding bins
|
||||||
|
add_executable(Day01 src/solutions/01.cpp)
|
||||||
|
add_executable(Day02 src/solutions/02.cpp)
|
||||||
|
add_executable(Day03 src/solutions/03.cpp)
|
||||||
|
add_executable(Day04 src/solutions/04.cpp)
|
||||||
|
add_executable(Day05 src/solutions/05.cpp)
|
||||||
|
add_executable(Day06 src/solutions/06.cpp)
|
||||||
|
add_executable(Day07 src/solutions/07.cpp)
|
||||||
|
add_executable(Day08 src/solutions/08.cpp)
|
||||||
|
add_executable(Day09 src/solutions/09.cpp)
|
||||||
|
add_executable(Day10 src/solutions/10.cpp)
|
||||||
|
add_executable(Day11 src/solutions/11.cpp)
|
||||||
|
add_executable(Day12 src/solutions/12.cpp)
|
||||||
|
add_executable(Day13 src/solutions/13.cpp)
|
||||||
|
add_executable(Day14 src/solutions/14.cpp)
|
||||||
|
add_executable(Day15 src/solutions/15.cpp)
|
||||||
|
add_executable(Day16 src/solutions/16.cpp)
|
||||||
|
add_executable(Day17 src/solutions/17.cpp)
|
||||||
|
add_executable(Day18 src/solutions/18.cpp)
|
||||||
|
add_executable(Day19 src/solutions/19.cpp)
|
||||||
|
add_executable(Day20 src/solutions/20.cpp)
|
||||||
|
add_executable(Day21 src/solutions/21.cpp)
|
||||||
|
add_executable(Day22 src/solutions/22.cpp)
|
||||||
|
add_executable(Day23 src/solutions/23.cpp)
|
||||||
|
add_executable(Day24 src/solutions/24.cpp)
|
||||||
|
add_executable(Day25 src/solutions/25.cpp)
|
||||||
|
|
||||||
5
README.md
Normal file
5
README.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# (A)dvent (o)f (C)ode 2024
|
||||||
|
|
||||||
|
(A)scyii(o)(C)
|
||||||
|
|
||||||
|
https://adventofcode.com/
|
||||||
6
src/examples/01.ex
Normal file
6
src/examples/01.ex
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
3 4
|
||||||
|
4 3
|
||||||
|
2 5
|
||||||
|
1 3
|
||||||
|
3 9
|
||||||
|
3 3
|
||||||
6
src/examples/02.ex
Normal file
6
src/examples/02.ex
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
7 6 4 2 1
|
||||||
|
1 2 7 8 9
|
||||||
|
9 7 6 2 1
|
||||||
|
1 3 2 4 5
|
||||||
|
8 6 4 4 1
|
||||||
|
1 3 6 7 9
|
||||||
1
src/examples/03.ex
Normal file
1
src/examples/03.ex
Normal file
@@ -0,0 +1 @@
|
|||||||
|
xmul(2,4)%&mul[3,7]!@^do_not_mul(5,5)+mul(32,64]then(mul(11,8)mul(8,5))
|
||||||
10
src/examples/04.ex
Normal file
10
src/examples/04.ex
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
.M.S......
|
||||||
|
..A..MSMS.
|
||||||
|
.M.S.MAA..
|
||||||
|
..A.ASMSM.
|
||||||
|
.M.S.M....
|
||||||
|
..........
|
||||||
|
S.S.S.S.S.
|
||||||
|
.A.A.A.A..
|
||||||
|
M.M.M.M.M.
|
||||||
|
..........
|
||||||
28
src/examples/05.ex
Normal file
28
src/examples/05.ex
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
47|53
|
||||||
|
97|13
|
||||||
|
97|61
|
||||||
|
97|47
|
||||||
|
75|29
|
||||||
|
61|13
|
||||||
|
75|53
|
||||||
|
29|13
|
||||||
|
97|29
|
||||||
|
53|29
|
||||||
|
61|53
|
||||||
|
97|53
|
||||||
|
61|29
|
||||||
|
47|13
|
||||||
|
75|47
|
||||||
|
97|75
|
||||||
|
47|61
|
||||||
|
75|61
|
||||||
|
47|29
|
||||||
|
75|13
|
||||||
|
53|13
|
||||||
|
|
||||||
|
75,47,61,53,29
|
||||||
|
97,61,53,29,13
|
||||||
|
75,29,13
|
||||||
|
75,97,47,61,53
|
||||||
|
61,13,29
|
||||||
|
97,13,75,29,47
|
||||||
10
src/examples/06.ex
Normal file
10
src/examples/06.ex
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
....#.....
|
||||||
|
.........#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
....#.....
|
||||||
|
.#..^.....
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#...
|
||||||
9
src/examples/07.ex
Normal file
9
src/examples/07.ex
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
190: 10 19
|
||||||
|
3267: 81 40 27
|
||||||
|
83: 17 5
|
||||||
|
156: 15 6
|
||||||
|
7290: 6 8 6 15
|
||||||
|
161011: 16 10 13
|
||||||
|
192: 17 8 14
|
||||||
|
21037: 9 7 18 13
|
||||||
|
292: 11 6 16 20
|
||||||
12
src/examples/08.ex
Normal file
12
src/examples/08.ex
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
............
|
||||||
|
........0...
|
||||||
|
.....0......
|
||||||
|
.......0....
|
||||||
|
....0.......
|
||||||
|
......A.....
|
||||||
|
............
|
||||||
|
............
|
||||||
|
........A...
|
||||||
|
.........A..
|
||||||
|
............
|
||||||
|
............
|
||||||
1
src/examples/09.ex
Normal file
1
src/examples/09.ex
Normal file
@@ -0,0 +1 @@
|
|||||||
|
2333133121414131402
|
||||||
0
src/examples/10.ex
Normal file
0
src/examples/10.ex
Normal file
0
src/examples/11.ex
Normal file
0
src/examples/11.ex
Normal file
0
src/examples/12.ex
Normal file
0
src/examples/12.ex
Normal file
0
src/examples/13.ex
Normal file
0
src/examples/13.ex
Normal file
0
src/examples/14.ex
Normal file
0
src/examples/14.ex
Normal file
0
src/examples/15.ex
Normal file
0
src/examples/15.ex
Normal file
0
src/examples/16.ex
Normal file
0
src/examples/16.ex
Normal file
0
src/examples/17.ex
Normal file
0
src/examples/17.ex
Normal file
0
src/examples/18.ex
Normal file
0
src/examples/18.ex
Normal file
0
src/examples/19.ex
Normal file
0
src/examples/19.ex
Normal file
0
src/examples/20.ex
Normal file
0
src/examples/20.ex
Normal file
0
src/examples/21.ex
Normal file
0
src/examples/21.ex
Normal file
0
src/examples/22.ex
Normal file
0
src/examples/22.ex
Normal file
0
src/examples/23.ex
Normal file
0
src/examples/23.ex
Normal file
0
src/examples/24.ex
Normal file
0
src/examples/24.ex
Normal file
0
src/examples/25.ex
Normal file
0
src/examples/25.ex
Normal file
1000
src/inputs/01.in
Normal file
1000
src/inputs/01.in
Normal file
File diff suppressed because it is too large
Load Diff
1000
src/inputs/02.in
Normal file
1000
src/inputs/02.in
Normal file
File diff suppressed because it is too large
Load Diff
7
src/inputs/03.in
Normal file
7
src/inputs/03.in
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
*who():mul(420,173)what()*~why() select()how()-mul(448,672)mul(914,202){^{why()];<&;/mul(748,792)what(),$from()what()when()mul(399,982)<;)]]mul(347,549)@;*);mul(655,663) @select()~%,$#mul(535,284)*--@()]+~mul(2,513)why()mul(239,99)!<mul(2,988)@mul(971,404)?&from()mul(660,516)-;what();how()+!why()mul(612,994)'[mul(253,728)<-mul(208,621)>?}( #]mul(162,534)#+how()}<&what();mul(685,182)mul(146,549)mul(659,511)mul(283,734)*/don't()/mul(579,121)what()mul(790,893)where()@)-{#!who()((mul(985,741)when(),$where()>do()<~''-~-mul(961,154),]select()(select()@what()mul(840,357)] when()mul(47,948))]?what()+*;+mul(331,33)who();&~~mul(983,456)mul(660,500)who()mul(414,834)where()^({>mul(961,732)#^]how() mul(869,618)mul(265,208)!when()*]mul(803,747)>*&+what()+,['mul(490,565)> >/*%mul(238,882)%+$;%&,/mul(629,355){{'/?-who():!mul(441,172):[?;mul(628,85)%%{how()]^>why()>mul(509,935)where()/]select()mul(727,783)?^@why()from()>&mul(75,582)<~!%from(){from() mul(616,901)''why()%-from()>>mul(568,812)%(*mul(833,395)$who()& ;how(112,924)why()?mul(734,354)mul(344,367):what()mul(884,545)when(753,136):{select()[mul(981,829)~!<who()>why()mul(444,22)mul(257,636)from()why();&mul(603,941)}-when()&mul(109,476)#)from()when()+;?,mul(149,108)mul(716,634)/~>:&#?mul(919,396)@why() (who()~!mul(949,950)~~:why()&mul(949,808)mul(678,162)&mul(862,475)?++:, mul(750,321)(# why()#{@/select(282,886)mul(953,52),~from()mul(408,319)?@*:#mul(308,330)select(895,376)&>#-when()do()!@*how(890,967)when()mul(607,743),^,when()}$*&mul(737,198))#[!?mul(979,606),-@+'mul(223,381)when(){+<when()%]{*mulwhere()how()<)*?&where()//mul(875,817)when()from()%how())@#]<who()mul(799,646)where()+((how():!+!why()mul(162,552)@?select()>;{mul(623,192)-}@when()@'who()select()how()#don't()!where()@@&}&mul(853,100)]{]~mul(501,746)-? *mul(599,24)mul(141,255)mul(922,727)*select()>how()$who(){+mul(544,731)/from()how()who();@select()mul(609,809)?$(/why()from())mul(498,52)]:when()mul(60,285)@'$)why() %<']do()!from()from()who()::mul(894,43)#@:$mul(731,263)why()select()who(){mul(516,369)how()who()do()$;&$/[;;[mul(655,571)]from()*what()mul(192,59)+]?select()mul(453,68)from()mul?+mul(281,2){why()]~{!,mul(823,635)^/)where()]who() @'$mul(660,562):%where()why()why()%~how()mul(437,42)mul(590,3)~-mul(428,918)>what()why()&?when(742,360)?mul(786,567)%from()when()-mul(367,375)*}why()mul(455,204)/]<,]+mul(819,196)from()@mul><when()+(where()^}&mul(605,973)&where()&^^<%why()[)mul(227,87)where() }mul(762,536)$%~<:>mul(212,199)what()/where(462,172)~when()select()^mul(794,611)mul(484,833)( ?mul(877,152)]what()mul(758,157(][&+how(){>)mul(408,379);}{when()mul(731,259)#?how()mul(246,943)who()@what(830,854){-+>@~:don't()mul(703,111) #^what()<>^do()>,>^+!mul(57,220)#<${#why()when(457,676)>what()mul(199,247)mul(768,629)
|
||||||
|
)'how()<(/)'';mul(867,986))@mul(909,468)?>from()why():<*select(700,257)>don't()mul(294:why()/&^}select()[:{mul(96,677)from()#?-when()%&&'what()mul(806,612)who()@who()<$select()mul(491,724) mul(47,119)#)^who()'mul(526,381)mul(24,969)from()[;mul(189,60)$<>when(565,624)]+#what()<mul(175,572)#{when())+*(~<mul(993,825)where()from(467,409)from()#@+){mul(67,355)& from()!))where();}mul(808,139);<^who(842,199)*!+]{^mulfrom()mul(454,197)select()#how();?~$who()(!mul(854,101)>$[where()why()don't()[]):-who()',select(576,158)what()mul(79,672)--<>[-[mul(248,857)!<^when()]mul(881,761)^!):how()@mul(812,759)what()*>why()+~*-mul(993,256)${-when()mul-&/!what(781,304)why():mul(627,605) >(&%!where(){why(296,454)mul(990,864)!,&(select()'^mul(537,400)what()why()?-where()@:mul(752how(231,812)why()-how()where(956,169)mul(146,184)~}@%],$(who()@mul(716,486)+why()/what()+:{mul(42,180)$when()'][*how()>&mul(611,512)what(155,381):>;(mul(423,432)$,when()&where()mul(976,409)why()@ >why()~#-select()@mul(50,854)$@#mul(42,58)$when()!-#mul(326,406)~where(195,918)where()mul(3,647);['~];$how()why()what()mul(966,495)mul(324,653)mul(47,577)#+(*+^$)mul(144,392)/mul(135,506)what(729,718)don't()%'>mul(609,314)%:>*~mul(120,925)mul(765,209){select()$:#mul(741-$%!;mul(166,556)when(523,779)select())mul(820,823)%~:where())/{when()/mul+where()why()+{;mul(41,341)>~>+mul(960,552) do()who()mul(381,244)?(@+@mul(287,560)!mul(954,480)$where()mul(914,431)}!::what()(}!who()+mul(586,399)from()@why()?when()how()when()when()mul(802,73)mul(14,93)$what()why()%when()(mul(569,2): mul(793,2)mul(301,988){ mul(732,16)why()select()/^{mul(573,997)()*;;from()){mul(477,194) [mul(180,519)from()!where()@$mul(797,512/;select()?who()+how()mul(176,169)from()$<!mul(830,661)(+[mul(466,467)do(),{ ('<mul(145,237)[why()how(111,297)+from()&,mul(369,942)<<select()+;>when()&do()>*,when(277,359){mul(326,605)how()where()}<}:/mul(852,42)what()$)mul(12,636)mul(991,890)]^where()~'do()where()?when()-})@mul(283,368)!,@!$]$@ do()/#'why()-mul(972,409),mul(69how()!*+$where()')where(768,54)&mul(813,972)>select()]+] %#'?mul(701,332who()mul(471,905)+,mul(190,8)how()who()/mul(734,501)select()>how();from(){mul(533,838)who(386,331)how(356,935)[;}mul(373,528)%'*%mul(691,404)@'{^mul(885,376)why()-*mul(439,454)mul(743,477)((!what()][mul(606,298)[/who())how()[>mul(306,944)'when()'what()when()what();}@-mul(294,922)[why()don't()why())~![mul(516where(380,379)#who()mul(564,911)>?where()mul(53,783)#why(725,816)mul(646,866)+select()when()(mul(737,165)/mul(869,809)}mul(207,700)when(),&why()select()&@who()mul(773,864)when()$<(why()mul(320,655)^mul(131,141)when(),mul(634,514)select()&mul(483,605)+mul(934,936)where()]%:(who()]*from()mul(360,239)what(594,220)/%how()select():&#who(725,14)/mul(770,595~%%$]mul(213,299)*#[*mul(116,151)#<&!@>how()'from() mul(605,523)from()(who()mul(593,247)>select(),'who();mul(449,779)*how()+how()how()mul(956,857)do():~mul(826,140)^mul(224,267)<)who()?{-^~:mul(789,774)][*why()@-mul(443,401) what()mul(823,217)when(){*/why();>what(637,904),who()mul(264,561)]%-(how()how()mul(361,672)}when()(<!when()when()<mul(242,102)&;who()how()mul(621,459),where()select()$%$where()mul(882,598)
|
||||||
|
how()#what()where()$who())*<do()when()&[*(select(973,490)~mul(229,108)}%;%don't()mul(597,35)^mul(573,106)!]/{}]what()when()%?do()mul(374,846)?%from(74,478){who()mul(191,307)!}{#[)mul(372,182)(why()(do()mul(113,448)+>when()-mul(850,888)(:-'do()-+-&*mul(798,594)when()-^(<why()from()<mul(704,684)%/why()$don't()$}$when()from()-*-}mul(408,178)why()}+$-&how()mul(572,313)+@]&mul(400,367)how()when()]<who()<'mul(399,406)%]> )(mul(990,700)mul(822,80)mul(803,211)+ %]who()>*mul(614,212)where();how()what()mul(969,702)~[@mul(916,424)*(from()mul(119,685)<mul(889,37)from())$[who()[-(<how()mul(608,492)-[#]:how()mul(189,469),^>'mul(242,632),mul(236,192)&}(-;from()!mul(409,803)mul(26,832)mul(179,583)%;mul(331,141)&select()mul(586,628({)~:mul(201,618)$from()]what()?*mul(346,455)mul(186,191)where() -when() ~&[)why()mul(227,155){&~mul(572,168)(from()}-:when()#where()mul(532,271)when()??:)'mul(482,565)>/^;mul(849,201))&~~-how()$mul(537,900)?+)select()mul(562,60)how()mul(80,960)/&+'!what(),@@mul(741,753),do()!>from())(~mul(434,18)mul(662,562)-'why()mul(205,696)what();from()who()mul(656,755)mul(197,722)?@what()*?*'~mul(935,826)')'%}mul(675,242)/{~mul(119,521)+how()mul(644,874)select():from()mul(538,772)why()~[%#}how()&[mul(911,456)]when()where()$)?mul(422,424)?how()!when()]+mul(931,256%!#<mul(3,464){*}*/mul(618,975)(:,who()]mul(842,565>where()?when(689,268)-^<$mul(303,826)#what()$mul(400,12)~#mul(81,564)>}who())?/+$mul(871,726)?: [how()/}what()mul(694,277)>from()from()/**??)mul(395,609))^when()why()mul(615,463),why())@*when())select()mul(363,846)'&*)!]?)#mul(355,458)- don't()^ ^-'^what()-how()&mul(631,476)/where()^[+*>;mul(89,941)^$&}from(),'do())who()select()'^+& when();mul(434,156)(:@/select()>+from()*how()mul(508,595)mul(779(/&}mul(583,481)mul(624,130)$;??- :]^mul(66,470)mul(169,109)!{,@@]*)mul(984,230>}'%?#&~#don't()why()%,#<:$'mul(251,527):select()}mul(213,941)}^$#@mul(680,847)}$,)who()^~^why(),mul+){where()where()don't()^,#;when()>why()-:mul(226,208)-<from()<where()]what()&^*don't();)&from()^,mul(715,140)!<&how();{mul(300,628)($+ where(497,386);;what()how(612,199)mul(112,519))([mul(995,792)where(),{where():{$where(397,933)!mul(10,240),#who()mul(690when()%what()}~]where()do()^-'!from()!where():where()&mul(785,298)>who()#!~;<([mul(34,783)[when()from()]who()from()mul(421,685)mul(55,857)% -$/'when()]do()%mul(295,33)/mul(211,988)mul(492,249)select()//from()!mul(678,139)?what()why()?/!why()what()mul(62,558);~+ [don't()select()^from()~ +what()where(){-mul(46,220)why()>@~from()?{mul(78,499)/mul(13,468}{'[select()-}};do();]'}^(>-why()who()mul(458@~~who(),@;)why()/mul(56,660)mul(555,777)/$mul(660,540)@why()what()from()(!mul(317,310)^,&-+why()why()*mul(163,392)what(){}+}don't()why()%<select()}/mul(693,615% ]who()what();'>mul(593,212)+what()@mul(235,578)where()~?don't()select()&where()/#[~,+mul(540,363)who()mul(460,343)#where()select(63,367)'&^!mul(553,169)#^$ <why()mul(22,209)]?mul(129,490)]+mul(824,295)who()(!!mul(878,169)how()>mul(521,969)where()*&select()&~why()select()/{don't();mul(853,399)$mul(808,9))how() }when()don't()^>(-mul(938,463)/*#!/usr/bin/perl^)when():mul(751,26)
|
||||||
|
mul(542,820)select()$mul(103,40)]how()? :mul(682,891))mul(837,527)+when() >mul(441,283)^ mul(603,169)select()%!mul(772,674)from()how()@^mul(222,674)from()who(),select(102,983)who()~[mul(697,571)$]:^from()~{?mul(763,249)}:,why()select(188,51)when()$select()how(412,892)[do()why()what(),&mul(258,614)mul(210,257)-)^mul(898,947)#mul(134,666)~,^mul(757,293)(where()!mul(977,413)when()))what(58,623)mul(706,330)who()where()who()select()mul(286,97) ]why())/mul(876,454)>}mul(412,509how() )+who()mul(402,110)/-%}where()when()do();^what())?()$]mul(257,787),from()!+~}*mul(250,775)<why()mul(826,349)!select()what()$mul(668,426)]/ {[mul(552,132)##why():mul(289,363)~',what()don't()%where()~who()what()#)@#mul(815,869)}where(){~}&mul(401,620)-where()]]!#+@mul(787,918)@}:mul(231,854(mul(488,659)?mul(267@when(211,508)where()*],mul(894,288)how(){mul(633,28)? (///&mul(235,462)&'how()mul(6,249)%~&!why()how();+)don't()?@,mul(291,493)mul(731,513)mul(650,232))+;![when()mul(244,943)mul(810,586~ ~mul(133,729))^&%''@~who()don't(){mul(850^'why()mul(91,172)^#&] who()%mul(403,294)-~)where())#<mul(224,258)+,}$$?when(925,148)mul(83,251)/mul(570,58),+how()why()mul(130,998):- ( what()where()[what(),mul(221,150)$$,do()%;%mul(920,992)[mul(314,990)#{select()&mul(265,592)mul(197,785)<(+{/? why(){~mul(144,77,!~select()-(*when()mul(227,184)?how()^? }mul(576,268)'>when()mul(735,684)why()(from(){)^how()from()!mul(749,268) how()mul(613,859)when(424,496)from()~^[mul(450,275)how()mul(41,682)when():when()what()when()*'[how()do()&'where(271,301)@}select()~mul(745,186)',[mul(585,614)what()^@when(224,919)/#>,-mul(374,69)-)< who()~when()why(),mul(30,174)-[what(357,897)where()who()@mul(10,444)'how()'when()what()&$mul(809,809)who()?+(~what();;mul(531,509)^^^%(~~mul(119,968){why();who(677,751)who()!mul(161,854)^^ how()](mul(481,323),/<how()why()&?mul(878,699)~ -mul(658,842)when()/!( ~ mul(593,125)^mul(486,116)+'!(#}:%@mul(922,260)~mul(163,921):what()'<what(120,761)/:select()don't()select()select()}<-when()?}mul(601,494)mul(184,68)mul(703,694)&;;!}![mul(255,743)who()* ^select()%mul(772,315)what()-mul(799,280):who()why();!what()]+what()how(847,982)mul(276,198);select()<*;>:,@mul(293,345)/)what()%!what()<~mul(959,852)/+$why()^<!-mul(756,324)how()>why()where(),@mul(281,314)#when()%]! -mul(347{why()select()why():)^~mul(10,106)%+?%when()mul(941,657)select()when()&,@@'@mul(250,253)#,what()mul(539,823);^*<[mul(422,155)who(){$:-&#mul:mul(61,174):why()'where()don't()select()<&+!/@&<-mul(596,236)~mul(339,838)'}mul(263,931)!how()mul(65,701)from()'/>/)mul(879,804)how() {*((mul(213,689)*[when()}what()?where())mul(727,958)mul(246,840)+mul(150,479)>?~from()*mul(552,678)?don't()$~?'mul(97,380)>mul(968,76)}#!from()mul(435,362why()#}when()*[how()'!#mul(357,345)}?why()[[mul(356,875)%when())$#mul{from()mul(289,657)from(681,624)'<;who()mul(514,298);{ mul-/[(:who():mul(789,109)where()%}what(435,852)mul(330,192)why();)$-]+mul(617,542)mul(244,889)?*%'>!mul(799,990)from()(mul(234,708)
|
||||||
|
@; ;?&]?#mul(577,752)%*)$&why()!%[mul(7,487)how(),@]select()$mul(38-?-+:^[from()#mul(252,810)who()]<+<who()how()]mul(85{$+who()mul(30,63)~who(743,434)~;mul(808,964)~?mul(459,384)>!)mul(976,357)[}mul(341,264)/#select(),%select()&mul(547,552)where()from()@+}#:mul(592,61)&how()what();select()!^select()(mul(273,4)'/^mul(446,170)%]]'~+mul(678,454)when()}select())/?#+}mul(180,876)-%%why()mul(255,652)]why()$#!mul(114,812)-?mul(207,511)<who()<>[$how()+}^mul(790,315)%who()/&<mul(631,708)+%+mul(674,272)when(792,225)&~how()}+how()mul(342 /where()how()who(){<{~mul(848,950)>]do()]#@why()/mul(743,708)mul(430,155)+what()(what()'who()$<;mul(700,543)mul(574,126)mul(139,29)who()what() mul(47,32)what() [;don't(),%who() ~}{mul(176,682)>@~select()when()# %,@mul(808,816):~^)where(629,778)%>+'@mul(177,383)mul(29;what()@*mul(324,53)?'?$~-mul(509,507)$}where(929,765) ~%]what()&mul(325,403)how()-<from()&where()}who(){mul(505,703)select(107,676)&mul(252,930)select()(@$?*;mul(143,564)from()':select()do()]mul(130,866)how()#?select()&@who(811,263)why()mul%[(;&;mul(818,893)mul(654,383)@(/&]?don't()*>when()@how()>mul(900,560)what();@)$select(723,538) +)'mul(899,730)},}$select()*~!from(872,462)mul(269,888)+//)<(how()mul(688,635)#>$+)mul(62,201)from()/@,*<,:{mul(808[!-from(),why()~@'{mul(719,116) don't()+where():)mul(139,220)what()*>who()mul(162,455)who()~mul(460,418)<>&?:/&}from():mul(238,979)&/!@'%~+mul(863,124)'~-*select()[@:do()why(124,979) [{'why():#who()how()mul(38,201)&/when();+mul(678,638):}>:$*select()mul(367,239),){*mul(512?>([what()@ do()[-&mul(39,285)mul(97,17)where(){^do()!:mul(347{who()'mul(316,561);mul(537,106)how(),(!mul(785,385)mul(13,891)~why()~[do()(+]who()<)mul(878,575[mul(295,693)#<where()(++mul(547,320))*-;>:!when()%why()mul(293,288);:what()>^^%(<$mul(640,998)from()}mul(340,293)mul(759,91)&(#mul(831,471)why()why()from()mulwho()who()[[<mul(703,622)how()select()select(712,26)mul(936,215)who();who()<[mul(615,207)*mul(662,445)what(670,709)when()!{mul(21,612)where()/from()~mul(144,583)how()!>^'*mul(210,542)where()%what()~?:,-don't()!mul(305,106)+#@!&,do()~%when()mul(318,660)from()when() why():$-[mul(589,949)@&do()?from()mul(455,593)${!*<~*why()#mul(371,828)where()%({ +%$mul(318,225):where()#-?#%mul(816,5)mul(363,524)mul(580,821)/where()what()*{where();mul(223];mul(830,758)~^ why()/?,>why()mul(787,428)( --'who()what()$~mul(314,163)[what()/*~<(</-mul(602,163)@!when()]mul(997,438)<>?#?[ &select())mul(746,865)mul(101,592))}mul(133,751),;',from()mul(226%how()select()/{$!#select(553,217)do()%}mul(538,699))~when()$?* (what()}mul(755,507)+from()who()who()]how(){--[mul(483,410):' -do()where()$}mul(33,473)mul(835,106)$ {)mul(790,297)how()*where()select()where()*,mul(739,441)mul(561,91)]what()[select()%;what(){mul(601,44where()'):where()(/}<+;mul(956,550)}when()[mul(326,936)<where()~@-mul(238,48)/when()'what()'when()mul(331,847)where()'?don't()>where()how();!from()-mul!/$>?mul(133,674)}what()^*}from()~!mul(39,598)+ mul(119,823)where()$$'when()[mul(524,9)&<<@$-mul(473,929)<why()!:/#-mul(581,168)+-from()*@?mul(217,47)/who()what();select()&don't()+?;mul(840,326)what()<^^when()mul(618,587){select(870,163)how()what()mul(304,775)
|
||||||
|
what()(!what(),^$mul(929,706)**]+mul(518,107)from()@@!when()where()#] mul(353,511)<who()from()don't(){-^mul(269,200)(}mul(691,529)){@<~?where()mul(665,863)$^;{$#mul(571,747)[]mul,mul(641,438)(who()when(832,16)do()~why()who()why()<who()where()#,mul(571,105)!mul(322,339)who()?-:]&%mul(667,821)-] ?who()[,]{who()mul(822,144):select()mul(696,806)how()#,[,]mul(98,576)who(6,143)who()$;^>&mul(154,39)^*why()mul(454,972)>mul(819,718))!select() #{mul(176,840<why(53,917)do()]who()&<from()why()/mul(222,418)select()}mul(53,240)mul(561,784)~mul(304,320)mul(50,387)select()(@%<mul(185,493)when()!/;select()+,why()'mul(423,24)*%[-:what()?'mul(968,778)[?what()}!how()how()%%where()mul(694,257)~~&}how()<),)>mul(989,933)%mul(553,654)/where())+what()what()]%mul(293,835):#/'@-when())$'mul(548,948)?who()-where()when()/when()who()where()<don't()(&from()~why()~%-when(){mul(941,861)'when()who()mul(757,163)where(){'*who() {mul(430,376)(>[}@&when(225,152)do()why()!why()-;how()mul(941,10)when(798,196)[<:<select(592,80)<<mul(216,585)/how():@$<when()mul(730,717)don't()}[{[^who(677,991)]~mul(685,354)$~'*)^<?mul(231,11)@&$&>)%mul(9,571)from()#[*what()&&)$/mul(507,991):#?$$<('mul(959,970)^what()what()'where()%@from()%mul(508,137)}mul(230,238)<when():mul(874,283)${$+?-don't()&!select())who()from();where()/mul(837,931)when()how()(mul(345,324)>]<@!,who()where()#mul(636,897)?why()%]when()?/^)where()don't()select()>@+(!mul(215,107):;where();where()mul(237,981);who()[from()>*<mul(85,235) select()mul(696,477);(where()&/)*what()+ mul(838,830)don't()how()what()*$#>,,;mul(357,549)!{(mul(313,524):mul(172,631)-()mul(197,822)from(510,614);how():(>(mul(450,700)&when()@'when():>&mul(572,27)]select()how()/how()~ mul(427,506)'select()%&how(955,693)~$&[why()mul(670,224)@^'>;why()#where(38,295)mul(265,471)^mul(241,265)*#+{select()when()do()from()<why()mul(576,456)^don't()where()select()<)+?where(),&mul(670,731)mul(641,391)*?(what()#*;:mul(736,498)(from(656,887)from()&from()@do()~when(){why()mul(219,587)*?who()',what()+mul(581,478)${$-mul(316,750){+>^@>mul(444,279)}what()from(),!what()+mul(233,30))%/(&mul(24,452)how()who()where(241,512)>where(),from()^>[mul(337,620)+from(296,671)[~ who()where()}'mul(478,339)<don't()~+<*what()mul(812,697)]why()&why(644,814)when():what()when()mul(652,371)(];#(]?<what()+do()where(64,166)@when()&>@mul(963,388)who()[select()$&mul(268,170)!;select()*)mul(192,33)what()where()mul(497,317){<+do()mul(274,822)how()why()+mul(286,147)mul(377,935)mul(696,807)^when()select()>don't())from())!when()<^mul(799,142)'where()^who()mul(616,986)from()*/mul(697,100)%(select(698,850)don't()%{from(775,182)/@}/?]mul(208,63)~~],mul(15,121)({~mul(704,468)}select()from():?/[what(){mul(707,923),when()mul(253,50),-)how()^#*::select()mul(473,468)what()$#}#:/$how()+mul(569,78)]<>(when()mul(394,997)-mul(184,736)@(@/;%~what()mul(827,383)!#)who())'mul(27,745)-$mul(246,974)how()<,$,$#mul(211,698)select()! when()mul(40,60)]why()mul(98,533)?#)(mul(442,333)who()mul(645,711)how()why(507,343)<#,mul(267,790)select()from()/]]:select()~mul(27,928)/#mul(443,725)~how()@:why()how()%mul(963,554)%mul(490,273)(@ ;-$@$mul(309,347)(mul(830,444)+'}from(){how()#&:why()
|
||||||
|
|
||||||
140
src/inputs/04.in
Normal file
140
src/inputs/04.in
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
SSSMMSAMXSSSSSSMSSSSMAMSMMSMSMXSASMMMMAMXAXMAXXSSMSSSMSMMSXMAXXMAXSAMXMXMAXXMAAMMMMMAASXMSAMXMASMMSMSMSXXMSMSXAXMSMMSXASXSMMSMMXMMMMXMXAMMSX
|
||||||
|
XAAAASMSAAAASAAASAAXSAAAMMXAAAASAMXAMMSSSSSMXSAXSAAAASMAAXASMSMAMXAMASXMMSMSMMXSMAASAMXAXXXMAMXSXMSMSASMXAAAMMMAMXAASMXSAAMASASAMSAMAMXMSAMS
|
||||||
|
MSMMMSAMMMMMMSMMMMMMSMSMSAASMXMMAMSXSAAAXAAAAMAMMMMSMMXMMSXMAAAAXMXSAAAMAXXAAAASXSMXMASMMMSSSMAXAXSAMAMAMSMSMAMSMMMMMAXMMMMXSAMAMSASMSAAMXMA
|
||||||
|
XAAMXMAMXXAAMASXXXXAXMXXAAMXSAXMAMAAMMMXMSMMMMMMXMXMASXMMXMMSMSMSMAXMAMMASMSMMXSAMMSMAAXAAAAAMSSSMMAMMMAMXAMMXMAAAAAXSMMSXMMMXMXMSAMAMMMMAXM
|
||||||
|
MXMAXMAMMMSXSASMMAMMSMSAMMMASXMSXMMSMAMSXAXXAAAAASXAXAAAASAAXXXAXMASXSXAXXAAXXAMASAAMSMSXMMSXMAMASMMMAMAMMSMMXSSMMXMXMAXSASAAAMAMMSMMMSASXSX
|
||||||
|
AAMASMSSMAMMMAMMMASAAAMAXXMAMSASAMMMMMSAMXMSSSSSSSMMMSSMMAMXMMMMMSXSAMASMMSMMMXSAMMSMXMAXXMMMMASAMXMSXSASXMAMXXAXSASMSSMXASAMASXSAAXAASAXAAX
|
||||||
|
SASAXXMAMAXAMXMXSASMSMSXMXMAMAXSAMMSSMAXXMMAAMAMXMAMMAMXMMMMSMAMAXSMAMAXXAXAXXMMASXMXMAMMMMAXSASAXXMAASAMMSAMXMMMMAXASMAMMMMSXMAMXMSMXSASAMM
|
||||||
|
XXMASMMSMASMMSMAMASAMXXMSMMSXMXMAMXAAMAMXXMXMSMMASAXXXMAMAAAASMMXMXSXMASMXMASXXSXMAMXMMSSMSAMMASMSSMAXMAMASAMMSMSMAMSMMMXMAMXAAAXAMXMASASAMX
|
||||||
|
MAMAMAAXMXSAAAMASMMAAMSAXMAXAXXSMMMSSMAMMMMAMAAXAXXSSSSMSSSSMMXXMAMMXMASAXMASAAAMMAMMSAAAMXMSMMMMAAMMMMAMXSAMAAAMXXXMASMSMMMSMMXXASXMMMXMASX
|
||||||
|
AMMAXMMMSMSMMMSASXSXMAASMMMXAMXAAAMAMXAMMASASXSMXSSMMAAXMAAAXMMSMMXAAMMXMMXAXMXMAXXAAMMSMMAXMMAAMMXMAMSSSXMASXMSMMXMSSMXAAAXSMAXSSMMMASASXMX
|
||||||
|
SMXAMSMMXAXAXXMXSASXMXMAMASMASMAXSMASMMXSASASAXAAMAAMSMMMMMMAAAMAAMMMSAMSSSSSXSXMXXMSSMMMSSSSSSSSSSMMMAMXXXXMAXAMXAMMXASXSMXMMMXMAAMSASXXAAM
|
||||||
|
MMMSMMAMMSMMMSMXMXMASMXMSAMMAMAXSMXXMAAAMAMXMMMMMMSMMXSSXMASMMXSMMSAAXMAXAAAXASASMXXMXMAAXAAAAXAAAAASMMSXSSMMSSSSSMSAMXXAXMASAMASXMMXMSXXMMM
|
||||||
|
MXAXASAMXAAAAAAXMAMMMMXXMAXMSSSXSAASMMMSSSMMSXMASXMAXAMMXMASMMMSXAXMMMSSMMMMMMMXAXSXMASMMMMMMMMMMMMXMASAMSAXSAAXXAMMMSMMMMSASASASAMSAMXMASAS
|
||||||
|
MMMSMSAMSSSMSMMSSSXSASXMMMSAMAXAMXMSMMAXAMXAXMSAAMSSMMMSASXSMSAMMMSAMXAAAXMAXXMSMMMASAMAAXSXXSXXSXXSXXMAMSAMMMXMSMMAAAXASAMXMMMXSMMXAMXAMSAS
|
||||||
|
XSASXXAMXXMXMXMMAMASXSAMAAMAMMMXMXMSAMXMAMMSSMXSMMAMAAXSASAMAMASMAMMMMSXMMSXMSAMXASXMMSSMMMMMMAMXMAMXMSMMMAMAXSAAASMSSSMSXMMSMXMMASXMMSSXMAM
|
||||||
|
AMAXAMSMMAMXMAMMAMAMXMAMMSSSSXSMSXASAMXXASAMAMMMXMAXMMMMAMXMAXMMMASMSAMAXXXMXMAXSMSSXAXMAMAAAXSXAMAMAXAXAXAAXMASMXMAAAXASMMAAXAXSAMASAMXAMMM
|
||||||
|
SMAMSMMASXMASAXSXMXSMSMMMMAAXASAAMXMAXXSMAXSAMASMMMMASAMXMASXXSASMSXMASMMMMAXSXMXXSXMSMSMSSMSAMXXSASMSASMSSMSAMAMMSMXXMSMAMMSSSXMXXAMAXSMMMS
|
||||||
|
XMAXXASAMXSXXAMSXSAAMAMAAMSMMMMMMXXSXMMXAMXSASMSAASXMMXSAMXXMASASMXAMAMAMSASMXXAXMXXAAXAAMAAAMSAMSAXXMAMAAAAXXXAXASASMSXSXMSMMMAMXMMSXMMXAAA
|
||||||
|
SMSMSMMAXMXSMSXSAMXMMAXSXXAMMMAMXSAMMSXXSXASXMXSMMMAAAMSAMXMXMMAMAMSMMXAMXXXAAXSXASXSSSMSMMSMXMAMMXMSSMMMMMMMSSSMMSAMSAAMSMAASXXMASAAMSSSMSM
|
||||||
|
AAAXAXSMMSAMXXAMXMAMXMMMXSASMSMXMMXSASAMXMASXMASMMSSMMASXSAXSAMXMAMXAMSSSMXSXMAMXSMAAXAAXMAMXXSSMMXMAAAXSAMAXMAMAMMAMXMXMASXSMAXMAMMXMMAMAAX
|
||||||
|
MSMSXMSXAMAMAMMXAMASAMAMXXAMMAMXMMMMASASXMAMAMASAMXMASXMASAMXAMXMXXXAMAMAMASMSAAMXMMMMMMMMMSMXAAXAXMAXMMSASMMAMSSMMXMAMASXSMXXMMMSXSAAAMMMMS
|
||||||
|
XMXMXMXMXMMMXSMSXXASMXAMSMSMSXSAAAXMMMAMXAASXMMSMMAMMSAXAMMMXSMMXSMSSMMSAMMSASASASXXXXAXAAMAMSSMMSXMMSSXSAMXAAMMAXAXSXSMXASAXXXXMXAMXSMXMSAM
|
||||||
|
XAAMAMAASMSSMAMASMAMXSSSMAXAXAXXXMXMSMXMXSMSXSAMASXMASAMXXMSMXAMAMXMXAXXXXXMXMXMXMMMSSMMSSSMMXAXAMASAAXMMMMMSMSSMMMXSASXMAMMMSSMSMSMAXAXXMAS
|
||||||
|
SSXMASXSAMXAXMMAXMASMMMAMXMMMMMSMMXSAMMSAXAMMMAMASMMASAMXSMXASAMASMSMSMSASXSAMAMXSAAAAAMAAMXXSXMASAMMSMMSSMMAMAAMAMAMXMXMXXAAAAAAAAMMSAMXSAM
|
||||||
|
XAXSAMXXXSSSMXMSSMSAASMSMXMMASASAAMSASAXASAMXSXMASASMMAAAAXMMMASAXXAAAXSAMXSASMSMSMSSSMMMSMMXMASMMXSXXAAAAASAMMSMMMASMMXMXSMMSSMMSMSXSAMAMAS
|
||||||
|
MAMMSAMXAAAAMXAXXMXMMMXMXAMSMSASMMMSAMMSASXMASXMAMAMXSMMASAMXMMXAXXMMMXMXMMSMMAAMXMXMAMXAAAAAMMMAAAMAMMMMXMMASXMAXSAMXSASXXSAMAAAXXXASAMXSAM
|
||||||
|
MMMMMXXMAXXAMSAMXXXXASAMMXXAAMAMAXAMXAMMMMAMASMMSMMAMMASAAMMASXMSMXXASAMAMXXMASXMASAMAMSXSMSMSAMMMSSMXSXSXMMMMAMAMAAAMXAMMXMSSMMSXSMMMXSMMAS
|
||||||
|
SASASMXMASMSMXMXMMMSMXASAMSMMMSSSMXSMXSAMXMMXXAAMXSMASAMXMXSASAAAAAXMSASXXAAMAXMSXSMSAXSAXAMXSXSXAMAMSMASAMSSMMMMMSXMXMSMMSMASXAMMMAMXAXAXXM
|
||||||
|
MAMASAAMAXAAXAXAMXXXSMSMXXAXAXMAMAXXAMSMMSXSMSMMSXXAMMMSASXMMSMSMXSAMXXMAXSMMASAMXMAMXSMAMAMAXAXMXSAMAXAMAMAAAXSAMXXMMMMAAXMASMXMASAMMSSMSSS
|
||||||
|
MAMAMMXMSSSMMMSMSMAAMXXSXSASXSMMMSSMSMMAXXAAAAMAXMMSMAMMMAMXAXMMXAAAMMAMXAXASASMSAMAMXSMAMXMMMXMMXXAXMAXSXMXSMMXAXXXXAASMMSMASAMSAXAXAMXXAAA
|
||||||
|
SMMSAMXSAAAXSXAAMXMXMAMAXMAAAMMXAXMAAMSSMMSMSMMMMAAASXMASMAMMSASMSSMMMMMMASAMXSASXSASAMXAXSAMXMASMSXMXSXSASXAASMMMSMXXMXXAXMAXMMMMMSMMXSMMSM
|
||||||
|
AAAMAMSMMXMAAXMXMAMAMASMSXSMSMAMXSSSXMAAAAAAAMASMMSMSXSXXXSMXAAMXMXMAMSAMXMXSMMMMASAMMSSMSMMSMSASXSAMXXAMAXSAMXAAAAMMSSMMSXMASXMASAXAXSAAXMM
|
||||||
|
MMMSSMSASXSAMXSASASASASXAAMXXMAMXMAAMMSSSMMSMMASAAXMXMMSMSMSSMXMXXAMMSSXXMSAMXAAMMMAMXXXMAMAAAMASAMAMASAMAMXXSSSMSXSAAAMAAXMXAXSAXMSSMMSMMSX
|
||||||
|
MXMXAAXAMAXSXXSASASMSXSMMSMAMMSMXMASMXXMMAMXXMMSMMMMSAAAMSXAMMMSXSMSXMXSAAMASMSSMMSAMXMXSASMMMMMMMSXMASXMASMMAMAAXAMMSSMMSAMXSMMSXMAAAAXXASM
|
||||||
|
SAMSMMMSSMSAMAMMMASASAMXAXXXXAAAXASMMXMAMSAMXSAMXMAXMMMSSMMXSXAMAXMAMMAXMXMAMMAXAXAAXSAMSASAMXSXAXAXMXMXMAAMMASMMMXMMAXMXXAMAAAAAXMASMMMMSSM
|
||||||
|
SAMXMXAAAXMAMSXSXXSAMMMMXSASMSMSSMMMMAMXAMMSMMASMSMSAAXMAMASXMAMSASMMMAMXMMXMMAMXMSAMASAMMMXXAXAXMMXSAMMMMMXSASAAXSAMXSMASAMSSMMSSSMMAXSXAXA
|
||||||
|
SMMAAMMSSMSAMXAAXMMAMMAMAMAMAXXAAMAAXAXMASAMASXMAXMAXMXMAMXXSAAAMXMAMXAXXSMMXMXXAMXSMSMMMASAMSSMMMXMSMMAXASXXAXXMMXMASXMXSAMMAMAXMXAMMMAMMSM
|
||||||
|
XASMMMAXAMSASMMMMXSSMSASAMAMAMMSSMSXSAASAMXSMXAMSAMXASXSASXMASMXXXMAMXSSMXAMSMMSASAXXXAXSMSMXXAMMXAXMXSXSASAMSSMMSMMMMMSMSAMMAMSSMSSMMMMSMAM
|
||||||
|
SMXAAMMSMASXMXMASMMMAXASASMMASXXMAXAAMMMASAAXXMMAAMAMAMSAXASXXMSSXSASXMAMMAMMAMXAXXMSMMMAMSXXMAMXSMSSXAAMXMAMAAMSAMXAAMSASXMXXMXAAAAXXAXMASX
|
||||||
|
AXSSMSMAXAMASMMAXAASXMXMMMXSAMXXMAMMMMXSAMASXMXSMXMMSMMMSMAXAAXAAASAMXXAMMAXMAMMXMAMSAASAMSASMMMMXAAMMMMMAMAMMXMSAMXXXXMXMASXMMSMMMXMSMMSAMX
|
||||||
|
MMXAAXMMMASAMAMSSSMSAMXAXAXMASXXMAMXAXMAMXMMMAAXXAXXMXSAMMAMXSMMSMMASXSXMXMSSXXAAMAMMSMXMSMAMMXSMXMAMXAAXMSSMXSASAMSXSAAMMAMASMMXSXAASAMSAMS
|
||||||
|
MMAMMMMXSAMAMSAMAMXSMMSXMMMSAMXMASXSASMAMSXAAMSMSMSSXAMSMMMSMAXMAXMAXMAXSAMXMMMSMSAMMAMSXAMAMSMSMASXMSMSXMAXAAAMMAMAASXMMMAXSMAMASXMSMAMMAMM
|
||||||
|
SMSMAXMAMASXMMAMXMASMASXXAAMASAMXXMASMMAMAMXXSAMXAAXMXMAXMAAXSMSASXSSXSASASXXAXAASAMSAMASXSASXAMSASAAXAAXMASMXMXXSMMMMMXSSSSXSSMAMXMAMAMSMMX
|
||||||
|
AAAXXXMXSMMMSSXMAXMXMASXSMSSXMASMXXXAXMXXAAMXXMASMSMSASXSMSSXMAMMSAAAAXXSMMXSMSMMMAMSASMSXXXMMSMMXMMMMXMSMASXMXSAMASXMMAAXMAMAMMMXAMSSMMAMMX
|
||||||
|
MSMXMSMXSAASMMMXXXXXMMSAMAMXMXMAMMSMSMSSSMSAMXXAMXXASASXAAAMAMAMAMMXMMMMMXAMXAAAASAMXAMXMMMMSAMAMSSSMMAXAMMSMAMMMXAMAAMMMSMMMSMAAXSMMAXSAXSA
|
||||||
|
MAAASAMXSMMSAMMMSAMXMAMAMXMASASAXMAAAAAAAXXMAXMMSAMMMMXXAMXSMSAMXSXSMMAAAMXXXMMSMSMMMXMAXXXAAXSAMMAAXSXSXSXMASXAMMASMMMMSMASAMMASAXASAMSMMAX
|
||||||
|
MMSMSASAXXXSAMAAAASXMASAMAMAXAXAMSMSMSMMMMSXSMSAMMSXSXMSMSXSXSAMXAAXASMSSSSXASAMXMMSMSMSSXMASMSMMMMMMAAMAXAMSASAMAASXMAMASAMXSXXMAMAMMXXXAMX
|
||||||
|
MXAXSAMXMAMXAMMMMXMMSMSASXSSSSMSAMAMAXXMSASXXAMASXXAXMAAAXAXXXAMSSSMAMAAAAXSAMXMAMAAAAAMMAMAXXXAMMAAMMXMASXMMMXSMSXMMSMSAMXXAMMAMAMXMXMAMSXM
|
||||||
|
XSAMMXMASXXSAMXXMMSAXASMMMAXAXAXMMAXXXAXMASAMMMMXMMSMASMSMXMMMAMXAAMAMMMMMMSXMSXSXSXSMSMSMMMSMSSMSSSSXMMAMAAAXXXXMAAMAMXXMASAAAASAMASAMAMAAS
|
||||||
|
MSXMAXXXXMAMAMXSAAXMMMMMAMXMMMSMXSSSSMSMMXMXMMAMAMAXAMXAAASMSAMSMMMXMXAAAXXMAASAXAMXAAXAAXMXAXMAAAAAMMAMXSSSMSSMASXMMASXMAXASXSMSASASXMAXSAM
|
||||||
|
ASAMXMSAMAXMSMASMSMXAAAMXSMSXAAMXMAAXAXXSAMXXXAXSMMSSSMXMXAAXXSAAAAASMSMSASXMMMAMAMSMMMSMSXSXSSMMMSMAMSMMAAAXXASXMMMSAMAAMSMMMAXSXMXSAXMXXAX
|
||||||
|
SMAMAMSASXSAXMXMMXMXSSSSXXAXMXSMAMMMMXMAXASXXSSSXAXAAAAASAMXMSMMSMSXSAAXMASXAAXAMAMASMAAAMAXAMAMXAXAMXAAAMXMMSMMMMAMMMSSMMXAASAMXXMMXMASMSXM
|
||||||
|
ASMMXMSAMAMASXMXSMSXAAXAMMXMAAAMSMXMASMSSMMXXMMAMSMMMMSASAXAXSAAMMMMMMMMMXSMSMSXSXSASMSMMMAMMMAAMMSAMSMSXSAAAXXMASASAMXMMAXXMMXMAXSAAXXMASXM
|
||||||
|
MAXXSAMXMXMAMMAXXAMMMMMAXXMASMSMMAXSSXXAAAMMMMMXMXAAXXAAMAMXMMMMSXAAAAAXXXSAXXMXXMMXMMASAMMXSAMXSAMAMSAAAMXMMSMSASMSASAMXMSSMSASAMXSMSAMAMAM
|
||||||
|
XXMXMAXSAMMSSXSXMSMSMSSXXSMXMAMAXSMMXSMSMMMAAXSSMXSMSMSSSMSXMAMASXSSSMSASXMMMAXMMMMSMSASMSASMMMXMASXMMMMSMSMAAMMMSMMXSXMXXAAASXMAAAMXSAMSSXM
|
||||||
|
XMXAXSMMSAMXMAAMAAAAAMAMMASAMXMMMMAXXMXXASXSMSAXMAXXXAAXAAAASMSMSAMAMXMMSAAASAAASAAAXMASAMMMAAXAMXAMAASXMMSMSSSMASAMASMSMSMMMMASAMXMAMXMAAAM
|
||||||
|
ASMMMAXXAMMAMXMSSMSMSMAMMAMXMXAXASMMSSMSMMAAXMMMMMSMMMMSMMMAMAAASXMAAXMASMMMSMMMMMMXMMXMXMXXSMSXSXMXSMSXMASAAMAMAXAMAMXAAAXSAMXSMMAMASAMXXXM
|
||||||
|
XMAMSMMMMMSXSXXXAAAXAMXMASXMMSMSMSMAAAAAAMMMMSXSXAAAASAXXXSXMSMMMASXSAXASASASMSASMSSMMMMAMAXMAMASMXMMSXXMMMMMSSMMXSMSSSMSMSSXMASASMSMSASMSMS
|
||||||
|
MMMMAAAAXASASAAXMASXXXASXMAAMAAAASMMSMXAMAMXAAAXMSSSMSMSSXMAAXAAXXMAXAMASMMASASXSAAXAAAMMMMXMAMXMASASAMXSAMXAAMASMAAAXAAAXMXAMASXMASASASXAAA
|
||||||
|
AAASMSMSMASAMMSXXXMAMMAMAXMMSMSMSMAMMMMMSAXSAMXMXMAMAXMAXAMSMSXMSXMXMASASXMMMAMAMMMMSSSXASXMSAMXXXMXSAMSAMXMMMMAMMMMMSSSMSMSSMMSAXAMXMAMMMSM
|
||||||
|
MSXSAXMXXAMAMXMAMMSXMASMXMXAXAXMAMAMXSAMMMMAMXMMASAMXMMSSMMAAAMXXMASMMMASXAAMAMAMAAMAXXXAMAASASMSMMXSAMXMASMAAMMMMASXAAAXXAAAAASMMXSXMMMAMAM
|
||||||
|
MXAMXMSMMXMXMAMAMAAAAAXAXXMSMMMSXSXSAMMSSXSAMXMXASASMXMMAXSMMMMSAXAAMXMAMMSASXSMSXSMASMMSMMMMASAAAXMXXMAXXXMMMSAASASMMSMASMXSMMMXSASAMXXXSAM
|
||||||
|
XMAMAMXAXMSASAMAMXXSMMMASXAMAXXAMXXMAMXXAXSXSMXMASMMAAXMMMXAAAASXMMXMAXXXMMXMXXAXXMAMMAAXMAXMAXMSSMASMMXSMXXMAXXMMASXAMXMXAXMMSMAMAMAMAAXMXS
|
||||||
|
SSMMAAXSAAAXMAASMSMXASXAAMXMAMMASXMMSXXMAAMMSMXAXXASXMSAASXSMMMSAXAASXSSMXMASAMXMMSASXMMSSSXMASMMMXSXAAMMMSASMSXXMAMMMSSXMSMSAAMXMAMXMMSXAAX
|
||||||
|
XAASMSMXASMSMXMAAAAMAMMXMSAMXMSAMAMAMMXMSMMASAMMMSAMAAXXASAMMXXSAMMXMAAXAAXXMAMXAAXXXAMXXAMMMMXMAMXXSMMSAXXAMAAMSMSAMXAXXAXAMSMMAMAXAAMAMXMX
|
||||||
|
XSMMSAMXXXXAAAMMSMMMAMASXSASXXMAMXMAXAAXAAMXSAMAXMMMMMMMMMXMSMMSAMXSMMMMSXSAAAMMSSMSSXMMMMMMAMASMSAMASMMMSMSMMMSAAAMMMAXSMMSMMMSMSASXSMSAMXM
|
||||||
|
MAMXMMSMMMSMSXXMAMXSXSAMMMMMXMASMMSSSMMXSXMAXAMXMAAXASMXSAAMAAASAMAMAXSXAXMMMMMAMAXMAMXAXSASASMSXMASAMSAMXAAMMMXMSMSMMSXAMAMASAAXMASAAAAMXAA
|
||||||
|
AMMSSMAAAAAXMXXSMXXAMMASMMAXXXAMXMAXXASAXASMMMMXSSMSASAAMSSSMMMSSMAMAMSMMSSMASMMSSMXMMMSMAASASAMXMMMXSMMMMSMSSXMAXAXXAMSSMASXMMSSMMMXMMMSSSS
|
||||||
|
XAAXASXMMSASMXMMSMMMMSMMASASXMSSSMSSMMMAMAAXAAXXMAAXAMMMMAMXXMAMAMSSSXXAMAAMASXMAXMAAAAMAMAMAMMMXSAMXMASXAAASASAAXMXMAXMMXAMMXAAAAXAAXMAMAXA
|
||||||
|
MMSXMMMXMMMMMAMAAXAMAMASMMXXAAAAAAAAXSMSMSMSSMSMSMMMMXMSMSSSSMMSMMMAMMSSMMXMMSAMASXSSMSSSMXMXMAAXXASASMMMSSMMAMMMMMASXSASMXSAMMXSMMSMXMAMSMM
|
||||||
|
MAXAXSMMAAAASXMSXSMSASMXAXXXMMMXMMMXMAAMAMMXMXAMAMMSMAAAAMAMXAMXMXMAMXMASAMXMSMMAXXAXAXAXXMASXMSMSAMAXSAAAAAMAMASASASMSAMAAAMXXMAMXMAMSAMXSX
|
||||||
|
MASMMAAAMSXMMAMXASASASXSSSSXSASASASXAMXMASXAXMASMSAAMXXMXMAMSMMMMMXSMASAMXSAAXMASXMMMMMMMXMMXASAAMMMXXSMMSMMSSMXSASASAMMMMMSMMSAMXAMAMMASXMS
|
||||||
|
MASMSSSMXMMSSXMMXMAMAMMAAAAASASMSAMSSXXSSMMMSAXSAMXSXMMSASAMAAAMASMMMAMASASMSMSMXMASASAMAMSASMMMXMSMSASMAXMMMXSXMAMMMMMAMAMXAMMMMMMSMMSMMASX
|
||||||
|
MAMXAAXMAXAXMMMXXMAMMMMMMMMMMMXXMXMSXMAMAXASAMSMAMMMXXASAMASMSXSASAAMMSXMAXAAAAXAAXXAXASAAMASXAXSMAAMAMMAMAAMMASMXMAMASASASXSMAAXAMAMMAXSXMX
|
||||||
|
ASAMMSMMMSMSAAAAXXXXXXMASAXXXXAMAAXMAXSSSMMSAMXMAMAAMMAMMSMMMAXMASXMSXMMMAMSMSMMMXSXMSAMXMMAMMAMAMMSMAMMAMSMSSMXMASASASASASAMSSSSMSASXMMSXSX
|
||||||
|
MMAMXXMAMAASMMSSMMSMSSSXSASMMMMASMMMAMMAMMAMMMXSSSMAXXXAMAXAMXMMMMAXSAMXMAXAAXAMSAAAMXXMMSMAXXXXXXXMXXXMSMXAAMXMAMSMXXMXMXMAMAMAMASXMASMSASM
|
||||||
|
XXMMXXSASMXMXMAMAAAAAXXXSAXAXAAXMXSMMXMAMMAMAMAMXAMAMSXXSMSXSSSSXSXMXAMSXSMMMMAAXAMSMAAMASMSSMSSXMSSMMSMMAMMMXAMAMXMMMSXMXMSMSMSMMMSMXMAMAMA
|
||||||
|
AASAMXSASXMSXMASMMMMMXMAMAMSSMSMSASASXMMXSMSSXAASMMSMMAMAXAASXXSAAXMSSMMAMXMXSMMXSXXMXMMASMAAAASAMXAAAAAMSMSMSXSASXSAAAMSAXMAMXMAMASXAMAMMMS
|
||||||
|
SMSAMXMAMXXASMAMAXMASXSAMSMXAMAAMASAMAXMMXMAAMSMMXAMASXMAMMXMAAMMMSXSXAMAMAMAXAXAXXSMSSMASMSXMASXSSSMMSAMXMAAAMSAMXSMSSXSASMAMMSAMAXAASASAAM
|
||||||
|
XXXAMXMAMAMMXXXXXMMAXMXAXMMXMAMMMAMASAMXAXMXMAXSMMMSMMAASMMAMMMMAXSXXSMMMXAMSSMMMSASAASAMXXMAMAMMXAXMMMXMASMXMXMMMMMMMMMSXMMASXSAMXSMXSASMSS
|
||||||
|
SSSSMAMASMAXASAXSAMASMMXMAXMXXXXSSSMMMSMMSSMXAXAXMAAAXXMXAMAXAASMSSMXXSASMMAXMXSAAAMMMSXSSMSSMAXAMMMMAMAMAMAASASASMSMSAAXMASXMASMMMSXAMMMMAM
|
||||||
|
AAAXSXSAMXXMAXAASAMXSXAXSXMXAMXXXAAAXAAAXAAAMSSMXMSSXMXXXSSMSSMXSAXAMMSXSAMSXXASXMAMXAMAMAXAXXMMSMSAMAMMMSMXMXAXAMAAAXMMSXAAASMMAMAMMXMAAMAS
|
||||||
|
MMMMXXMASMXSMMXMSAMXXMXMXAAMMASMSSMMMSSSMXSSMMAXXMAMXASXAXAAAMASMSMSAASXSXMXSMMXXXAMAAMAMMMMSAMXAASMSMSMXXAASMSMSMMMMMMAMMMSMMASMMAMASASXMAS
|
||||||
|
AXAMMXMAMMASASMXSAAXXMSASMSXSASAAXAAXXAAXAMXASXMSMAMMMAMXXMMMSSMAAMAMMSMMMSMAMAMMSMSSXSASXAAAXMMMXMAAAAXAMMMMAXAXAXSASMASAXAASAMXXAMMXMMSMAS
|
||||||
|
XSMSMAMSXMMSAMAAMSXXXXAXSAAAMAMMMSSMSMSMMSSSMMSAAMSSSMSAASMXAXAMAMXAXMSAMAAAAMASMAMAXXSAXAMXSMSASAMSMSMMSXSAMAMMMMMMAXMMMXSSXMMMXSMMMAMAMMXM
|
||||||
|
XSAAAMXAAMAMXMMMMXMMMSMSMXMXMXMXAXAAXXXAAXAAMAXXMSXAMAMSMAAMSSMMMXXXSMXAMSSSXSAAXAMMMXMMMSMMXMMAXXXAMXXAAAXMAMAMAAAMXMAAMXMXMASAAAAXSSMSXMAM
|
||||||
|
SMSMSXMSXSAXMAMMMMMAAMMAMAXMAMXMASMMMXXMAMMMMMSMXMMMMXMAMMXMAAASXXSAMXSMMAMMXXMXSMSXSAMXAXASXSMAMSSSSXMAMSSMSXSXSSSXMXXASXMASXMMMSSMAXSXASMS
|
||||||
|
AMAMXAMAAXMMMSMMAASMSSSXSASAXAMXAXAAXMAMXSXAXAAMAMXSAAMMMXMMMSMMAAMAMAAAMAXXAXMASAAAMAMMMXXMAASAMXAMMMMSMAAAMAMAAMAASMSMMXSXMMMXXAAMAMMSAMXM
|
||||||
|
AMAMMAMMSMAXMAASMMSXXAMASASMSSMMSMSMSXXXMAXMMSMSMSMSSSSMMAMXMAMMXMAXMMSSMSMMMSMAMMMMMASAXAAMMMXSAMXMMAAAMMMMMAMMMMSMMAAAXASMSAMAMMMSAMXMMMAS
|
||||||
|
SSSSSSMAMMMSMSMMASMMSAMXMAMXMAAXMAXAMXSXMAXSAMXSAAAMAMXAXMSMMMSMMSMXSXAMAXMAXXMXSSXSSXSAXSSMXMAXSAMXSMSXSAMXMXMASXMMXSSSMASASMSAAXXAMAAMASAX
|
||||||
|
AAAAAASXMAAAXXAMMMMAXAMXMXMSSSMMMXMAMAMAMAMSASAMMMSMMMSSMSAXAXXAAAMAXMMMAMSSSMSMXMAMMXMAMXAAXMAXAMMAMXMAMAMAMXMAMAAMMMAXMAMXMAXXMMAAXSMSASXS
|
||||||
|
MMMMSMMXSMXMSXXXAAMMSXMAMAMXAMMAXSSXMXMAMXMMAMMMAAXXAAMAXSASXSMMXSMSXSXMMMAMAMXMAMAMSXSAAMMMMMSSMSMASAMAMASMSAMMMXMMAMMMMXSXMAMMSMXSAXAMMMMA
|
||||||
|
XAAMXMMXMASXMMMSMSSMAASASMXMAMXSAXAAMSMMSXXAAMAMMSSSMMSMMMAMAMXSMMAXASXMXMXMXXASMSXMXASXSXSAMXXAAAMXMASXSXMASMSMASMSSSMAAXXMMMSAAAAMASMMMMAM
|
||||||
|
SSSMAASAMAMAAAAXAAAMAMSAMAASAMAMMAMSMSAXAMXSSSXSXAXXAAAAAMAMXXAXAMAMXMAMSMSMSSXSMAMSMXMAMXSMSAMMXMSXXXMAMXMAMAXMAMAAAMXMSMMAAAMMMMMMAMXAAXSA
|
||||||
|
AMAMSMSASMSXMMSMASMMMXMAMSMXAMXASMXAASMMASMAMXMAXASMMSSSXSXSXSXSAMXSXMAMAAAAMAMXMSXAAXSAMXXAAXAXAXMMSAMAMXMXSMSMMSMXMAAMAAAMMXSAMAMMMMMXMAAX
|
||||||
|
MSAMMXSXMXSAXXXAXXMASMSAMASMSMSAMAXMMSXAAMMAMAXMXXXAAMXXMMAMAAAXMMAAMMXMMXMMMMAXSAXXSAMXMMMXMAMSXSAASASXSAMMAXXAXSXSXMASMMSASASXSASAMMSMXMXM
|
||||||
|
XMXMAXMAMAMAMASMSASMMXSASAXXAASASMXXAXAMXSXMSXSASMSSSSSMSMAMMMMMMMXSXASMMMXXAXXMAMASMMMAAAXMXSAAMMMMSAMMSASAMSMAMXAMXMASXAXAMASMSASMSAAAAMAM
|
||||||
|
SMSSMMSSMMSMMXAAMAMAAASXMXSSMMMAAXSMMSXMAXAMAMXAAAAAMXAAXMAMAAXAASAXMAXAASMSSSMMMXXXAASXSSMSAXMMMAMXMAAXSMMMAAAAXMXMAMSMMSMXMAMAMAMAMXMXXXAM
|
||||||
|
AAAAAMAMXMAAXXMAMSMXMASXSSMAASMMMXMAMXAMSXMMAAMXMSMXMXMMMMSXSSMXAMXSXAMXMMAAAMAAXXMSMMSXXXAMXXMXMASXSSMMSAMXSXSMSMMXAXAAXAASMSSXMAMXMSSMSSSS
|
||||||
|
MMMXSMSSSSMSSSXAAAMXSXMASAMAMMXMSMSXMXSXAASASXSXXXMASMXSXAMXMXMMAXXAMXMMAMMMXMSMSMAMMASMMMMMXASAMMSMMAXAMAMMMXMMXMASXSMAMMSMAAMMSSSMXAAXMAXA
|
||||||
|
XASAMMXMAAAMXMASMMSAAAMXSAMSXSXMAASMMMXMSMMAMASMXAXAMAAMMMSASAXMMMMMSAAXXMSSMXAAAMAMMASMSAAMMMSASASASMMXMMMAXAAAASMXMAXMXXAMXMAAAAAAMSSXMMMX
|
||||||
|
MSMASAXMSMMMAMAXSXMASXMMMXMXASMSMSMAAAXAAXMAMMMAXMMSMMAMAXSAMSMMAAXXAAMSAMAAXXXSMSMSMMSASXSSSXSAMXSAMXSXASMMSMMSMSAXSMMASMMMAXMMMSMMMAMXMXMX
|
||||||
|
SAMXMMMMAMMSMMSMAMSXMMXMASMMAMAXXAMSXSSSMSMXXMASXMAMASAMXMMXMAMXSMSAASMAMMSMMMMAAAMMAMMAMAMAXAMXMXMAXAMSXMAXAAAXMMXMAAAAXAASXSMSAMMXASXMASMS
|
||||||
|
SXSASAAMASAXXAXAMAXASAXMAMXMAMSMSMAXMAMAXSAXXSAMXMASXXAMXXXAMASXMASMMMMXMXMAAAAMMMMSAMMMMMMAMMMAMXSAMMXMSSXMSMMXSAMMSMMMSSMSAAXMAXAMXMAXAAXA
|
||||||
|
SASASXSSXSAMMMMSXSMXMASMSSMMAXMAMXAMASXMMMMSMMASMAAXAMASXMSXSASAMMMXAXXMMASXMMSXAAXMSMXMAMSXSAXAMMASMXASAMSAMAMAMASXMAAAMAAMMMMMAMMSAXXMXMAM
|
||||||
|
MAMAMMMAXMXXAASXXXAAXAMXMAMSSSMXAMXSXXAXMAAAXSAMXAMXMXAMAMAMMMSMMAAMSSMASASAMXXMMSMMXXXMAMXASASXMMAXMXXMAXXMSAMXSAMASMMSSMMMXMAMSSMAMAMSSSMX
|
||||||
|
MXMXMAMMMMASMXXSAXSMSAMMMAMMMAMSMSASMSXMSMSXXAMXAXSXSMMXAMASAMMMSMSMAAXAMASXXXMASAAMMMMSMSMMMMMMAMSMMXSSSMMMSXMXMAMXMAAAAASXMAMAMAXMAXMAAAXM
|
||||||
|
MSSSXXXXAXAXXXMMSMAXSAASMSSSMAMAAMAMXSAAXXAMSSMMSXMASXSSXSXSMSAMMAMMMMSXSMMXSAMXMSSMAAAAAXAAASMMSMAASXMAXAMAMXMAXAXSMMMMSMMMSSMSSSMXMXSMSMMA
|
||||||
|
MMAAASMSXSMSMSMAMSMMMAMXAAXMXMMMMMAMMMMSSMXXAAAAXAMAMAAMAMAMMSASMAMXXAMXXAXMMMSXMAMXSMSMSMSMMMAAMSSSMAMAMXMAXAAMXMXMAAAXMMAAAXAAAMAAMAMXAMXS
|
||||||
|
MMMMMMAAASXAAAMAMAMAMAMMMMXSASXSAMASAAAAMAMMSSMMSXMSMSMXAMAMXMXMXXSXMASMSSMSAAXXMAXXMMXAMAMMSSMMMXMAXSMMSASAMSXSASXSAMSSSSSSMMSMXMSAMMSXMSAM
|
||||||
|
SSSSSMXMMMAMSMSMMASASMSXMAMSAXASAXAXMMMXMAXXAXAXAAXXAAASXSMSXMASMXMASXAAAXASMSSMSMSMSMMXMAMXAAMAMMSSMXMASAMAXMASMXAASXMAAAAMXAXMAXMAMASAMXAM
|
||||||
|
AAAAXSSMMAXMXMAXMASMSMSAMAXMXMXMMMSSMXSASXSSMSMMSSMMMMXMXAXAXSASMAAAXMASMMXMAXMAAXAAAMSMSSSSMSMAMMAMXXMASAMMMMAMXMMMMMMMMMMMMASXXSSXMASAMMSS
|
||||||
|
MMMMMMSAASMMXMAMXAMXSXSASMSSMMSASXAAMASASXAAMXMAMMMSAMAMSSMSMMXSXXSAMAMXXMMMMXMSMSMSMSAAXMAXAXXXXMASXMMAMXMXSMMMSMXAXAMMSXMMMSSMXXXAMAXAMXAX
|
||||||
|
XSXSASMSMXAXMMASMAMXSASMMAAXAXSAMMXSMASMMMSMMXMMXAASMSMXAXAXSMAMAXMXASXMXXAAMMMAASAMXMMSMMSMMMAMSMMSAMXMSAMAMAAAMAMXMASAMAMXMAMXMXSSMASMMMMS
|
||||||
|
XAASMSAXXMXMMMASXSMMMXMAMMMMMMMMMMXMMXXAMXMAMSSSSMMSMAMMMMMMAMXSXSASXXASMSSXSAXMSMAMXSAMAAAASMSMXAASAMAMSXMAXSMSMSSSMAMMSMMAMMSASMAAAAXAAAAX
|
||||||
|
XMMMMMAMMSMMXMAXAMMXXASMSAAXAAXAAMXMASXSMASAAMAAXSAXMAMAXAMSMXMAMMAMMXAXAAXMXXMXXXXMMMASMXSMMXMASMMSMMSMMMSXMXMXAMAXMAMXAASASXSASMSMMMMXMMMX
|
||||||
|
MXAAAMAMAAASXSSMAMMSSMMXSXSSSSXSSSMXMAAXSXSMXMMMMMSSSSSSXMXMXSXXXMAMASMMSMXXXASMASMAXMMMMAMAMXMMMAAMMAXAXAAMSMSMAMMMMASMSXSASXMXMXXXXMAMSSSM
|
||||||
|
ASMSMSSMXMMMAAASXMSAXAAMXAMMAAAXAMMASMMMSMXMSAAMMAXMMXXAASMMASAMMXMMXXXAAAMSMMAMAMXAMXMAMAXMMXSSSXMSMMSSMMXMAAASAMXAMMAMXAMXMASASMAMSMMSAAMA
|
||||||
|
MSAMAXMASXXMMMMSMMMASMMSMSMAMMMMAMSASXMAXMASMSSSMSSMSMMSMMAMASAMAASMSXMMMXMAASXMASXXAMSAMXSXMAMXMMXXAMXAMXASMSMSMMMXSMAAMXMASAMMAMAAMAMMMMMX
|
||||||
|
MMAMMMMMMMAAAMXXAMMMMXAXAMAAMXXMXMMASAMMSSXSXAXXXMAAXXAAMSAMMMMMSASAMXMASASMXMMMXSAMAXMXMXAXMXSAMSMSXMXXMSXSAMXSAMXAMMMMMSSMMASMSSMSMMMAXXXX
|
||||||
|
XSAMXSXSASXSMSXSAMXSSMMMMMMMSXAMMXMASAMAMMMMMMMSMSMMMMSMXAASMMXAMXXAAXAXSASMSAMSAMXSMSMMMSMXXAMXSAAMMSAMXSXMASASASMXSAMAXAAXSAMMMAMMAMMSSMAS
|
||||||
|
XSAXAXMMASMAAXASXXMASMXAXAAXXXAMXXSXSMMMSAAAAAAAAXAMXXAMAMXAAXMXSAMXSSMMMMMMSAMAAXAXAAAAAAXMMXMMSMSMAAXAXSAXAMASAMXAMASXXMSMMMSMXAMSAMMXAMXA
|
||||||
|
ASAMSSMMMMMMMMMXMXMAMXSXSSSSMSSMMASAMXSASMSMXMXMMMMSMSMSMXMSXMMASAMAAAAMSXMXSAMSSMSSSSSMMSASXMSAXAMMMMXSXSXMASAMXMAMSMMXSXXMXXMAXSMSMSXMAMXX
|
||||||
|
MMAMMAXSSXMXSXMAMAMASMSAAAAAXAAASAMAMAMASMMMSSMSMMMAMXMAMAXXAMMASAMSSSMMSAMXMAMXXMMAMXAXXMAMAAMAMXMSAAMXMXMAXMASXSXMAAXAAAMAMMMAMXAMAAXSSMMS
|
||||||
|
XSAMSMMMAASAMAMSSMSXSAMMMMMMMSSMMMSAMASXMASAMXAAASXSMMSASXMSAMAMMXMAAAXASAMXMXMSXSMAMSMMXMAMMMMASXASMMAMMSXMASXMMMASMSMXMAMAAAMSSMAMMMMAAMAM
|
||||||
|
MSAXAXAMSMMASAMMAXXMMXXMASXXAXXXXMSMMXSMMXMAMMMMSMAMMASXSAAXMMSSMMMMSMMXMAMSMSAMAASAMAAAASXSMMAAAMAMAMSAAMMSAMMMMSAMAMMMMXSXSSXMAMXMMMMMSMMS
|
||||||
|
XSXSSSXMMMSMMXMSAMXXAAXMSMSMXSAMXMMMSMMASAXAMXXSXMAMMASXSMMMSAAAMXSMAMSMSMMAAMXMAMSMSSSSMSMSAAMASMASXMXMXXAAMAAAAMASAMSAMXAAXMASMMMXSXSAAASX
|
||||||
|
AMAMAXMASAXAAAXAAMMMMXMXAAXMASAMMXAAAMXMSXMMXAXMAXSXMASXSASAMMSMMAXSAXXAAXMMMMMXMMXMAMXMASASMMMXXXASXMSASMSMSSSSXMAMAXSSSXMAXAXASAAASAMXSXMX
|
||||||
|
MMAMMMXXMXSMMMSSMMAAXXSMMSMMXSXMMXMSSSSXSMASMXMASXMAMXSAMAMSSMXAMXXMMSMSMSMSSXXXMASMMSSMAMXMASXXMMMSAXMAMMXXXMAMXMSSMMXAXXXMASMMSMMSMAMAMMMM
|
||||||
|
AXASXXMMMASXAXMAASXMSMSAAXXMMSMSSMMXAAAAXAXMASAXMASAMSMXMSMMSAXAMXXAASXMASAAMSMXMAXMAAXMAXMSMMMMMAMMMMMMMASMSXSASMAAASMMSMMMAXAAMMMXMAMXXAAA
|
||||||
|
MSMSMSAAXAMMMMMSMMAAXAMXMXAMAMAXMASXMMMSMMSAMMSMXMMAMXAMMMAMXMSSMASMMSAMAMMMMAMAXMXMMSSSMXMXXAAAXSMMXSAAXMMAAAXASMMSMMAAAAAMMSMMMAXMSSSMSSMS
|
||||||
|
XAAMAMMXMMSASMXMXSMMMSMSSSSMSSSMSAMAASAMXAXAXMAMASMMMMXMASAMXAAAMMXMASAMAXAAXAMMMMASXMMAAASMSMSXXAASASMMMAMSMMMMMAAXXSMMSMXMMXMASMSMAAAAAXAM
|
||||||
|
SMSMSMSXXXMAMAAMAXAXXMAMAAXAXAMAMMMSMMMSMSSMMSASXSAMASASASAXXMSMMXAAMMXXMXSXSMSMASASAMXMSMSAAAAXMMMMASAMSMMMAMAAMXMXAXXMXXSMSAMXAMMMASMMMMMM
|
||||||
|
AAAXAXAXXMASMSMMMSMMMMAMMMMXMAMSMMAXAMASXMAXASASMSAMMSASASMMSXMASMMSMMAASAXASAAXAMASMMAXAAMMMSASMSMMMMXMAXASASXSMAXXXMMXMAXXXXMAMMMMAXXMSSSM
|
||||||
|
MSMSSSMMXAMXAAAXXAMAXSXSXMAXSAAXAMXXAMXSASAMMSXMASMMMMAMAMAASASAMAXMAMXSMASAMSMMSXMMAMXMMMMXMMAAAAXSMSMSMSMSASAMXXSXMAXMMSSMMSMXSAMSMSSXAAAM
|
||||||
|
XMAXAAXAMSMSSSMMSMMSMSXXMAXXMMSSSMSSXMSSMMMSAMAMAMAAMMMMXMMXSMMMSMMSAMXXMXMXMXXAAAXSXMAXAASAXMAMXMMMAAMAAMXMMMAMXMAXAMXXAAAAXSAAMMXAAAAMMSMM
|
||||||
|
SMMMXXMMXAAAXAMXAAXMXSXMASXSXXAAXAAAAMAMAAAMAMAMXXSMSSXSMSXMXXAAAAXSAXMSMSAMXXMASMMAASXSSSSXMMSXMSAMSMSMXMAXASAMAAXXMXSMMSSMMMMMSXSMSMMXMAMS
|
||||||
|
AAAMSSMMSMSMSMMSSMMMASAMAXMMMMMSMMSSMMASMMSSSMSMSMASXMAMSAXMASMSSSMSAMSAMAMMSMMMAASMMSAMXAMAXSXMASAXAAAMMSMSXSASXSMMSMMAXAAAXSAXSMSMXXXXSASM
|
||||||
|
SSMSAAAAXAMXXMXAMASMAMAMAXAAAAAAAMMAMXASAAAAAAAAAXMASMAMAMXMAMMAAAMMAMSASXSAAAXXMMMAAXAXMAMSMMAMAXMSMSMSAAMSASAMAAXAAASXMASXMASMSAMXSMSAMXAM
|
||||||
|
AAMMXSMASAMXMXMASXMASMXMMSSSSMSSSMSXMMASMMMSMMMSMSAMXMASMXSASMMMSMMSMMSXMAMMSSMAXXSMMMMXSASAASXMXSASAMXMMSSMAMAMSXMSSMMMSAMXMAMXMXMASAMXMSMX
|
||||||
1380
src/inputs/05.in
Normal file
1380
src/inputs/05.in
Normal file
File diff suppressed because it is too large
Load Diff
130
src/inputs/06.in
Normal file
130
src/inputs/06.in
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
.................#.#............................................#................#........................................#.......
|
||||||
|
.....#.............................................................#.......#...#........................#...........#.......##....
|
||||||
|
..........................................................#..#........#..........#...............#.#..................#...........
|
||||||
|
..#...#..........#....#.....#......................................#......#..#............................#..#....................
|
||||||
|
.........................#....#.............#....................................#............................................#...
|
||||||
|
.....................#.......#.............#...#..........#.................#.......#...............#............#......#.........
|
||||||
|
........#.........#.....................................#............#.....................##...#..#..........#...................
|
||||||
|
....#...................#.....##......#............#...#........................#...................................#.............
|
||||||
|
...............................................................................#.......#.....#...#................#.#......##.....
|
||||||
|
..........................................#............................#.#.................................#.........#............
|
||||||
|
........#...............#...............#...................##......#..................#...............#..........................
|
||||||
|
.........................#....................................#..........#.........................................##.............
|
||||||
|
.......#.................#..................................#......#....................#...............#..........#......#.......
|
||||||
|
.............#.#...#.............#.............................................#...............................##.....#...#.......
|
||||||
|
.....................................................#............................................#.........................#.....
|
||||||
|
.#...#..........................................................##.................................#............#...............#.
|
||||||
|
...........#..#........#.....#.............#.......#............................................#..............#.................#
|
||||||
|
......#.#.##...............#.......#......#......................................................................#...............#
|
||||||
|
...#........#.#.....................##...#...........................#..............................#...................#.........
|
||||||
|
..............#..#....................#...................#.................##..............#.#........................#..........
|
||||||
|
...........................................................#.........#.......................#......................#.........#...
|
||||||
|
................................................#............................................#....................................
|
||||||
|
..#.....................................................#..............#...#.........#.....#........................#.............
|
||||||
|
.#..............................#......#..............#........................................................#..................
|
||||||
|
#......#.....#..#..#........#....................#...........##..............................#..#.....#.....#.....................
|
||||||
|
.................#.....#.....................#.........#..............................#..............##......................#....
|
||||||
|
...........................................................#...##..............#..........................#....#..................
|
||||||
|
........#..#............................#.#........................#.....#................#...#...................................
|
||||||
|
..........................#........#.......................................................................##...................#.
|
||||||
|
............#....#.............................................#.......#....#.....#........................................#......
|
||||||
|
..........#............#....#.......................#.#............#..............................................................
|
||||||
|
......#...#......................................................#..#.............................................................
|
||||||
|
.#...#.....#.....#......................................................................................#..........#.....#........
|
||||||
|
...#..#.............................................................................#.............................................
|
||||||
|
............#...................#...........................................#..............#.....#.....................#.##.......
|
||||||
|
.................................................#................................................................................
|
||||||
|
.........................#.......................................#..................#..............................#..............
|
||||||
|
................................................................................................................................#.
|
||||||
|
...#...........................................#........#.................................................#......#................
|
||||||
|
..#...........................................#.......#.....#.................................#....#.............#...............#
|
||||||
|
........#..............#...................................................................................#......................
|
||||||
|
...........#......#............#............#..................................#.........#..............#.........#..........#....
|
||||||
|
.........................#.........#.....#.................................#..................#...............##..#...............
|
||||||
|
.....#........#.........................................................#....................................#......#....#........
|
||||||
|
...#..#.......#......#.#..................#..........................^#...........................................................
|
||||||
|
....................#.#..........................................................................#...#............................
|
||||||
|
...........................#..........................................................#...........................................
|
||||||
|
................#..............................................................................#..................................
|
||||||
|
...............................#............................................................#...................................#.
|
||||||
|
..............#..........................................#..............#..................#..........#...........................
|
||||||
|
................#...#..........................#.##..........#.......#..............................#........#..............#.....
|
||||||
|
...................#.............#....................#...........................................................................
|
||||||
|
....#....................................#....#................................................#..#...........#...................
|
||||||
|
....#.#..............#..........#...................#...................................#....................#........#......#....
|
||||||
|
...........................#...........#..#......#.......................................#.......................#......#.........
|
||||||
|
.....................................................................................................#.................#..........
|
||||||
|
...................................................#.............#..........#..............................#......................
|
||||||
|
................................#...........##....................................................................#....#..........
|
||||||
|
...........#.......#.......................................................................#............#.....................#...
|
||||||
|
.#........#.......#........................................#.#...............................#...#...........................#....
|
||||||
|
..#...............#................#....#............#................................................................#...........
|
||||||
|
........#..........#.........#....................................................................................#...............
|
||||||
|
............................................................................#.............................#...............#......#
|
||||||
|
......................#................................#.............#...#............#...........................................
|
||||||
|
................................#.............#.................................................................#..............#..
|
||||||
|
.........#.#..#...............................#....................................................#.#.......#..#........#........
|
||||||
|
.............................#.......#.....#......................................................#..#............................
|
||||||
|
..................#.............................................................................#..........#......................
|
||||||
|
.....................................#....##.................#......................................#....#........................
|
||||||
|
#.......................................................................................................................#.........
|
||||||
|
......#....#..#...........................#..#.....#........................................#..................................#..
|
||||||
|
.......#.....#...............#....#......#....#..........#.....................#....#..........#.....#..#......................##.
|
||||||
|
..................#..........#.....#........................................................#............##...................#...
|
||||||
|
........................#....#............#..................................#....#..#.......#...................................#
|
||||||
|
.....#............................#...............................#..#...................#.....#..#........#....#.#...............
|
||||||
|
......#...#..#......#..........................#........#....................#.......#...........#..........................#..#..
|
||||||
|
.....#.............................................................................................#......#......................#
|
||||||
|
...........................................#......................................................................................
|
||||||
|
.....#...........................#.#.#............................#..................#............................#.......#.......
|
||||||
|
........#.......................................................#...................#.......#.....................................
|
||||||
|
...............#..................................................#.................................................#.............
|
||||||
|
..##............................................................#..............................................................#..
|
||||||
|
.......#..................................#......................#.................................#...................#..........
|
||||||
|
......#.........#..............#....##........#....#................................#.....................................#......#
|
||||||
|
................#.....................................................................................#.............#.............
|
||||||
|
#..#..#......#.#.....#..#.................................................................................................#..#....
|
||||||
|
.....................#.....#................................................#.......#........#.................#........#.#...#...
|
||||||
|
..................................................................#....#..#...................#................................#..
|
||||||
|
........................#...........#.......................................................#..#..................................
|
||||||
|
.#.......#...................................................#..............#.......#...#.........................................
|
||||||
|
.......##...............#.............................#...........................#...............................................
|
||||||
|
....#............#....#...#........................#...........................#.#.....#..........................................
|
||||||
|
...........................#............................#..#..................#...........................#...#...................
|
||||||
|
...........#.#.............#..........#...........................................................................................
|
||||||
|
.............#..........#...............#...##.........................#..............#...#.............#..#......................
|
||||||
|
..................#.....#............#..#.........#...............................................................................
|
||||||
|
...........................................................#.....#..................#.......................#..#..................
|
||||||
|
....................................#....#.......##............#.............................#...............#...........#........
|
||||||
|
......#....................#..................#..........................................#...............................#.#......
|
||||||
|
......................#...........................................#.....#.................................................#....#..
|
||||||
|
.....................................#...............#....................................#.....#.............#......##...........
|
||||||
|
......................#...............................................................##.#..........#....#..................#.....
|
||||||
|
...........#.............#......................#....................#..................................#......#...........##.....
|
||||||
|
.....#.#...#......................................................................................................................
|
||||||
|
.........#.....................................#................#.............#....#......................#..........#............
|
||||||
|
......##.#.................#...............#..##.......................#...............#.......................................#..
|
||||||
|
....................#.........#.......#....#..................................#..........................#..............#.........
|
||||||
|
......................#....#..#..#................................#.......#.......................................................
|
||||||
|
.........................................##............................##..#..................#..................#...........#....
|
||||||
|
...................#..................................#................................................................#..........
|
||||||
|
.#.............#....................................................................................#.............................
|
||||||
|
......................................#.....#.............#..#............................................#...#............#......
|
||||||
|
.....................................#..................................#...#.......................##...................#........
|
||||||
|
...........................................................#...................................................#...........#......
|
||||||
|
.............................#.......#.......................................#.........................#.....................#...#
|
||||||
|
.....................#............................................................................................................
|
||||||
|
#....#.......................................#.........#........#...................................#.....#.........#........#....
|
||||||
|
.......................................................#......#................................##.#........#.........#..........#.
|
||||||
|
.........#........................##.....#.............................................................#.................#..#.....
|
||||||
|
....##....................................................................................................#...#...#...............
|
||||||
|
.......#.....#.......#.............#........#...............##.#......#...............#.................#..#.........#...#....#...
|
||||||
|
....................#.................................#........................................................................#..
|
||||||
|
#...............#....................................#.........#...............................#..#..........##...#...#......#....
|
||||||
|
............#........................#.....#...#.........#.........#..#......................................#....................
|
||||||
|
..........#.......#.#.....................#...........#...................#.##....................#..#...#........#..............#
|
||||||
|
.......................................#.......#........#.....#...........................................#.......#......#........
|
||||||
|
...............................#.........#..............#......................#..........................................#.#.....
|
||||||
|
............#........#.............................................#.....................................................##......#
|
||||||
|
......#.#............................................................................#......#.....#......#................#.......
|
||||||
|
.........#.............#................#.................#..###..........#.........................#.#....#......................
|
||||||
850
src/inputs/07.in
Normal file
850
src/inputs/07.in
Normal file
@@ -0,0 +1,850 @@
|
|||||||
|
80453: 65 232 17 4 253 1 1
|
||||||
|
11072880: 9 5 91 338 8
|
||||||
|
251359026: 801 36 2 1 4 7 9 34 3 3
|
||||||
|
5146105932: 3 4 73 2 105 4 1 8 6 4 8
|
||||||
|
3217192: 32 99 49 156 33
|
||||||
|
1240885: 980 2 568 2 2 4 85
|
||||||
|
761411281: 8 13 16 4 1 79 76 3 6 5 8
|
||||||
|
1773078: 300 75 788 6 78
|
||||||
|
363734176: 5 10 32 928 2 7 177 1 1
|
||||||
|
44388674: 64 8 9 82 4 49 75
|
||||||
|
2405604276: 3 9 9 4 85 9 433 3 991 7
|
||||||
|
693989: 693 333 1 30 628
|
||||||
|
13925303275: 7 909 38 6 4 186 327 5
|
||||||
|
63263200: 63 7 79 16 715
|
||||||
|
8544146: 58 33 5 89 147
|
||||||
|
869069580: 564 99 233 31 16 5
|
||||||
|
14736199074: 5 997 63 9 3 819 4 46
|
||||||
|
61182660: 3 3 2 95 77 697
|
||||||
|
8680: 4 84 376 7 8
|
||||||
|
1796382720: 934 9 62 9 6 6 64 5 1 2 8
|
||||||
|
1158: 100 968 8 74 6
|
||||||
|
309536: 4 64 569 4 2
|
||||||
|
98070674452: 7 815 1 191 6 30 3 3 2 2
|
||||||
|
765702: 6 3 85 70 3
|
||||||
|
486500: 44 2 37 556 7
|
||||||
|
857641310086: 653 1 1 4 9 41 8 7 5 4 8 8
|
||||||
|
12655: 970 2 81 63 6 151
|
||||||
|
11037: 5 8 5 49 9 657 1 1 567
|
||||||
|
15426904: 6 9 156 2 7 5 74 14 86 3
|
||||||
|
255584836: 82 317 56 3 2 5 5 981 1
|
||||||
|
2795079846: 9 31 693 260 23 3
|
||||||
|
59474651: 9 2 33 1 472 1 42 123 4
|
||||||
|
31392: 5 3 8 7 4 22 7 326 709 8
|
||||||
|
202335: 3 1 195 2 615 719
|
||||||
|
10072161288612: 329 76 973 414 6 12
|
||||||
|
304800: 62 8 12 8 75 1
|
||||||
|
410694814: 7 74 2 9 9 7 8 4 602 6 22
|
||||||
|
37200044757: 590 3 9 5 27 3 7 21 57
|
||||||
|
1879341: 238 388 44 6 3 3
|
||||||
|
1199889306: 52 8 4 1 9 8 11 8 316 18
|
||||||
|
531918519: 9 4 48 1 504 1 8 7 189 8
|
||||||
|
13077712: 653 88 52 2 6
|
||||||
|
2861487998: 74 58 10 921 379 97
|
||||||
|
7476829: 51 274 535 645 94
|
||||||
|
162477: 2 799 4 64 9 97
|
||||||
|
166412: 7 78 8 9 975 1 3
|
||||||
|
451743: 3 4 624 7 6 9 578 7 1 1 2
|
||||||
|
92311037059: 9 4 4 9 7 1 9 61 9 91 51 7
|
||||||
|
67295279430: 2 82 3 1 4 67 7 99 6 2 9
|
||||||
|
8793: 822 1 4 1 10 476 1 39 8
|
||||||
|
3794488742: 949 7 425 5 84 8 211 2
|
||||||
|
1579094: 2 97 2 5 72 54 2 563 3
|
||||||
|
25871540: 4 14 7 871 539
|
||||||
|
805: 3 777 23 4
|
||||||
|
592118916732: 30 783 6 71 7 24 7 7 9 4
|
||||||
|
995405888: 625 5 158 546 9 416
|
||||||
|
6335512: 633 509 2 39 9
|
||||||
|
24861: 322 77 65
|
||||||
|
70077355183: 2 6 685 3 773 551 74 7
|
||||||
|
7674310: 64 2 98 595 1
|
||||||
|
53167296001: 50 4 50 60 510 10 52 8
|
||||||
|
9921503: 21 79 9 91 2 4 3 3 2 9 8 5
|
||||||
|
26477554: 7 214 1 9 557 943 2
|
||||||
|
4451398: 8 5 2 9 355 9 179 3 6 4 2
|
||||||
|
18133152: 3 185 8 87 96
|
||||||
|
4075412211: 815 5 3 1 247 875 13
|
||||||
|
149028: 749 27 32 6 6
|
||||||
|
3932866: 9 25 971 5 9 3 6 6 8 8 12
|
||||||
|
2115650020: 77 223 86 61 4 205
|
||||||
|
31439100: 9 64 8 19 72 87 7 7 4 75
|
||||||
|
16388: 3 27 8 74 87
|
||||||
|
1418098: 1 4 47 5 7 7 6 5 6 85
|
||||||
|
178644: 9 7 1 864 2
|
||||||
|
350280828: 4 15 7 3 713 315 825
|
||||||
|
307320304: 4 985 78 30 4
|
||||||
|
2362320: 7 5 158 85 144
|
||||||
|
142823: 307 9 134 32 1 44
|
||||||
|
2721809: 30 907 6 48 8 69 84
|
||||||
|
3950727505: 2 20 5 3 13 7 9 5 43 7 5 2
|
||||||
|
131968643: 2 9 2 1 4 1 1 903 730 8 2
|
||||||
|
2757417345: 851 193 93 4 64 71 1
|
||||||
|
572376238: 7 647 87 814 74
|
||||||
|
11313873117: 3 36 68 3 7 6 5 786 478
|
||||||
|
445454: 25 3 2 88 11 8 50 7
|
||||||
|
241: 17 1 8 3 3 7
|
||||||
|
265704964: 7 54 2 5 7 1 8 29 2 6 1 4
|
||||||
|
25524498: 8 573 348 8 2 14 764 8
|
||||||
|
41898086205: 20 94 1 872 31 824
|
||||||
|
30006791: 28 6 4 4 5 3 6 8 864 7 2 1
|
||||||
|
161840: 44 4 48 8 7 3
|
||||||
|
529760419: 9 3 6 8 85 8 1 22 1 208 2
|
||||||
|
10827556512: 500 581 1 4 3 5 5 6 515
|
||||||
|
278813227280163: 9 968 913 352 50 5 4 8
|
||||||
|
107410: 1 4 5 74 11
|
||||||
|
111966: 6 703 59 85 391 9 7
|
||||||
|
1820799016210: 1 43 9 58 9 9 5 1 1 62 10
|
||||||
|
34086: 51 2 6 1 46 2 90 9 409
|
||||||
|
658814461: 4 82 68 6 76 8 5 2 784
|
||||||
|
6248684908090: 762 965 19 3 7 49 2 39
|
||||||
|
49325079: 39 87 367 227 23 73 9
|
||||||
|
128180486: 419 8 956 4 6
|
||||||
|
12146408: 482 70 3 6 4 2
|
||||||
|
46151352: 4 7 1 6 5 5 17 8 8 5 5 950
|
||||||
|
268237: 6 51 4 78 37
|
||||||
|
75087: 7 149 7 1 213 7 71 469
|
||||||
|
2030410: 57 9 10 7 4 554
|
||||||
|
8190500163: 21 7 12 9 946 538 7
|
||||||
|
4627959995970: 66 7 1 7 959 995 9 73
|
||||||
|
472457: 471 180 941 304 33
|
||||||
|
2843491: 9 2 1 5 2 59 990 71 9
|
||||||
|
1662060690: 281 528 94 83 2 59 8 3
|
||||||
|
71528448486: 4 51 6 758 44 2 8 73 5
|
||||||
|
159099841: 7 231 81 1 22
|
||||||
|
12663773526: 4 2 2 11 6 3 6 47 5 22 2
|
||||||
|
927300212: 9 4 4 90 781 2 2 85 388
|
||||||
|
6782849: 4 6 5 3 68 8 8 598 1 8 8
|
||||||
|
299601: 287 1 83 2 62 355 5 4 2
|
||||||
|
51682789: 4 9 44 68 9 9 6 579 5 86
|
||||||
|
153393346: 22 66 7 45 9 427
|
||||||
|
102623: 89 3 8 48 7 82 6
|
||||||
|
27139448: 79 6 3 8 1 681 7 9 8 2 9
|
||||||
|
44209555513: 44 209 55 49 6 13
|
||||||
|
19102: 9 970 1 1 19 6 96 9 390
|
||||||
|
90534: 8 5 830 104 54
|
||||||
|
25134318083801: 364 9 984 869 7 803
|
||||||
|
84393891730: 7 85 7 405 403 91 3 55
|
||||||
|
790: 1 19 5 63 5
|
||||||
|
12009921: 3 50 8 9 921
|
||||||
|
9781206: 4 473 8 858 6 3
|
||||||
|
5218166016: 5 51 5 4 558 2 7 8 6 7 7
|
||||||
|
14119: 3 2 435 32 7
|
||||||
|
219619443: 586 9 359 114 38 4 9 3
|
||||||
|
494506865160: 8 3 4 12 84 7 2 7 8 603 5
|
||||||
|
25643796039: 18 694 3 4 5 5 5 2 67 9 7
|
||||||
|
6715112: 9 2 8 201 29 1 4 2 4 1 99
|
||||||
|
4608: 4 433 1 2 1 1 2 40 5 18
|
||||||
|
991684: 5 3 9 77 27
|
||||||
|
369627102: 461 342 691 88 8
|
||||||
|
12453: 67 2 1 45 9 1 51
|
||||||
|
41985868: 4 457 208 9 867
|
||||||
|
230112045: 2 14 340 940 5 9 37 8
|
||||||
|
1558443235357: 25 4 5 740 3 2 3 9 22 6 6
|
||||||
|
7658313312: 2 463 1 31 4 557 897 4
|
||||||
|
21551778: 536 7 441 7 9 1 41
|
||||||
|
350465040: 2 1 740 2 800 6 4 4 37 4
|
||||||
|
99964808: 9 4 534 52 10
|
||||||
|
5550930: 52 7 37 238 1 405
|
||||||
|
22715297428: 8 739 7 14 782 8 217
|
||||||
|
384007419: 320 120 7 41 8
|
||||||
|
25916002: 16 42 9 80 550
|
||||||
|
80805925: 5 676 2 6 733 4 4 6
|
||||||
|
136800: 227 1 5 15 8
|
||||||
|
2656155: 9 6 74 53 8 82 9
|
||||||
|
16286: 1 7 7 676 61
|
||||||
|
1139100: 92 2 146 83 7
|
||||||
|
623772543: 529 89 6 51 725 40
|
||||||
|
1142: 14 42 23 42 405 84
|
||||||
|
50415: 50 841 7 14 30 4 7
|
||||||
|
301413: 42 9 6 99 900 92 849
|
||||||
|
848103923: 6 14 810 392 4
|
||||||
|
53940: 51 54 741 24 62
|
||||||
|
144491721762: 1 2 994 46 8 6 3 33 19 7
|
||||||
|
45386287: 784 29 437 39 931 37
|
||||||
|
10108943: 130 877 3 894 4
|
||||||
|
21658: 9 1 5 7 55 47 4 4 82 4 1 2
|
||||||
|
759325513853792: 83 95 963 138 5 37 93
|
||||||
|
722643: 289 8 4 24 92 153
|
||||||
|
399639247996: 3 370 109 36 79 95
|
||||||
|
3051058: 40 2 280 11 38
|
||||||
|
1202: 4 962 233 1 2
|
||||||
|
4727573267: 6 69 9 367 57 1 1 4 70 1
|
||||||
|
52677907: 49 461 313 10 33 7
|
||||||
|
10050892265: 5 86 35 915 8 922 66
|
||||||
|
2987: 34 79 78 217 6
|
||||||
|
583746: 583 7 46
|
||||||
|
9646: 36 7 38 1 69
|
||||||
|
2807723736: 46 137 41 495 9 9
|
||||||
|
18826860280: 8 8 547 76 3 1 8 8 1 44 8
|
||||||
|
971981682: 97 1 9 453 363 82
|
||||||
|
5977403: 8 51 1 77 393 7
|
||||||
|
14303180: 528 901 4 9 178
|
||||||
|
36134415: 6 4 20 7 7 2 931 463 9
|
||||||
|
35109: 38 634 30 50 9
|
||||||
|
12606003: 4 4 5 75 764
|
||||||
|
17683203483: 5 3 6 73 323 95 4 1 255
|
||||||
|
355577: 901 7 795 9 5 8 16
|
||||||
|
654126: 7 7 1 6 89 5 8 5 1 5 6 96
|
||||||
|
762858: 7 636 3 754 9 152 1 6
|
||||||
|
4466521: 67 7 4 6 77 4 57 1
|
||||||
|
40257693486: 349 1 2 9 10 8 71 37 4 9
|
||||||
|
26709004: 3 4 151 981 84 98 2
|
||||||
|
32746679: 71 79 6 648 9
|
||||||
|
39625: 1 4 748 52 469
|
||||||
|
9709: 97 248 9 617 1
|
||||||
|
144459502: 1 164 42 4 23 651 2
|
||||||
|
235672: 360 61 128 82 31 4 89
|
||||||
|
514215: 8 61 110 30 41 5 4 25 3
|
||||||
|
626870234975: 9 3 5 6 25 2 67 14 497 4
|
||||||
|
343752250: 902 74 103 1 50
|
||||||
|
867: 2 8 2 41 2 45
|
||||||
|
229252821: 9 6 339 6 49 919
|
||||||
|
335358: 353 95 8
|
||||||
|
1260845177: 3 93 45 1 533 515 2 2 5
|
||||||
|
35513409: 5 8 74 558 2 31 367
|
||||||
|
4811913: 473 7 6 2 2 5 3 45 38 73
|
||||||
|
1593555586: 9 122 2 54 2 7 1 1 5 5 8 8
|
||||||
|
386835: 187 5 4 6 8 934 205
|
||||||
|
6294685256: 9 62 4 113 9 6 7 4 662
|
||||||
|
2094621: 9 9 5 826 127 8 6 7 1 6
|
||||||
|
223546540: 3 7 5 3 87 6 5 571 28 8 5
|
||||||
|
3562: 306 1 501
|
||||||
|
3251820: 6 34 5 3 639 6 6 102 9 4
|
||||||
|
47425: 4 3 8 80 5 7 8 5 8 1 58 6
|
||||||
|
17359545: 577 1 15 3 21 131 1 2 3
|
||||||
|
44797453: 57 44 8 44 5 1 4 51
|
||||||
|
1167206: 35 6 5 116 427 779
|
||||||
|
44153: 6 8 19 659
|
||||||
|
661320: 5 5 6 6 5 402 7 6 3 167
|
||||||
|
459856: 535 24 1 8 82
|
||||||
|
1093763483: 4 2 64 11 7 6 7 685 9 8
|
||||||
|
587890: 58 1 1 6 46 1 9 1 79 5 3
|
||||||
|
3152812902: 38 9 1 72 4 6 8 4 3 5 70
|
||||||
|
991368: 991 3 5 8 7
|
||||||
|
26501810: 1 24 356 287 9 27 230
|
||||||
|
831526448802: 203 30 72 409 800
|
||||||
|
107361118: 3 7 18 93 9 9 509 802
|
||||||
|
903435238: 991 2 214 6 355
|
||||||
|
2494172365978: 5 42 4 958 42 8 7 29 6 4
|
||||||
|
66960781: 9 63 930 7 80
|
||||||
|
2954430774: 29 9 62 85 9 723 50 2
|
||||||
|
1843044: 1 5 3 959 4 8 17 7 5 7 7 6
|
||||||
|
1515944541939: 639 77 237 861 13 6
|
||||||
|
15580038: 2 7 69 16 6 24 7 390
|
||||||
|
557225206481: 85 72 69 65 27 8 6 478
|
||||||
|
663960349137: 4 36 37 6 404 767 111
|
||||||
|
446472: 9 9 8 689 1
|
||||||
|
55448739: 553 7 7 840 34 1 10
|
||||||
|
139151273: 8 6 1 608 2 2 3 8 1 1 27 2
|
||||||
|
8745053673: 5 10 83 9 29 6 634 9 3 6
|
||||||
|
567594: 4 8 2 3 472 5 7 52 94 4 2
|
||||||
|
1563994: 6 4 5 401 78 89 5
|
||||||
|
113165: 537 7 6 2 2 1 546 5
|
||||||
|
3191: 237 1 745 1 78
|
||||||
|
2692218: 10 964 691 4 9 73
|
||||||
|
1339821860: 670 33 619 9 9 40 589
|
||||||
|
496620: 5 4 2 2 154 587 888 36
|
||||||
|
1414877058462: 360 9 3 8 4 1 98 459 2
|
||||||
|
1491097042: 1 710 21 1 8 6 945 99
|
||||||
|
445501530: 4 45 5 90 142 8 5 25
|
||||||
|
647931: 17 90 7 113 7 42 1
|
||||||
|
1215: 4 7 1 93 3
|
||||||
|
31518901471558: 8 41 851 9 52 3 944 1 8
|
||||||
|
1797: 1 5 9 69 8 9 991 8 650 8
|
||||||
|
9543: 89 41 43 9 547
|
||||||
|
132436687408: 55 3 5 4 583 2 925 8 8 3
|
||||||
|
13224041600: 1 4 748 902 784 5 1 1
|
||||||
|
33761367370: 722 868 481 2 8 56 6 4
|
||||||
|
427416: 46 23 172 36 63 105
|
||||||
|
32747264: 13 4 7 1 2 8 4 6 4 8 8 29
|
||||||
|
2839: 458 6 7 3 81
|
||||||
|
3430168: 921 4 3 66 7 9 4 9 7 6 2 4
|
||||||
|
346202395: 341 5 125 77 396
|
||||||
|
16819164083: 552 549 555 7 3 7
|
||||||
|
41630: 15 793 8 89 46
|
||||||
|
48577788812329: 771 9 68 4 7 81 2 3 28
|
||||||
|
13311605: 18 739 5 81 376 3 8
|
||||||
|
704954971: 747 5 248 540 7 91
|
||||||
|
29030550: 7 1 20 3 8 4 4 1 105 39 6
|
||||||
|
66521838: 4 371 5 8 310 9 3 8 5 5
|
||||||
|
380988: 5 3 39 7 96 3 4 7
|
||||||
|
123491364: 17 46 842 84 274
|
||||||
|
2025360000: 79 1 1 580 10 45 97
|
||||||
|
55161058858: 9 913 636 222 354 5 8
|
||||||
|
2507866928: 70 4 457 356 6
|
||||||
|
4912132550: 97 1 2 3 5 1 1 4 3 254 9 1
|
||||||
|
56991: 32 4 74 2 6 43 6 1 98
|
||||||
|
661189130: 7 4 6 2 4 39 9 5 917 5 7 1
|
||||||
|
13350852: 6 59 1 5 2 320 839 1 6 9
|
||||||
|
6790: 9 1 15 1 8 84 4 62 5
|
||||||
|
22855536: 3 3 4 396 614
|
||||||
|
199118969: 7 1 5 9 42 554 9 4 7 8 7
|
||||||
|
402931407: 36 8 8 5 4 4 1 743 873
|
||||||
|
5695722994: 982 58 757 472 94
|
||||||
|
54060007: 7 60 15 7 858
|
||||||
|
3759488: 4 9 41 87 1 802 9 4 2 8 4
|
||||||
|
1719433: 1 625 8 936 31
|
||||||
|
3701529415: 790 32 562 45 4 12
|
||||||
|
268276291: 46 6 8 5 9 9 762 92
|
||||||
|
1129772527: 26 899 7 3 7 2 1 530
|
||||||
|
64155: 6 761 7 1 2 2 4 194 20 9
|
||||||
|
53740: 9 5 2 3 6 115 9 7 1 704 2
|
||||||
|
5177612188: 4 88 457 36 4 70 13 2
|
||||||
|
51687: 4 1 8 6 62 4 1 9 908 686
|
||||||
|
171158415: 759 41 55 39 18
|
||||||
|
160706087: 5 356 86 3 5 9 6 3
|
||||||
|
375053: 1 9 164 4 1 57 507 569
|
||||||
|
227289829: 2 9 184 5 6 6 10 7 2 98
|
||||||
|
371838930252: 37 18 389 2 56 46 51
|
||||||
|
363488: 864 7 42 315 1
|
||||||
|
1779996: 329 3 90 74 57
|
||||||
|
4874444999: 5 193 82 1 5 7 176 7 5 6
|
||||||
|
5253: 3 49 5 1 3
|
||||||
|
815: 5 3 65 8 5
|
||||||
|
38820: 865 44 11 5 744
|
||||||
|
3980: 9 8 2 3 6 1 76 5 3 2 8 4
|
||||||
|
2057374: 33 7 565 11 34
|
||||||
|
126929: 6 3 9 7 927
|
||||||
|
121779: 555 53 3 6 87 34 165 9
|
||||||
|
41269: 157 5 52 448 3
|
||||||
|
1095433: 316 1 33 493 32
|
||||||
|
759: 2 1 9 69
|
||||||
|
9590393: 304 15 6 798 3
|
||||||
|
8186291236: 818 62 91 238 1
|
||||||
|
156397000: 6 9 6 4 6 2 1 783 88 250
|
||||||
|
140024803776: 2 488 505 54 807 4 88
|
||||||
|
253929288: 552 46 9 28 9
|
||||||
|
53475506: 562 58 32 95 6
|
||||||
|
316964278497: 566 56 427 8 48 1 4
|
||||||
|
1987: 9 3 73 8 8
|
||||||
|
18061344: 6 330 1 96 87 9 6 7 6 35
|
||||||
|
1093604: 6 269 913 7 92
|
||||||
|
52749645553: 1 975 6 4 2 8 7 172 7 9 7
|
||||||
|
55123: 5 689 2 8 3
|
||||||
|
1018: 9 43 66 7
|
||||||
|
45663: 34 4 12 35 28
|
||||||
|
221867989: 913 27 1 99 3 797 9
|
||||||
|
17413621878: 290 227 6 13 5 78
|
||||||
|
39627552: 81 91 896 169 6 33 7 2
|
||||||
|
623627490: 3 7 260 3 1 27 3 6 470
|
||||||
|
210555237: 1 1 6 319 2 2 2 3 6 23 5
|
||||||
|
111797277: 5 837 4 4 1 981 8 5 9 8 6
|
||||||
|
4489668616: 3 663 30 9 4 6 22 57 7
|
||||||
|
70992: 61 648 9 4
|
||||||
|
10136086086: 8 515 36 246 7 5 411
|
||||||
|
125553456: 415 19 84 9 4
|
||||||
|
432099851242: 3 9 8 9 5 998 5 1 17 7 2 1
|
||||||
|
1197740: 57 15 53 14
|
||||||
|
9841: 3 51 2 6 2 24 52 6 104 7
|
||||||
|
1095765: 251 9 1 2 7 32 4 5 6 1 4 5
|
||||||
|
1418604: 153 843 4 1 487 954 6
|
||||||
|
395781: 40 38 98 4 54
|
||||||
|
19638635: 2 2 4 71 49 722 9 226
|
||||||
|
4122: 1 2 963 4 225
|
||||||
|
259532427: 59 7 1 434 426
|
||||||
|
9280106: 256 725 3 5 86 5
|
||||||
|
36067626950: 89 15 83 8 27 953
|
||||||
|
1320: 9 59 553 146 93
|
||||||
|
144106119080: 98 94 971 6 15 77
|
||||||
|
14557125649733: 8 1 8 554 811 986 8 7 5
|
||||||
|
1677997: 1 26 63 1 385 4 9 94
|
||||||
|
336386821: 10 5 32 550 73 187 7
|
||||||
|
59025094863: 4 4 36 287 39 6 779 3
|
||||||
|
96589446: 7 91 675 9 818 5 3 2
|
||||||
|
7317283837: 4 60 18 67 114 34 3
|
||||||
|
90806: 7 2 7 7 92
|
||||||
|
96480541939: 459 431 15 21 21
|
||||||
|
873: 33 1 4 23
|
||||||
|
1695206159: 221 851 285 2 4 90
|
||||||
|
6130571: 2 61 61 5 68
|
||||||
|
39372208: 1 8 8 7 99 20 35 4 7 8
|
||||||
|
18612096: 4 112 16 94 5 5 60 96
|
||||||
|
6853511: 85 51 587 75 1 9
|
||||||
|
266310616: 40 1 8 9 8 66 6 1 6
|
||||||
|
9981672331684: 53 4 4 68 76 4 981 7 4
|
||||||
|
44867478: 4 4 8 649 9 8 4 92 7 379
|
||||||
|
76841: 18 4 754 93 23
|
||||||
|
43763: 429 83 24 45 653 58
|
||||||
|
362472323020: 891 1 3 53 17 9 460 4 5
|
||||||
|
46448727: 7 1 5 3 9 6 81 8 6 6 67 6
|
||||||
|
2461730: 82 3 17 32
|
||||||
|
5284: 63 20 5 60 6
|
||||||
|
116: 55 54 7
|
||||||
|
939960134464: 71 752 681 95 7 1 131
|
||||||
|
953880648: 2 362 8 67 83 503
|
||||||
|
2976255212785: 87 4 3 30 95 7 3 2 786
|
||||||
|
62433231224: 52 43 2 292 2 5 698 1
|
||||||
|
2687832: 68 77 97 252 2
|
||||||
|
9445356541: 5 8 37 30 5 5 163 41 9 1
|
||||||
|
340425769: 12 73 89 45 772
|
||||||
|
1097: 4 8 54 459 1 2 46
|
||||||
|
5042559329287: 9 7 2 2 5 5 796 8 8 81 2 7
|
||||||
|
10847196: 69 6 4 3 898 4 2 4 9 9 30
|
||||||
|
18516887: 661 2 91 28 740
|
||||||
|
391114505: 7 3 19 3 5 2 5 386 7 15 5
|
||||||
|
28751890: 7 5 4 53 62 11 85 88 7 3
|
||||||
|
3775884100: 65 101 4 50 58
|
||||||
|
4291172291: 395 831 5 246 7 91
|
||||||
|
4553304576: 93 765 376 8 64
|
||||||
|
262: 4 56 66 88 48
|
||||||
|
5949008: 586 8 80 320 691
|
||||||
|
21516: 94 1 54 2 498 2
|
||||||
|
499402575: 975 156 6 616 6 3 545
|
||||||
|
15886516: 6 23 8 45 914 314
|
||||||
|
566023992: 3 45 3 6 119 14 35
|
||||||
|
1788409: 57 663 31 854 2
|
||||||
|
761967136: 17 46 60 884 904
|
||||||
|
1348913535713: 47 287 13 535 714
|
||||||
|
1793: 4 424 1 2 86 8
|
||||||
|
1541149: 570 52 7 35 7 5 1 89 7
|
||||||
|
879: 26 357 496
|
||||||
|
19725338: 52 7 995 48 7 458
|
||||||
|
1407751082089: 9 5 7 7 91 9 138 7 5 49 8
|
||||||
|
119: 2 3 2 53 6
|
||||||
|
967365: 967 3 66
|
||||||
|
75140232: 75 139 743 457 29
|
||||||
|
2095326: 54 715 57 6 3 1 806 3 9
|
||||||
|
8469341066: 4 3 66 4 8 8 66 2 8 907 9
|
||||||
|
4527087: 2 20 17 93 9 30 86
|
||||||
|
14688: 27 1 9 5 5 3 4 6 9 5 94 14
|
||||||
|
764545: 2 8 1 4 37 66 594 9 67
|
||||||
|
10374592350: 110 351 17 94 349
|
||||||
|
93138130236: 7 225 5 2 8 5 4 1 29 591
|
||||||
|
6309501: 381 92 5 2 4 2 6 9 1 6 1 8
|
||||||
|
144372247: 67 59 267 8 7
|
||||||
|
32204: 8 333 63 78 7 8 592 85
|
||||||
|
12794630625: 395 789 6 88 48 5 5 45
|
||||||
|
147538: 92 47 8 535 4
|
||||||
|
341844: 506 7 7 1 6 2 8 8 1 976 3
|
||||||
|
113702: 9 76 166 149 8
|
||||||
|
1523526690: 3 91 5 41 6 140 93 6 90
|
||||||
|
4914429: 44 5 6 51 4 438 69
|
||||||
|
20976: 36 8 64 1 40 3 9 46
|
||||||
|
645125222: 5 15 7 8 20 7 4 4 8 58 9 2
|
||||||
|
18774236: 474 50 35 7 358
|
||||||
|
65485435: 8 5 7 6 8 7 5 517 4 69 9 3
|
||||||
|
43201942787: 54 686 79 278 7
|
||||||
|
2213: 579 651 2 418 2 8 553
|
||||||
|
1925205028706: 7 3 7 3 4 4 3 887 8 654 6
|
||||||
|
2196748: 5 5 122 311 8 2 6 487 4
|
||||||
|
7402752: 9 33 72 8 3 102
|
||||||
|
135500: 767 969 1 78 14
|
||||||
|
8821063171: 94 209 449 9 173
|
||||||
|
16207705800: 7 2 130 22 834 755
|
||||||
|
67661: 3 18 641 14 60
|
||||||
|
2704169: 3 1 1 51 3 1 2 72 6 9 283
|
||||||
|
4658180909: 36 5 4 6 566 5 81 8 8 80
|
||||||
|
7562497803: 75 549 75 977 2 3 78
|
||||||
|
108818150: 141 45 49 1 4 2 25 7
|
||||||
|
55201563135: 51 4 194 7 563 138
|
||||||
|
17: 9 4 4
|
||||||
|
280065690098: 64 1 9 7 41 9 49 84 775
|
||||||
|
250635474: 7 574 770 7 393 5 9 1 9
|
||||||
|
22949642: 75 995 383 5 7 8 2
|
||||||
|
3338140: 7 3 26 963 1 2 9 4 1 370
|
||||||
|
8629264656: 63 89 45 2 68 342
|
||||||
|
17658484538: 966 914 1 227 20
|
||||||
|
990156: 2 987 973 178 4
|
||||||
|
5098320: 49 6 67 4 6 5 9 776 5 9
|
||||||
|
83260: 802 8 84 11 92
|
||||||
|
91848: 288 47 9 267 1
|
||||||
|
113480: 67 9 34 3 480
|
||||||
|
187926960: 5 82 8 310 871
|
||||||
|
928486: 871 2 95 35 2 61 871
|
||||||
|
38547: 494 78 1 8 6
|
||||||
|
350258: 8 4 99 5 8 4 9 6 6 78 8 2
|
||||||
|
32403520: 9 8 4 16 111 1 8 3 5 40 8
|
||||||
|
64168545: 2 14 13 1 4 1 228
|
||||||
|
4901: 5 1 96 5
|
||||||
|
32185440: 61 3 744 31 40 4 7
|
||||||
|
1791603: 179 91 867 1 95
|
||||||
|
312242: 77 3 7 6 8 5 3
|
||||||
|
1968834563: 948 59 1 5 65 88 4
|
||||||
|
96959: 358 27 22 7 9
|
||||||
|
10843626757: 299 57 87 532 633
|
||||||
|
188756400: 1 3 586 31 49 805
|
||||||
|
9878383: 15 462 879 5 253
|
||||||
|
223460: 7 446 4 300 295 145
|
||||||
|
6522815: 24 4 3 1 5 1 6 349 5
|
||||||
|
319259894: 57 56 595 3 97
|
||||||
|
16356414611: 4 9 625 5 345 5 3 3 1 2 2
|
||||||
|
10925466561: 79 52 834 66 561
|
||||||
|
210847: 2 5 2 154 83 8 63 7 91
|
||||||
|
9771484818: 2 64 371 9 44 21 5 4
|
||||||
|
1517: 7 1 9 701 797
|
||||||
|
366017164: 14 22 60 17 161
|
||||||
|
705406145: 2 278 3 57 11 9 7 3 7 39
|
||||||
|
4320: 8 54 2
|
||||||
|
1136938409: 1 6 411 4 794 7 619 71
|
||||||
|
26151: 4 5 645 714 4 75
|
||||||
|
12141509451: 64 3 1 7 22 3 7 9 1 4 6 7
|
||||||
|
6643619611: 277 72 54 4 443
|
||||||
|
37988330: 51 8 67 310 31
|
||||||
|
344528998: 353 976 989 5 5
|
||||||
|
86260: 4 3 85 7 705 25 3 2 61 6
|
||||||
|
207821952: 9 3 442 933 7 52 9 32
|
||||||
|
68857957: 1 377 50 85 666 44 5
|
||||||
|
22549414: 3 5 7 517 6 7 9 10 403 8
|
||||||
|
91219296896: 4 91 1 362 784 883
|
||||||
|
13340717: 7 9 74 601 5 8 54 3 6 4 7
|
||||||
|
13277825: 236 6 7 98 7 4 53 25
|
||||||
|
34904568801: 3 5 4 7 720 8 2 327 3 66
|
||||||
|
365440507746: 35 75 291 232 91 6
|
||||||
|
1217646: 87 7 310 1 883 3
|
||||||
|
4542786: 4 5 114 3 78 13 2 3 74
|
||||||
|
2487245: 76 58 2 94 6 5
|
||||||
|
71519: 3 7 5 337 71 4 2 3 62 3 7
|
||||||
|
367213749: 1 5 918 171 9 2 4
|
||||||
|
394549089609: 4 5 1 977 3 727 240 4 9
|
||||||
|
117940712: 4 897 69 46 349
|
||||||
|
147064770258: 41 3 69 8 81 918 8 483
|
||||||
|
10138575600: 6 50 6 474 51 233 1
|
||||||
|
11877: 6 5 319 9 4
|
||||||
|
10018771: 9 8 89 5 7 4 2 5 15 9 421
|
||||||
|
4919: 328 1 817 85 4
|
||||||
|
1399115897647: 4 62 6 7 7 42 8 60 54 9
|
||||||
|
702776: 8 7 483 97 8
|
||||||
|
63862: 3 71 863
|
||||||
|
12256176: 8 5 3 8 6 834 126 3 4 6 8
|
||||||
|
33442856: 899 186 25 7 8
|
||||||
|
3609624055: 7 7 8 9 9 5 2 9 704 701 3
|
||||||
|
1730553335: 24 2 9 505 67 66 333 4
|
||||||
|
223848: 5 471 5 6 588 3 1 1 29 8
|
||||||
|
410887: 6 36 6 369 61 55
|
||||||
|
71437850: 34 7 7 9 1 74 8 9 1 2 8 2
|
||||||
|
22671: 27 793 1 336 924
|
||||||
|
189519651: 920 89 21 5 98
|
||||||
|
35790480396: 2 4 5 6 9 7 810 1 8 1 395
|
||||||
|
1938893491925: 8 9 153 4 4 2 10 59 88 3
|
||||||
|
15984845871: 465 289 53 11 4 6 4 3 1
|
||||||
|
4178671207: 7 9 1 8 73 26 2 86 5 8 5 7
|
||||||
|
583945973953: 8 8 8 923 71 2 5 44 33
|
||||||
|
4632752: 734 7 5 621 9 4
|
||||||
|
26197367269: 1 2 803 328 98 7 26 4 3
|
||||||
|
538104: 267 2 20 94 4 1 7
|
||||||
|
619952448: 65 9 4 6 83 4 76 10 7 10
|
||||||
|
517041: 752 8 85 22 8 8
|
||||||
|
97747: 3 47 630 13 34
|
||||||
|
6739294: 91 23 88 309 5
|
||||||
|
1637457526: 33 660 5 5 11 27 3 53
|
||||||
|
7369541154800: 602 9 2 535 979 649 4
|
||||||
|
3452722: 60 9 7 56 31 23
|
||||||
|
106641041: 1 32 7 2 9 3 3 6 204 7 5 9
|
||||||
|
12139856: 8 6 42 74 279 4 1
|
||||||
|
8144806: 8 9 9 4 8 8 18 8 9 2 80 6
|
||||||
|
20728968: 285 7 3 8 6 3 9 6 85 1 4 6
|
||||||
|
824529024: 759 4 6 328 138
|
||||||
|
24066223: 9 14 191 22 10
|
||||||
|
15546301: 8 18 18 190 881
|
||||||
|
2250828: 7 4 958 62 2 8 2 44 2 3
|
||||||
|
75450608: 24 2 969 8 1 150 501 8
|
||||||
|
879206487920: 794 3 391 805 944
|
||||||
|
54038971: 540 38 75 21 9 2
|
||||||
|
171363: 1 91 58 3 85 8
|
||||||
|
885: 5 1 29 32 5
|
||||||
|
139205608: 582 436 823 774 2 83
|
||||||
|
39041232: 4 9 4 4 94 8 5 1 610 5 1 2
|
||||||
|
828: 263 1 3 24 12
|
||||||
|
3639213: 255 2 4 4 5 178
|
||||||
|
962: 3 1 8 938 12
|
||||||
|
925: 21 4 1 8 6 68
|
||||||
|
5612850981: 8 8 1 76 1 9 63 88 87 45
|
||||||
|
402040748: 5 874 92 672 76
|
||||||
|
6343584591: 90 7 2 1 8 388 9 845 8 9
|
||||||
|
36893: 2 91 6 733 246 3 8 5
|
||||||
|
239916393: 7 1 765 424 2 449 731
|
||||||
|
6784649: 643 9 5 259 647
|
||||||
|
1834: 83 826 7 1 2
|
||||||
|
19808: 95 2 5 116 1 5 5 2 5 4 4 2
|
||||||
|
199130: 497 9 2 390 981 24 1 4
|
||||||
|
218513331718: 25 571 6 91 9 6 39 5 17
|
||||||
|
10024: 939 9 7 40 6 66
|
||||||
|
12273646: 1 414 6 2 8 2 3 1 6 9 7 22
|
||||||
|
13043384735: 3 2 570 56 9 4 5 5 3 644
|
||||||
|
5929930318: 474 255 2 39 28 8 3 26
|
||||||
|
3105664675: 8 1 701 4 2 4 2 4 674
|
||||||
|
33549: 799 867 4 5 40 1 5
|
||||||
|
19491: 13 2 46 3 5 3 970 6 7 6
|
||||||
|
7281282: 49 23 8 1 2 83
|
||||||
|
2941225352: 6 88 2 985 1 8 648 1 6 2
|
||||||
|
743842143: 3 46 5 2 9 1 9 592 1 6 50
|
||||||
|
3770861494685: 3 9 639 5 18 7 755 6 6 5
|
||||||
|
230900220: 49 645 6 401 9 93 135
|
||||||
|
139021: 27 5 3 91 8 9 96
|
||||||
|
2339418: 687 798 5 35 9 545
|
||||||
|
17623875: 6 3 160 2 3 45 4 4 252 3
|
||||||
|
7093008549: 1 737 8 4 4 9 9 6 4 5 49 3
|
||||||
|
2161990244728: 2 2 56 1 9 803 9 473 30
|
||||||
|
4233496995055: 1 9 79 569 70 850 6 9
|
||||||
|
49611735: 3 8 398 8 9 5 68 4 11 2 2
|
||||||
|
314315: 4 479 11 2 7
|
||||||
|
15718188186: 260 6 9 2 818 8 1 81 2
|
||||||
|
241: 24 1 1
|
||||||
|
3010: 6 48 5 4 78
|
||||||
|
1135: 1 4 281 2 9
|
||||||
|
81773: 40 5 43 18
|
||||||
|
30460941: 78 7 6 9 2 815 8 3 6 1 2 2
|
||||||
|
35705061092: 6 9 39 8 2 816 6 7 5 6 9 3
|
||||||
|
25386661278: 4 6 5 7 82 11 64 1 2 7 5
|
||||||
|
1759980508: 33 68 323 9 386 5
|
||||||
|
9285284808: 519 9 943 31 963 68
|
||||||
|
825411626: 85 6 98 359 902 9 46
|
||||||
|
181828: 27 55 66
|
||||||
|
3339156: 31 1 6 78 145 158
|
||||||
|
1828013722: 5 3 2 4 9 4 42 2 1 3 9 260
|
||||||
|
14583391061: 46 2 40 35 35 83 5 61
|
||||||
|
11615: 1 5 54 196 50
|
||||||
|
125065785: 9 770 2 1 52 2 8 7 4 4 7 6
|
||||||
|
3838169: 8 1 70 7 47 922 2 8 42
|
||||||
|
757453: 23 392 84 104 5
|
||||||
|
25565938: 4 2 9 536 563 1 464
|
||||||
|
31650181: 380 2 8 52 8 69 5 206
|
||||||
|
1550195111: 7 14 2 210 5 13 6 510 9
|
||||||
|
2288: 4 6 8 848 79 996
|
||||||
|
10906: 2 2 4 3 574
|
||||||
|
1857247825: 1 5 1 3 3 3 4 7 993 6 34
|
||||||
|
519606584: 591 91 478 3 7 456 8 7
|
||||||
|
2387585200: 909 1 445 44 134
|
||||||
|
240706: 5 48 706
|
||||||
|
69652758240: 4 4 95 74 9 3 2 3 5 9 4 8
|
||||||
|
1708581168: 515 1 15 667 783 28
|
||||||
|
3529: 6 47 8 294 1 9 951 5 8 6
|
||||||
|
2325425: 579 6 8 95 487
|
||||||
|
9741670662: 1 4 7 3 42 2 9 9 2 4 773 5
|
||||||
|
38772: 75 62 188 8 68
|
||||||
|
6401764: 2 4 367 34 7 66
|
||||||
|
155361598651: 3 9 65 8 5 8 142 6 7 8 9 1
|
||||||
|
77114165613: 114 1 84 821 7 2 7 1 9 2
|
||||||
|
129739783188: 21 4 5 7 96 1 8 1 2 2 317
|
||||||
|
5352096010: 985 566 96 1 2
|
||||||
|
83015410: 3 734 29 65 5 2
|
||||||
|
13959262: 93 86 951 82 484
|
||||||
|
131105147: 69 190 49 18 232
|
||||||
|
80465240: 2 7 48 277 19 2 34 7
|
||||||
|
4187717: 760 9 8 544 6 1
|
||||||
|
66632: 8 2 9 4 4 4 5 764 5 1 40 8
|
||||||
|
16701: 12 9 3 56 2 50
|
||||||
|
476608899: 2 7 36 3 57 6 509 125 4
|
||||||
|
65111177648: 9 41 1 1 3 7 3 6 2 4 7 48
|
||||||
|
3764967: 6 105 26 44 8 8 75 76
|
||||||
|
249938: 4 2 5 6 6 8 5 4 58 8 9 984
|
||||||
|
12144922: 487 1 41 23 913 9
|
||||||
|
55495023: 8 867 87 8 8
|
||||||
|
2533544483: 8 6 4 776 6 8 9 5 3 2 84
|
||||||
|
49882405: 3 9 20 7 5 8 4 7 120 2 8
|
||||||
|
531821285: 9 413 6 356 59 8
|
||||||
|
982: 5 1 3 423 550
|
||||||
|
2035142: 437 388 2 71 7 6 2
|
||||||
|
251946: 9 3 5 8 185 5 708
|
||||||
|
2889: 32 1 9
|
||||||
|
38035751: 425 6 25 5 706
|
||||||
|
1706128499: 47 363 284 97 1
|
||||||
|
15084993: 21 5 71 2 106 21 77
|
||||||
|
115693001: 2 5 2 151 25 6 5 192 2 7
|
||||||
|
4116653112: 5 48 887 75 6 15
|
||||||
|
972753516650: 979 92 1 77 3 4 9 59 6 1
|
||||||
|
3036153: 416 4 99 650 9
|
||||||
|
1451700796: 211 688 47 160 99
|
||||||
|
541867381: 451 556 12 70 108
|
||||||
|
10564977526: 6 7 1 1 3 2 29 31 4 505 5
|
||||||
|
196219884: 96 1 66 203 86
|
||||||
|
283035968424: 6 83 97 1 99 982 4 53 8
|
||||||
|
326432: 3 522 19 5 5 2 6 1 6 2 8 2
|
||||||
|
2612707589: 5 9 8 1 9 7 86 1 3 94 7 7
|
||||||
|
43451622: 567 26 650 3 941 6
|
||||||
|
5630: 58 503 1 2 8
|
||||||
|
4309231498: 85 178 7 190 375 84
|
||||||
|
111142473: 623 9 479 42 3 7 6 7 35
|
||||||
|
7433090320: 387 14 24 29 80 3
|
||||||
|
6215287915: 9 417 102 9 66
|
||||||
|
135649560682: 90 4 33 15 55 5 679
|
||||||
|
50611810415: 2 2 2 178 87 985 8 79
|
||||||
|
4899685: 78 86 44 97 7 18
|
||||||
|
35154763576: 2 39 84 637 7 7 1 5 74
|
||||||
|
365264770: 913 4 64 186 584
|
||||||
|
8019: 84 798 5 4 9
|
||||||
|
2508: 1 24 83 389 60 2 65 1
|
||||||
|
5458136777: 53 6 9 81 3 6 2 5 5 522
|
||||||
|
2757995051: 29 951 948 31 222
|
||||||
|
764140: 7 6 413 7
|
||||||
|
3995924243581: 648 689 560 325 11 6
|
||||||
|
154058630934: 303 504 846 1 28 61 6
|
||||||
|
1427638: 8 13 21 593 632 5
|
||||||
|
21098550233: 4 1 1 69 824 65 45 98 6
|
||||||
|
178: 50 46 82
|
||||||
|
119341: 45 57 78 15
|
||||||
|
1001625: 6 6 2 821 2
|
||||||
|
107025: 78 28 9 64 61
|
||||||
|
6827328: 346 3 7 4 930 21 45 3
|
||||||
|
747730884: 29 96 954 65 4 2 8 2
|
||||||
|
243569365: 3 9 1 6 4 3 8 443 43 76 6
|
||||||
|
1359330: 7 97 298 2 735
|
||||||
|
39346886641: 2 88 8 41 3 55 1 6 659 1
|
||||||
|
455625: 90 7 5 78 234 861 9
|
||||||
|
601917984: 5 55 1 8 3 8 6 1 973 3 3 5
|
||||||
|
71009287: 2 4 8 628 684 4 4 9 4
|
||||||
|
214: 2 6 2 7 4
|
||||||
|
2342725: 6 12 89 14 43
|
||||||
|
25959024: 4 7 187 1 308 7 9 4 1 7 8
|
||||||
|
972061: 4 8 70 80 84 9 383 4
|
||||||
|
2178012557: 9 3 234 18 12 5 39 6 12
|
||||||
|
3915: 7 35 9 6 45 46 7 20 570
|
||||||
|
26750623: 2 67 1 50 626
|
||||||
|
1121087: 266 1 753 17 11
|
||||||
|
3795624: 570 6 156 516 42
|
||||||
|
967753: 5 35 395 1 14
|
||||||
|
31443545952: 4 18 871 987 508
|
||||||
|
9191024368: 7 54 3 96 43 5 2 3 47
|
||||||
|
18400: 34 5 488 263 1 6 3 23 1
|
||||||
|
509203: 1 1 61 7 1 9 118 3 3 5 3
|
||||||
|
174801132: 30 1 1 6 732 80 65 8 99
|
||||||
|
211965600: 2 5 814 7 62 60
|
||||||
|
3173091525: 998 2 8 613 7 41 9 1 1 9
|
||||||
|
169407529: 46 7 906 7 252 2 22 4
|
||||||
|
5331: 4 4 9 37 1
|
||||||
|
21980222: 3 133 6 988 2 41 7 1 7
|
||||||
|
449553702: 405 111 282 88 2
|
||||||
|
2942: 5 15 8 1 18 62
|
||||||
|
2320553257: 91 51 5 53 156 9 91
|
||||||
|
9146342: 197 8 1 4 92 441 5
|
||||||
|
966594375: 9 840 5 5 6 4 1 5 757 5 3
|
||||||
|
4780203738: 6 7 3 17 372 1 9 7 3 857
|
||||||
|
277037610569: 3 6 8 19 4 4 6 8 9 710 67
|
||||||
|
9836: 7 1 41 2 16 1 652
|
||||||
|
200552837873474: 236 780 21 847 3 47 4
|
||||||
|
1225: 3 2 7 7 901 3 9 26 35 6
|
||||||
|
138: 5 6 108
|
||||||
|
48726878940: 5 4 140 9 4 3 8 9 8 3 6 40
|
||||||
|
1072958: 27 1 9 11 158 379 9
|
||||||
|
14700: 18 3 7 525
|
||||||
|
27192423: 74 9 9 6 3 7 6 3 18 2 36 3
|
||||||
|
973: 8 5 1 7 1 61
|
||||||
|
4767602: 970 6 4 305 106 7 35 6
|
||||||
|
5699955: 8 14 47 70 41 956
|
||||||
|
4799016: 6 9 5 7 2 8 5 2 59 514 8 9
|
||||||
|
1104789: 211 843 50 74 2 47
|
||||||
|
3465098: 3 4 487 1 2 385 1 5 9 44
|
||||||
|
1092564: 455 2 1 8 20 3
|
||||||
|
4046781265: 418 4 5 92 1 1 263
|
||||||
|
9213: 85 98 3 871 9
|
||||||
|
19183: 4 6 1 4 3 1 19 133 6 4 1 6
|
||||||
|
3057: 913 3 317 1
|
||||||
|
308423: 64 61 79 1 7
|
||||||
|
4532250239: 4 12 8 25 421 6 56 72
|
||||||
|
259228473176: 8 49 77 22 91 3 1 7 9
|
||||||
|
53531868: 910 4 15 49 36 6 8 9
|
||||||
|
3170: 633 5 5
|
||||||
|
7000826121: 9 5 6 3 69 84 96 233 9
|
||||||
|
26296280: 377 12 69 87 8 704
|
||||||
|
944: 37 8 39 1 859
|
||||||
|
416601374947: 4 67 9 7 472 493 2 3 3 6
|
||||||
|
87295346: 2 8 9 68 2 75 9 9 4 9 3 9
|
||||||
|
88964084: 282 9 598 640 83
|
||||||
|
26775736: 6 6 93 934 4
|
||||||
|
30545: 973 5 1 2 46 2 343 9 3 5
|
||||||
|
96136910: 93 1 2 8 8 97 1 1 9 1 890
|
||||||
|
37564937: 375 64 861 1 77
|
||||||
|
3400: 7 17 362 84 480 184 3
|
||||||
|
6800: 9 9 4 20 4
|
||||||
|
351249746890: 48 38 15 11 862 66
|
||||||
|
7882: 1 16 26 731 6 1 3 2 8 40
|
||||||
|
17835253284: 243 651 732 8 3
|
||||||
|
2210544040: 730 1 3 5 4 6 28 12 5 8 5
|
||||||
|
122544: 6 851 8 3
|
||||||
|
897030320: 6 4 7 2 98 4 867 165 3 1
|
||||||
|
12088: 69 387 92 22 32 1
|
||||||
|
278: 94 8 94 2 4 76
|
||||||
|
1349040: 84 78 9 2 3 4 1 77 1
|
||||||
|
1909: 702 784 6 412 5
|
||||||
|
510079: 7 9 4 28 72 77 2 27
|
||||||
|
434835: 7 62 1 4 69 3
|
||||||
|
30991593633: 85 6 302 13 67 77 39
|
||||||
|
3289538589: 77 712 6 9 85 88
|
||||||
|
6121549: 50 9 5 795 385 15 3 5
|
||||||
|
4979436: 13 5 4 7 3 13 6 2 8 8 3 68
|
||||||
|
129724777: 3 12 1 7 2 87 47 59 5 4
|
||||||
|
68892363: 6 897 5 74 3 1 7 5 6 2 3 3
|
||||||
|
4255924039: 1 72 6 94 978 41 586 3
|
||||||
|
70979251824: 63 3 50 8 1 152 779 78
|
||||||
|
1308486: 997 7 783 939 4 2 1 1 6
|
||||||
|
2493632464308: 457 659 3 41 1 4 207
|
||||||
|
348724: 34 8 722 1
|
||||||
|
99166237: 984 7 64 2 238
|
||||||
|
285197: 165 3 781 700 91
|
||||||
|
9295: 53 3 57 43 7
|
||||||
|
572564: 51 4 2 2 564
|
||||||
|
325498150: 171 19 5 981 47
|
||||||
|
46795: 43 1 1 2 793
|
||||||
|
46340060: 4 5 1 3 332 4 2 8 618 1
|
||||||
|
147087: 59 4 876 8 6 1
|
||||||
|
4611297686: 3 34 91 2 6 69 6 85
|
||||||
|
3862158312: 79 8 9 97 4 4 4 1 8 44 7
|
||||||
|
789742859: 2 572 8 6 4 15 862 25 9
|
||||||
|
579661523530: 2 5 41 29 132 211 91
|
||||||
|
574: 9 4 6 4 7
|
||||||
|
70184473660: 3 68 8 643 58 807 11 4
|
||||||
|
70743726: 8 22 9 193 382
|
||||||
|
2837431380: 2 89 49 63 3 3 4 707 1
|
||||||
|
4458906: 44 582 4 9 656
|
||||||
|
171138967: 1 171 13 1 7 960 7
|
||||||
|
38732: 3 8 7 3 5
|
||||||
|
931380691: 80 59 67 806 92
|
||||||
|
3906490490: 2 42 1 6 21 1 96 778 2
|
||||||
|
12218522: 2 6 21 5 4 31 2 1
|
||||||
|
101954797: 472 6 9 692 4 4 6 1 6 14
|
||||||
|
305743: 70 49 5 89 28
|
||||||
|
1327567128: 1 15 189 7 1 43 82
|
||||||
|
13548879: 6 9 8 413 47 2
|
||||||
|
1815476055012: 9 5 637 8 681 3 7 3 3 1 2
|
||||||
|
7297: 65 82 748 688 531
|
||||||
|
35204: 9 10 64 6 644
|
||||||
|
716101542: 928 505 28 9 70 9 778
|
||||||
|
43859: 146 55 741 5 2
|
||||||
|
597783034238: 9 2 68 866 49 190 8
|
||||||
|
63576: 5 7 92 54 12
|
||||||
|
508211: 2 30 60 3 88 444 887
|
||||||
|
809: 9 501 2 7 290
|
||||||
|
54153: 5 32 332 981 34 18
|
||||||
|
947723581: 43 29 76 3 581
|
||||||
|
118147: 12 7 97 7 5 1 7 911 479
|
||||||
|
40606820: 96 6 4 7 4 2 68 6 6 74
|
||||||
|
29223272479321: 8 654 7 923 8 40 603
|
||||||
|
276032: 16 7 30 4 34
|
||||||
|
78046230: 47 3 75 56 22
|
||||||
|
553350: 6 15 80 178 75
|
||||||
|
3735: 5 64 7 7 535 3 1 3 525
|
||||||
|
2771237635: 8 880 2 17 39 2 4 53 6 6
|
||||||
|
1677983: 899 9 7 8 33
|
||||||
|
1575693: 19 4 2 962 8
|
||||||
|
171136: 5 267 2 4 2 32
|
||||||
|
1255703222: 22 63 97 3 13 934
|
||||||
|
455805632: 6 7 203 8 2 9 6 5 65 5 6 5
|
||||||
|
109920: 35 3 209 5 195
|
||||||
|
906417640: 58 1 5 23 2 307 1 40
|
||||||
|
25890834326636: 1 7 2 896 109 7 6 6 5 9 4
|
||||||
|
403244184917: 2 576 5 6 1 312 13 7 2 5
|
||||||
|
3564175: 48 74 8 2 7 6 90 6 3 815
|
||||||
|
1558050560: 3 2 1 2 231 8 5 4 926 44
|
||||||
|
89400308: 5 1 401 8 421 354 217
|
||||||
|
12147: 8 5 9 84 8 37 7 618 14
|
||||||
|
6656: 2 51 5 81 776
|
||||||
|
191770117: 6 627 1 8 1 91 5 8 5 70 7
|
||||||
|
36606668968: 22 282 52 59 965
|
||||||
|
44391606965: 98 1 59 760 6 887 81
|
||||||
|
22680: 5 52 18 6 30
|
||||||
|
9882851925: 987 3 5 93 51 75 17 3
|
||||||
|
83482: 345 6 2 774 7 8 62 7
|
||||||
|
1514: 4 35 3 7 199
|
||||||
|
63054605: 13 5 819 958
|
||||||
|
62283458186154: 77 1 837 643 801 954
|
||||||
|
63516: 31 42 55 6 1 67 316
|
||||||
|
33244662713: 71 7 6 786 79 85
|
||||||
|
126031: 3 6 7 4 59 6 5 6 4 4 147 1
|
||||||
|
15370: 71 82 2 5 44
|
||||||
|
214042233972: 73 9 4 2 9 1 9 2 6 8 93 4
|
||||||
|
100495410: 5 578 3 5 4 6 41 882 6 5
|
||||||
|
989: 8 92 95
|
||||||
|
177497320: 9 4 4 9 8 109 1 2 7 2 605
|
||||||
|
38159834: 1 7 17 10 3 5 9 932 3 6 8
|
||||||
|
3692749373496: 761 8 82 30 7 8 19 8 57
|
||||||
|
54685213: 42 4 235 1 2 45 48 55 9
|
||||||
50
src/inputs/08.in
Normal file
50
src/inputs/08.in
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
........5................r..................B.....
|
||||||
|
....................................V..B..........
|
||||||
|
...........................................B......
|
||||||
|
r..................C....................Y......N..
|
||||||
|
............................C.....................
|
||||||
|
vb.r........9......x..................7...........
|
||||||
|
..v........C.........................U...7.N..6...
|
||||||
|
5............9..................n.B...............
|
||||||
|
....r........4....................0.....K.....Y...
|
||||||
|
..4...C............7.......U..........6...........
|
||||||
|
......4z....................n.......U....6........
|
||||||
|
..............b...........N..........n............
|
||||||
|
.......9............x.....V..............K........
|
||||||
|
.....v......................................2.....
|
||||||
|
.....V........Z........n..........................
|
||||||
|
....z..........................VU......K..........
|
||||||
|
...b....z..............................Y..........
|
||||||
|
.z.......Z..................................K.....
|
||||||
|
..b.................................7.............
|
||||||
|
.4x...............................................
|
||||||
|
.h.......................5........................
|
||||||
|
.................................g................
|
||||||
|
..............9....0.........c................d...
|
||||||
|
......h.................u.............c........2.d
|
||||||
|
.....................8........N.....c...2.T.......
|
||||||
|
......Z..h.......................................c
|
||||||
|
........H........d................................
|
||||||
|
........................................d.........
|
||||||
|
.Z........................................k.......
|
||||||
|
...............................T...............6..
|
||||||
|
q..............Q...X..O............2..............
|
||||||
|
..............................O.8......D..........
|
||||||
|
........X............................O............
|
||||||
|
.........t......................T.................
|
||||||
|
..........................t...8.......Q......u....
|
||||||
|
.................Q.....O..........................
|
||||||
|
..........hj.......o..............JR....u.........
|
||||||
|
..........X..........ot.........3.R...............
|
||||||
|
.......J.............y.....3.....................g
|
||||||
|
............y..J.Xj......R..........G.............
|
||||||
|
.....................t.........H.....D..g...G.....
|
||||||
|
........J.......o......y.......k..................
|
||||||
|
..................1...............................
|
||||||
|
.....................3....k.......q.........1.....
|
||||||
|
...........v......................3k..............
|
||||||
|
...................1......Q...H............G......
|
||||||
|
.............1y......T............j...............
|
||||||
|
......0............8..................D........u..
|
||||||
|
.............................G....D...o....q......
|
||||||
|
...............j.0...H............................
|
||||||
1
src/inputs/09.in
Normal file
1
src/inputs/09.in
Normal file
File diff suppressed because one or more lines are too long
0
src/inputs/10.in
Normal file
0
src/inputs/10.in
Normal file
0
src/inputs/11.in
Normal file
0
src/inputs/11.in
Normal file
0
src/inputs/12.in
Normal file
0
src/inputs/12.in
Normal file
0
src/inputs/13.in
Normal file
0
src/inputs/13.in
Normal file
0
src/inputs/14.in
Normal file
0
src/inputs/14.in
Normal file
0
src/inputs/15.in
Normal file
0
src/inputs/15.in
Normal file
0
src/inputs/16.in
Normal file
0
src/inputs/16.in
Normal file
0
src/inputs/17.in
Normal file
0
src/inputs/17.in
Normal file
0
src/inputs/18.in
Normal file
0
src/inputs/18.in
Normal file
0
src/inputs/19.in
Normal file
0
src/inputs/19.in
Normal file
0
src/inputs/20.in
Normal file
0
src/inputs/20.in
Normal file
0
src/inputs/21.in
Normal file
0
src/inputs/21.in
Normal file
0
src/inputs/22.in
Normal file
0
src/inputs/22.in
Normal file
0
src/inputs/23.in
Normal file
0
src/inputs/23.in
Normal file
0
src/inputs/24.in
Normal file
0
src/inputs/24.in
Normal file
0
src/inputs/25.in
Normal file
0
src/inputs/25.in
Normal file
109
src/misc/template.cpp
Normal file
109
src/misc/template.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
131
src/solutions/01.cpp
Normal file
131
src/solutions/01.cpp
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
// Include the libs
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <sstream>
|
||||||
|
#include <string>
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
// Check for part
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reading the input file
|
||||||
|
std::ifstream inputFile(
|
||||||
|
"src/inputs/01.in"); // Replace "data.txt" with your file name
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<int> leftList, rightList;
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
std::istringstream iss(line);
|
||||||
|
int left, right;
|
||||||
|
if (iss >> left >> right) {
|
||||||
|
leftList.push_back(left);
|
||||||
|
rightList.push_back(right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
///
|
||||||
|
// Evaluate the collected data
|
||||||
|
//
|
||||||
|
// Count occurrences of each number in the right list
|
||||||
|
std::unordered_map<int, int> rightCount;
|
||||||
|
for (int num : rightList) {
|
||||||
|
rightCount[num]++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate the similarity score
|
||||||
|
int similarityScore = 0;
|
||||||
|
for (int num : leftList) { // remember this way of iterating with the colon
|
||||||
|
similarityScore +=
|
||||||
|
num *
|
||||||
|
rightCount[num]; // Multiply the number with its frequency in right list
|
||||||
|
}
|
||||||
|
|
||||||
|
// Part 1
|
||||||
|
|
||||||
|
// Sort both lists never modify the data!! (Here im too lazy)
|
||||||
|
std::sort(leftList.begin(), leftList.end());
|
||||||
|
std::sort(rightList.begin(), rightList.end());
|
||||||
|
|
||||||
|
// Calculate total distance Can this be done in just one loop??
|
||||||
|
int totalDistance = 0;
|
||||||
|
for (size_t i = 0; i < leftList.size(); ++i) {
|
||||||
|
totalDistance += std::abs(leftList[i] - rightList[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// First result
|
||||||
|
int first = totalDistance;
|
||||||
|
///////////////
|
||||||
|
int second = similarityScore;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Output result
|
||||||
|
if (second_part == true) {
|
||||||
|
// Output for the second part
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
// Output for the first part
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout << "HELLO";
|
||||||
|
|
||||||
|
// Old code from gpt
|
||||||
|
|
||||||
|
// // Create some variables
|
||||||
|
// std::vector<std::pair<int, int>>
|
||||||
|
// numbers; // Vector to store the pairs of numbers
|
||||||
|
// std::string line;
|
||||||
|
//
|
||||||
|
// // Iterate over the file
|
||||||
|
// while (std::getline(inputFile, line)) {
|
||||||
|
// // Find the position of the delimiter " "
|
||||||
|
// size_t delimiterPos = line.find(" ");
|
||||||
|
// if (delimiterPos != std::string::npos) {
|
||||||
|
// try {
|
||||||
|
// // Extract the two numbers as substrings
|
||||||
|
// std::string part1 = line.substr(0, delimiterPos);
|
||||||
|
// std::string part2 = line.substr(delimiterPos + 3);
|
||||||
|
//
|
||||||
|
// // Convert substrings to integers
|
||||||
|
// int num1 = std::stoi(part1);
|
||||||
|
// int num2 = std::stoi(part2);
|
||||||
|
//
|
||||||
|
// // Add the pair to the vector
|
||||||
|
// numbers.emplace_back(num1, num2);
|
||||||
|
// } catch (const std::invalid_argument &e) {
|
||||||
|
// std::cerr << "Error: Invalid number in line \"" << line << "\""
|
||||||
|
// << std::endl;
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// std::cerr << "Error: Malformed line \"" << line << "\"" << std::endl;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Close the file
|
||||||
|
// inputFile.close();
|
||||||
|
|
||||||
|
// Print the output
|
||||||
|
// std::cout << "Parsed numbers:" << std::endl;
|
||||||
|
// auto minIt = std::min_element(numbers.begin(), numbers.end());
|
||||||
|
// for (const auto &pair : numbers) {
|
||||||
|
//
|
||||||
|
// std::cout << pair.first << " " << pair.second << std::endl;
|
||||||
|
// }
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
159
src/solutions/02.cpp
Normal file
159
src/solutions/02.cpp
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstddef>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <sstream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
// Setting the constants
|
||||||
|
const std::string DAYNUMBER = "02";
|
||||||
|
const bool DEBUG = 0;
|
||||||
|
|
||||||
|
// Some Macros
|
||||||
|
#define DBG(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
std::vector<int> strToVec(const std::string &input) {
|
||||||
|
std::vector<int> result;
|
||||||
|
std::stringstream ss(input);
|
||||||
|
int num;
|
||||||
|
while (ss >> num) {
|
||||||
|
result.push_back(num);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper functions for just this puzzle
|
||||||
|
|
||||||
|
bool isValidLevelDifference(const std::vector<int> &vec) {
|
||||||
|
for (size_t i = 1; i < vec.size(); ++i) {
|
||||||
|
int diff = std::abs(vec[i] - vec[i - 1]);
|
||||||
|
if (diff < 1 || diff > 3) {
|
||||||
|
return false; // Found a difference that is not between 1 and 3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isAscending(const std::vector<int> &vec) {
|
||||||
|
for (size_t i = 1; i < vec.size(); ++i) {
|
||||||
|
if (vec[i] < vec[i - 1]) {
|
||||||
|
return false; // Found a pair that breaks the ascending order
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isDescending(const std::vector<int> &vec) {
|
||||||
|
for (size_t i = 1; i < vec.size(); ++i) {
|
||||||
|
if (vec[i] > vec[i - 1]) {
|
||||||
|
return false; // Found a pair that breaks the descending order
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isSafeByRemovingOneLevel(const std::vector<int> &vec) {
|
||||||
|
for (size_t i = 0; i < vec.size(); ++i) {
|
||||||
|
// Remove a level and check if it works
|
||||||
|
std::vector<int> modifiedVec = vec;
|
||||||
|
modifiedVec.erase(modifiedVec.begin() + i); // Remove one level
|
||||||
|
|
||||||
|
if (isValidLevelDifference(modifiedVec) &&
|
||||||
|
(isAscending(modifiedVec) || isDescending(modifiedVec))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble //////////////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file); // Replace "data.txt" with your file name
|
||||||
|
|
||||||
|
// Getting the stream
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
// Count variables for two parts
|
||||||
|
int count = 0;
|
||||||
|
int count2 = 0;
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Part 1
|
||||||
|
std::vector<int> row = strToVec(line);
|
||||||
|
if (isValidLevelDifference(row) &&
|
||||||
|
(isAscending(row) || isDescending((row)))) {
|
||||||
|
count += 1;
|
||||||
|
count2 += 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Part 2
|
||||||
|
if (isSafeByRemovingOneLevel(row)) {
|
||||||
|
count2 += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
/// Dont need anything here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
int first = count;
|
||||||
|
///////////////
|
||||||
|
int second = count2;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (!DEBUG) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
122
src/solutions/03.cpp
Normal file
122
src/solutions/03.cpp
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <ostream>
|
||||||
|
#include <regex>
|
||||||
|
#include <sstream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
// Setting the constants
|
||||||
|
const int DAYNUMBER = 3;
|
||||||
|
const bool DEBUG = 0;
|
||||||
|
|
||||||
|
#define DBG(expr) \
|
||||||
|
(std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" << #expr \
|
||||||
|
<< ") = " << (expr) << "\n", \
|
||||||
|
(expr))
|
||||||
|
|
||||||
|
// Defining structures
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
int ex2int(char *ex) { return 0; }
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble //////////////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This messed everything up!!
|
||||||
|
std::ifstream inputFile("src/inputs/0" + std::to_string(DAYNUMBER) + ".in");
|
||||||
|
// std::ifstream inputFile("examples/" + std::to_string(DAYNUMBER) + ".ex");
|
||||||
|
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
|
||||||
|
// Read to string
|
||||||
|
std::stringstream buffer;
|
||||||
|
buffer << inputFile.rdbuf(); // Dump the file content into the buffer
|
||||||
|
std::string text = buffer.str();
|
||||||
|
|
||||||
|
// Setup for regexing
|
||||||
|
std::string line;
|
||||||
|
std::regex pattern(R"(do\(\)|don't\(\)|mul\(\s*(\d+)\s*,\s*(\d+)\s*\))");
|
||||||
|
std::smatch match;
|
||||||
|
std::vector<std::vector<int>> captures;
|
||||||
|
|
||||||
|
auto begin = std::sregex_iterator(text.begin(), text.end(), pattern);
|
||||||
|
auto end = std::sregex_iterator();
|
||||||
|
bool enabled = true;
|
||||||
|
int sum = 0;
|
||||||
|
|
||||||
|
// Iterate through all matches
|
||||||
|
for (auto it = begin; it != end; ++it) {
|
||||||
|
std::smatch match = *it;
|
||||||
|
// Store the captures in a vector
|
||||||
|
if (match[0] == "do()") {
|
||||||
|
enabled = true;
|
||||||
|
} else if (match[0] == "don't()") {
|
||||||
|
if (second_part) {
|
||||||
|
enabled = false;
|
||||||
|
}
|
||||||
|
} else if (enabled) {
|
||||||
|
int x = std::stoi(match[1]);
|
||||||
|
int y = std::stoi(match[2]);
|
||||||
|
sum += x * y;
|
||||||
|
captures.push_back(
|
||||||
|
{std::stoi(match[1].str()), std::stoi(match[2].str())});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
// Part 1
|
||||||
|
int res = 0;
|
||||||
|
// Print the captured groups
|
||||||
|
for (const auto &capture : captures) {
|
||||||
|
// Adding to the result
|
||||||
|
// May do this with a fold in the future
|
||||||
|
res += (capture[0] * capture[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
int first = res;
|
||||||
|
///////////////
|
||||||
|
int second = sum;
|
||||||
|
// Second result
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Print results
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << "Second: " << second << std::endl;
|
||||||
|
} else {
|
||||||
|
std::cout << "First: " << first << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
324
src/solutions/04.cpp
Normal file
324
src/solutions/04.cpp
Normal file
@@ -0,0 +1,324 @@
|
|||||||
|
#include <array>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <ostream>
|
||||||
|
#include <regex>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
const int daynumber = 4;
|
||||||
|
const bool debug = 0;
|
||||||
|
|
||||||
|
const std::regex horizontal_regex("(?=(XMAS|SAMX))");
|
||||||
|
const std::regex mas_regex("(?=(MAS|SAM))");
|
||||||
|
|
||||||
|
#define dbg(expr) \
|
||||||
|
(debug ? (std::cerr << "[dbg] " << __LINE__ << " (" << #expr \
|
||||||
|
<< ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
using smat = std::vector<std::string>;
|
||||||
|
using arr2 = std::array<int, 2>;
|
||||||
|
|
||||||
|
// Check if a substring matches "MAS" or "SAM"
|
||||||
|
int is_mas(const std::string &mas) { return (mas == "MAS" || mas == "SAM"); }
|
||||||
|
|
||||||
|
// Check for the "X-MAS" pattern at grid[row][col]
|
||||||
|
int check_xmas(const std::vector<std::string> &grid, int row, int col) {
|
||||||
|
int n = grid.size();
|
||||||
|
int m = grid[0].size();
|
||||||
|
|
||||||
|
if (row < 1 || row >= n - 1 || col < 1 || col >= m - 1)
|
||||||
|
return 0; // Out of bounds for the "X" pattern
|
||||||
|
|
||||||
|
std::string mas1 = {grid[row - 1][col - 1], grid[row][col],
|
||||||
|
grid[row + 1][col + 1]};
|
||||||
|
std::string mas2 = {grid[row - 1][col + 1], grid[row][col],
|
||||||
|
grid[row + 1][col - 1]};
|
||||||
|
|
||||||
|
return is_mas(mas1) && is_mas(mas2);
|
||||||
|
}
|
||||||
|
|
||||||
|
int count_matches(const smat &rows, const std::regex &re) {
|
||||||
|
int count = 0;
|
||||||
|
for (const auto &row : rows)
|
||||||
|
count += std::distance(std::sregex_iterator(row.begin(), row.end(), re),
|
||||||
|
std::sregex_iterator());
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
smat rotate90(const smat &rows) {
|
||||||
|
smat rotated(rows[0].size());
|
||||||
|
for (const auto &row : rows)
|
||||||
|
for (size_t i = 0; i < row.size(); ++i)
|
||||||
|
rotated[i] += row[i];
|
||||||
|
return rotated;
|
||||||
|
}
|
||||||
|
|
||||||
|
smat diagonalize(const smat &rows, bool reverse) {
|
||||||
|
smat result(rows[0].size() + rows.size() - 1);
|
||||||
|
for (size_t r = 0; r < rows.size(); ++r)
|
||||||
|
for (size_t c = 0; c < rows[0].size(); ++c)
|
||||||
|
result[reverse ? r + c : rows[0].size() - c - 1 + r] += rows[r][c];
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
bool second_part = (argc > 1);
|
||||||
|
std::ifstream inputfile(
|
||||||
|
debug ? "src/examples/0" + std::to_string(daynumber) + ".ex"
|
||||||
|
: "src/inputs/0" + std::to_string(daynumber) + ".in");
|
||||||
|
if (!inputfile)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
smat rows;
|
||||||
|
for (std::string line; std::getline(inputfile, line);)
|
||||||
|
rows.push_back(line);
|
||||||
|
|
||||||
|
int count1 = count_matches(rows, horizontal_regex) +
|
||||||
|
count_matches(rotate90(rows), horizontal_regex) +
|
||||||
|
count_matches(diagonalize(rows, false), horizontal_regex) +
|
||||||
|
count_matches(diagonalize(rows, true), horizontal_regex);
|
||||||
|
|
||||||
|
dbg(count1);
|
||||||
|
if (!second_part) {
|
||||||
|
if (!debug)
|
||||||
|
std::cout << count1 << "\n";
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int count2 = 0;
|
||||||
|
|
||||||
|
// Iterate through the grid to count "X-MAS" patterns
|
||||||
|
for (int i = 0; i < rows.size(); i++) {
|
||||||
|
for (int j = 0; j < rows[i].size(); j++) {
|
||||||
|
count2 += check_xmas(rows, i, j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dbg(count2);
|
||||||
|
if (!debug)
|
||||||
|
std::cout << count2 << std::endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
////// include the libs (essesntials)
|
||||||
|
// #include <array>
|
||||||
|
// #include <cstdio>
|
||||||
|
// #include <cstring>
|
||||||
|
// #include <fstream>
|
||||||
|
// #include <iostream>
|
||||||
|
// #include <iterator>
|
||||||
|
// #include <ostream>
|
||||||
|
// #include <regex>
|
||||||
|
// #include <string>
|
||||||
|
//
|
||||||
|
//// maybe used
|
||||||
|
//// dont care here when they are not used
|
||||||
|
// #include <algorithm>
|
||||||
|
// #include <cstddef>
|
||||||
|
// #include <sstream>
|
||||||
|
// #include <unordered_map>
|
||||||
|
// #include <vector>
|
||||||
|
//
|
||||||
|
//// setting the constants
|
||||||
|
// const int daynumber = 4;
|
||||||
|
// const bool debug = 1;
|
||||||
|
//
|
||||||
|
//// defining the regex
|
||||||
|
// const std::regex horizontal_regex("(?=(xmas|samx))");
|
||||||
|
// const std::regex mas_regex("(?=(mas|sam))");
|
||||||
|
//
|
||||||
|
// #d efine d bg( expr) \
|
||||||
|
// (debug ? (std::cerr << "[dbg] " << __line__ << " (" << #expr \
|
||||||
|
// << ") = " << (expr) << "\n", \
|
||||||
|
// (expr)) \
|
||||||
|
// : (expr))
|
||||||
|
//
|
||||||
|
//// check occurences of xmas
|
||||||
|
// int occ_mas(std::vector<std::string> rows) {
|
||||||
|
// int count = 0;
|
||||||
|
// /// algorithms go here
|
||||||
|
// for (std::string row : rows) {
|
||||||
|
// // getting the horizontal words
|
||||||
|
// auto words_begin =
|
||||||
|
// std::sregex_iterator(row.begin(), row.end(), horizontal_regex);
|
||||||
|
// auto words_end = std::sregex_iterator();
|
||||||
|
// count += std::distance(words_begin, words_end);
|
||||||
|
// }
|
||||||
|
// return count;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//// rotate the matrix
|
||||||
|
// std::vector<std::string> rotate90(std::vector<std::string> rows) {
|
||||||
|
// std::vector<std::string> rot_rows(rows[0].length());
|
||||||
|
// {
|
||||||
|
// for (std::string row : rows) {
|
||||||
|
// // getting the horizontal words
|
||||||
|
// size_t index = 0;
|
||||||
|
// for (char c : row) {
|
||||||
|
// rot_rows[index] += c;
|
||||||
|
// ++index;
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return rot_rows;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//// diagonalize the matrix
|
||||||
|
// std::vector<std::string> diag(std::vector<std::string> rows, bool rev) {
|
||||||
|
// std::vector<std::string> dia_rows(rows[0].length() + (rows.size() - 1));
|
||||||
|
// int rowi = 0;
|
||||||
|
// for (std::string row : rows) {
|
||||||
|
// int coli = 0;
|
||||||
|
// for (char c : row) {
|
||||||
|
// // here you have a loop over every char!
|
||||||
|
// if (rev) {
|
||||||
|
// dia_rows[rowi + coli] += c;
|
||||||
|
// coli++;
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// dia_rows[rows[0].length() - coli - 1 + rowi] += c;
|
||||||
|
// coli++;
|
||||||
|
// }
|
||||||
|
// rowi++;
|
||||||
|
// }
|
||||||
|
// return dia_rows;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//// types
|
||||||
|
// using smat = std::vector<std::string>;
|
||||||
|
// using arr2 = std::array<int, 2>;
|
||||||
|
//
|
||||||
|
//// helpers
|
||||||
|
// void print_mat(smat mat) {
|
||||||
|
// std::cout << "printing mat:\n";
|
||||||
|
// for (std::string row : mat) {
|
||||||
|
// std::cout << row << std::endl;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// int main(int argc, char *argv[]) {
|
||||||
|
// bool second_part;
|
||||||
|
// if (argc > 1) { // going to the part two when provided arguments
|
||||||
|
// second_part = true;
|
||||||
|
// }
|
||||||
|
// std::string file;
|
||||||
|
// if (debug) {
|
||||||
|
// file = "examples/" + std::to_string(daynumber) + ".ex";
|
||||||
|
// } else {
|
||||||
|
// file = "inputs/" + std::to_string(daynumber) + ".in";
|
||||||
|
// }
|
||||||
|
// std::ifstream inputfile(file); // replace "data.txt" with your file name
|
||||||
|
// // return when not found
|
||||||
|
// if (!inputfile) {
|
||||||
|
// return 1;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// ///////////////////////////////////////////////
|
||||||
|
// /// get the data /////////////////////////////
|
||||||
|
// /////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// std::string line;
|
||||||
|
// std::vector<std::string> rows;
|
||||||
|
// while (std::getline(inputfile, line)) {
|
||||||
|
// rows.push_back(line);
|
||||||
|
// }
|
||||||
|
// inputfile.close();
|
||||||
|
//
|
||||||
|
// ////////////////////////////////////////
|
||||||
|
// // evaluate the collected data /////////
|
||||||
|
// ////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// // part 1
|
||||||
|
//
|
||||||
|
// int count1 = 0;
|
||||||
|
//
|
||||||
|
// // get normals
|
||||||
|
// count1 += occ_mas(rows);
|
||||||
|
//
|
||||||
|
// // get the rotated
|
||||||
|
// count1 += occ_mas(rotate90(rows));
|
||||||
|
//
|
||||||
|
// // get the diagonals
|
||||||
|
// count1 += occ_mas(diag(rows, false));
|
||||||
|
// count1 += occ_mas(diag(rows, true));
|
||||||
|
//
|
||||||
|
// // part 2
|
||||||
|
//
|
||||||
|
// int count2 = 0;
|
||||||
|
//
|
||||||
|
// // here we only need the diagonal matrixes
|
||||||
|
// smat diagr = diag(rows, true);
|
||||||
|
// smat diagl = diag(rows, false);
|
||||||
|
//
|
||||||
|
// print_mat(diagr);
|
||||||
|
// print_mat(diagl);
|
||||||
|
//
|
||||||
|
// std::vector<std::array<int, 2>> rstarts;
|
||||||
|
// std::vector<std::array<int, 2>> lstarts;
|
||||||
|
//
|
||||||
|
// int matnum = 0; // 0 for right 1 for left
|
||||||
|
// for (smat diagmm : {diagr, diagl}) {
|
||||||
|
// int rowi = 0;
|
||||||
|
// for (std::string row : diagmm) {
|
||||||
|
// // reversing helps??
|
||||||
|
// // std::reverse(row.begin(), row.end());
|
||||||
|
//
|
||||||
|
// auto begin = std::sregex_iterator(row.begin(), row.end(), mas_regex);
|
||||||
|
// auto end = std::sregex_iterator();
|
||||||
|
//
|
||||||
|
// // loop through all matches
|
||||||
|
// for (auto it = begin; it != end; ++it) {
|
||||||
|
// // get the match
|
||||||
|
// std::smatch match = *it;
|
||||||
|
//
|
||||||
|
// // get the beginning pos in diagonal format (need to convert back to
|
||||||
|
// // kart)
|
||||||
|
// int position =
|
||||||
|
// match.position(0); // get the position of the current match
|
||||||
|
// //
|
||||||
|
// //
|
||||||
|
// std::cout << row << std::endl;
|
||||||
|
//
|
||||||
|
// // calculate the column here (very bad)
|
||||||
|
// if (matnum == 0) {
|
||||||
|
// rstarts.push_back(arr2{position, rowi});
|
||||||
|
// } else {
|
||||||
|
// lstarts.push_back(arr2{position, rowi});
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// // going to the next row(of translated one)
|
||||||
|
// rowi++;
|
||||||
|
// }
|
||||||
|
// // traversing the other matrix
|
||||||
|
// matnum++;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // here is the logic for finding crosses from starts
|
||||||
|
// // hit is c, r (c, y)
|
||||||
|
// for (arr2 hit : rstarts) {
|
||||||
|
// for (arr2 cmp : lstarts) {
|
||||||
|
// if (hit[1] - 1 == cmp[1] && cmp[0] == hit[0] - 1)
|
||||||
|
// count2++;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// dbg(count2);
|
||||||
|
//
|
||||||
|
// ///////////////////////////////////////
|
||||||
|
// /// output results ///////////////////
|
||||||
|
// /////////////////////////////////////
|
||||||
|
//
|
||||||
|
// if (debug == false) {
|
||||||
|
// if (second_part == true) {
|
||||||
|
// std::cout << count2;
|
||||||
|
// } else {
|
||||||
|
// std::cout << count1;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return 0;
|
||||||
|
// }
|
||||||
243
src/solutions/05.cpp
Normal file
243
src/solutions/05.cpp
Normal file
@@ -0,0 +1,243 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <map>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
// Maybe used
|
||||||
|
// Dont care here when they are not used
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
// Setting the constants
|
||||||
|
const int DAYNUMBER = 5;
|
||||||
|
const bool DEBUG = 0;
|
||||||
|
|
||||||
|
// Some Macros
|
||||||
|
#define DBG(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Defining structures
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
struct rule {
|
||||||
|
int first;
|
||||||
|
int second;
|
||||||
|
|
||||||
|
rule(const std::string &str) {
|
||||||
|
auto separator_pos = str.find('|');
|
||||||
|
if (separator_pos == std::string::npos) {
|
||||||
|
throw std::invalid_argument("Invalid format: Missing '|' separator");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
first = std::stoi(str.substr(0, separator_pos));
|
||||||
|
second = std::stoi(str.substr(separator_pos + 1));
|
||||||
|
} catch (const std::exception &e) {
|
||||||
|
throw std::invalid_argument("Invalid format: Non-integer values");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Overload << operator for printing
|
||||||
|
friend std::ostream &operator<<(std::ostream &os, const rule &obj) {
|
||||||
|
os << "first: " << obj.first << ", second: " << obj.second;
|
||||||
|
return os;
|
||||||
|
}
|
||||||
|
|
||||||
|
void print() const {
|
||||||
|
std::cout << "first: " << first << ", second: " << second << std::endl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct instruction {
|
||||||
|
std::vector<int> jobs;
|
||||||
|
|
||||||
|
// Constructor: Parse a comma-separated string into the jobs vector
|
||||||
|
instruction(const std::string &str) {
|
||||||
|
std::istringstream ss(str);
|
||||||
|
std::string token;
|
||||||
|
while (std::getline(ss, token, ',')) {
|
||||||
|
try {
|
||||||
|
jobs.push_back(std::stoi(token));
|
||||||
|
} catch (const std::exception &e) {
|
||||||
|
throw std::invalid_argument("Invalid input format for instruction: " +
|
||||||
|
str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Overload << operator for printing
|
||||||
|
friend std::ostream &operator<<(std::ostream &os, const instruction &obj) {
|
||||||
|
os << "Jobs: [";
|
||||||
|
for (size_t i = 0; i < obj.jobs.size(); ++i) {
|
||||||
|
os << obj.jobs[i];
|
||||||
|
if (i != obj.jobs.size() - 1) {
|
||||||
|
os << ", ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
os << "]";
|
||||||
|
return os;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Print method (optional, but << is usually preferred)
|
||||||
|
void print() const {
|
||||||
|
std::cout << *this << '\n'; // Reuse the << operator
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble //////////////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/0" + std::to_string(DAYNUMBER) + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/0" + std::to_string(DAYNUMBER) + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file); // Replace "data.txt" with your file name
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
// Here are the rules and instructions stored
|
||||||
|
std::vector<rule> rules;
|
||||||
|
std::vector<instruction> instructions;
|
||||||
|
|
||||||
|
// Here for every job there is a list mapped that contains all jobs that
|
||||||
|
// should be higher than this one
|
||||||
|
std::map<int, std::vector<int>> highers;
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
int section = 0;
|
||||||
|
while (std::getline(inputFile, line, '\n')) {
|
||||||
|
if (line.empty()) { // A blank line switches the section
|
||||||
|
section++;
|
||||||
|
} else {
|
||||||
|
if (section == 0) {
|
||||||
|
rules.push_back(line);
|
||||||
|
} else {
|
||||||
|
instructions.push_back(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Populate the higher list
|
||||||
|
for (rule rule : rules) {
|
||||||
|
highers[rule.first].push_back(rule.second);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
// Store the mid values
|
||||||
|
std::vector<int> middles;
|
||||||
|
|
||||||
|
// Store the wrong instructions for part 2
|
||||||
|
std::vector<instruction> wrongs;
|
||||||
|
|
||||||
|
// Part 1
|
||||||
|
|
||||||
|
for (instruction instr_set : instructions) {
|
||||||
|
// get the jobs
|
||||||
|
std::vector<int> jobs = instr_set.jobs;
|
||||||
|
|
||||||
|
// Not failed by default
|
||||||
|
bool failed = false;
|
||||||
|
|
||||||
|
// Iterating over the jobs in order
|
||||||
|
int job_num = 0;
|
||||||
|
for (int job : jobs) {
|
||||||
|
if (job_num == 0) {
|
||||||
|
} else {
|
||||||
|
int prev = instr_set.jobs[job_num - 1];
|
||||||
|
for (rule rule : rules) {
|
||||||
|
if (rule.first == job && rule.second == prev) {
|
||||||
|
// The Instrucdtion is wrong
|
||||||
|
failed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
job_num++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Passed all rules
|
||||||
|
if (!failed) {
|
||||||
|
middles.push_back(instr_set.jobs[jobs.size() / 2]);
|
||||||
|
} else {
|
||||||
|
// Push back the wrong for second part
|
||||||
|
wrongs.push_back(instr_set);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Summing the middle values
|
||||||
|
int count = 0;
|
||||||
|
for (int mid : middles) {
|
||||||
|
count += mid;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Part 2
|
||||||
|
|
||||||
|
int count2 = 0;
|
||||||
|
|
||||||
|
// Sort the wrongs
|
||||||
|
for (instruction &wrong_set : wrongs) {
|
||||||
|
std::vector<int> &jobs = wrong_set.jobs;
|
||||||
|
std::sort(jobs.begin(), jobs.end(), [&](int a, int b) {
|
||||||
|
return std::count(highers[a].begin(), highers[a].end(), b) == 0;
|
||||||
|
});
|
||||||
|
count2 += jobs[jobs.size() / 2];
|
||||||
|
}
|
||||||
|
|
||||||
|
DBG(count2);
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
int first = count;
|
||||||
|
///////////////
|
||||||
|
int second = count2;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
281
src/solutions/06.cpp
Normal file
281
src/solutions/06.cpp
Normal file
@@ -0,0 +1,281 @@
|
|||||||
|
// Parse to vec<string>
|
||||||
|
// Find the start [sy, sx]
|
||||||
|
// R X C; [y, x] Start at 0
|
||||||
|
//
|
||||||
|
// < size() for checking if out of bounds
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <array>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
// Maybe used
|
||||||
|
// Dont care here when they are not used
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
// This needs to be changed to ../
|
||||||
|
// #include "helpers.h"
|
||||||
|
|
||||||
|
// Setting the constants
|
||||||
|
const std::string DAYNUMBER = "06";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// Some Macros
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Defining structures
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Defining classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// Defining types
|
||||||
|
using vint = std::vector<int>; // int array
|
||||||
|
using vstr = std::vector<std::string>; // int array
|
||||||
|
using pos = std::array<int, 2>; // int array
|
||||||
|
using str = std::string;
|
||||||
|
|
||||||
|
// Defining enums
|
||||||
|
enum orientation {
|
||||||
|
UP,
|
||||||
|
RIGHT,
|
||||||
|
DOWN,
|
||||||
|
LEFT,
|
||||||
|
};
|
||||||
|
|
||||||
|
void rotate(orientation &o) {
|
||||||
|
if (o == UP) {
|
||||||
|
o = RIGHT;
|
||||||
|
} else if (o == DOWN) {
|
||||||
|
o = LEFT;
|
||||||
|
} else if (o == RIGHT) {
|
||||||
|
o = DOWN;
|
||||||
|
} else {
|
||||||
|
o = UP;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void step(pos &p, orientation o) {
|
||||||
|
if (o == UP) {
|
||||||
|
p[0]--;
|
||||||
|
} else if (o == DOWN) {
|
||||||
|
p[0]++;
|
||||||
|
} else if (o == RIGHT) {
|
||||||
|
p[1]++;
|
||||||
|
} else {
|
||||||
|
p[1]--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool obstacle(pos &p, orientation o, vstr &g) {
|
||||||
|
if (o == UP) {
|
||||||
|
return g[p[0] - 1][p[1]] == '#';
|
||||||
|
} else if (o == DOWN) {
|
||||||
|
return g[p[0] + 1][p[1]] == '#';
|
||||||
|
} else if (o == RIGHT) {
|
||||||
|
return g[p[0]][p[1] + 1] == '#';
|
||||||
|
} else {
|
||||||
|
return g[p[0]][p[1] - 1] == '#';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool hittank(pos &p, orientation o, pos t) {
|
||||||
|
if (o == UP) {
|
||||||
|
return p[0] - 1 == t[0] && p[1] == t[1];
|
||||||
|
} else if (o == DOWN) {
|
||||||
|
return p[0] + 1 == t[0] && p[1] == t[1];
|
||||||
|
} else if (o == RIGHT) {
|
||||||
|
return p[0] == t[0] && p[1] + 1 == t[1];
|
||||||
|
} else {
|
||||||
|
return p[0] == t[0] && p[1] - 1 == t[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble //////////////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
int res1 = 0; // Start at 0
|
||||||
|
int res2 = 0;
|
||||||
|
|
||||||
|
// Container for rows
|
||||||
|
vstr rows;
|
||||||
|
|
||||||
|
std::set<pos> trace;
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Push back while wrapping in 'X'
|
||||||
|
rows.push_back('X' + line + 'X');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wrap the input
|
||||||
|
str deckel(rows[0].size(), 'X');
|
||||||
|
rows.insert(rows.begin(), deckel);
|
||||||
|
rows.push_back(deckel);
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
// Current position
|
||||||
|
pos cpos;
|
||||||
|
pos spos;
|
||||||
|
orientation o(UP);
|
||||||
|
|
||||||
|
// Find the start
|
||||||
|
int rowi = 0;
|
||||||
|
for (str row : rows) {
|
||||||
|
dbg(row);
|
||||||
|
int coli = 0;
|
||||||
|
for (char chr : row) {
|
||||||
|
if (chr == '^') {
|
||||||
|
cpos = {rowi, coli};
|
||||||
|
spos = cpos;
|
||||||
|
}
|
||||||
|
coli++;
|
||||||
|
}
|
||||||
|
rowi++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Part 1
|
||||||
|
|
||||||
|
while (rows[cpos[0]][cpos[1]] != 'X') {
|
||||||
|
// Insert the starting pos
|
||||||
|
|
||||||
|
// Check for obstacle
|
||||||
|
if (obstacle(cpos, o, rows)) {
|
||||||
|
rotate(o);
|
||||||
|
} else {
|
||||||
|
trace.insert(cpos);
|
||||||
|
step(cpos, o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
res1 = std::distance(trace.begin(), trace.end());
|
||||||
|
|
||||||
|
// Part 2: Calculate positions that cause the guard to get stuck in a loop
|
||||||
|
|
||||||
|
// Iterate over all positions in the trace to test possible obstacle
|
||||||
|
// placements
|
||||||
|
for (const pos &tank : trace) {
|
||||||
|
// Skip the starting position
|
||||||
|
if (tank == spos) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Simulate guard's patrol with the obstacle at `tank`
|
||||||
|
pos cpos2 = spos;
|
||||||
|
orientation o2 = UP;
|
||||||
|
std::set<pos> visited_positions;
|
||||||
|
|
||||||
|
bool loop_detected = false;
|
||||||
|
|
||||||
|
while (rows[cpos2[0]][cpos2[1]] != 'X') {
|
||||||
|
// Mark the current position as visited
|
||||||
|
|
||||||
|
// Check for obstacle or if guard hits the proposed tank
|
||||||
|
if (obstacle(cpos2, o2, rows) || hittank(cpos2, o2, tank)) {
|
||||||
|
rotate(o2); // Rotate if blocked
|
||||||
|
} else {
|
||||||
|
step(cpos2, o2); // Otherwise, move forward
|
||||||
|
if (cpos2 == spos) {
|
||||||
|
loop_detected = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if we've returned to a previously visited position
|
||||||
|
}
|
||||||
|
|
||||||
|
// If a loop is detected, count this tank position as valid
|
||||||
|
if (loop_detected) {
|
||||||
|
res2++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dbg(res2);
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
int first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
int second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
304
src/solutions/07.cpp
Normal file
304
src/solutions/07.cpp
Normal file
@@ -0,0 +1,304 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <ostream>
|
||||||
|
#include <sstream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
// Setting the constants
|
||||||
|
const std::string DAYNUMBER = "07";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// Some Macros
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Class to store big ints represented as strings
|
||||||
|
class BigInt {
|
||||||
|
private:
|
||||||
|
std::string value; // Store the number as a string
|
||||||
|
bool isNegative;
|
||||||
|
|
||||||
|
// Helper function to add two positive numbers as strings
|
||||||
|
static std::string addStrings(const std::string &num1,
|
||||||
|
const std::string &num2) {
|
||||||
|
std::string result;
|
||||||
|
int carry = 0, sum = 0;
|
||||||
|
int n1 = num1.size(), n2 = num2.size();
|
||||||
|
|
||||||
|
// Perform addition digit by digit
|
||||||
|
for (int i = 0; i < std::max(n1, n2) || carry; ++i) {
|
||||||
|
int digit1 = (i < n1) ? num1[n1 - i - 1] - '0' : 0;
|
||||||
|
int digit2 = (i < n2) ? num2[n2 - i - 1] - '0' : 0;
|
||||||
|
sum = digit1 + digit2 + carry;
|
||||||
|
result.push_back((sum % 10) + '0');
|
||||||
|
carry = sum / 10;
|
||||||
|
}
|
||||||
|
std::reverse(result.begin(), result.end());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to multiply two positive numbers as strings
|
||||||
|
static std::string multiplyStrings(const std::string &num1,
|
||||||
|
const std::string &num2) {
|
||||||
|
int n1 = num1.size(), n2 = num2.size();
|
||||||
|
std::vector<int> product(n1 + n2, 0);
|
||||||
|
|
||||||
|
// Perform multiplication digit by digit
|
||||||
|
for (int i = n1 - 1; i >= 0; --i) {
|
||||||
|
for (int j = n2 - 1; j >= 0; --j) {
|
||||||
|
int mul = (num1[i] - '0') * (num2[j] - '0');
|
||||||
|
int sum = product[i + j + 1] + mul;
|
||||||
|
product[i + j + 1] = sum % 10;
|
||||||
|
product[i + j] += sum / 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert the product vector to a string
|
||||||
|
std::string result;
|
||||||
|
for (int num : product) {
|
||||||
|
if (!result.empty() || num != 0) // Skip leading zeros
|
||||||
|
result.push_back(num + '0');
|
||||||
|
}
|
||||||
|
return result.empty() ? "0" : result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Constructor
|
||||||
|
BigInt(const std::string &str = "0") : value(str), isNegative(false) {
|
||||||
|
if (str[0] == '-') {
|
||||||
|
isNegative = true;
|
||||||
|
value = str.substr(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Addition
|
||||||
|
BigInt operator+(const BigInt &other) const {
|
||||||
|
return BigInt(addStrings(this->value, other.value));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Comparison operators
|
||||||
|
bool operator==(const BigInt &other) const {
|
||||||
|
return isNegative == other.isNegative && value == other.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Multiplication
|
||||||
|
BigInt operator*(const BigInt &other) const {
|
||||||
|
return BigInt(multiplyStrings(this->value, other.value));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to get the value
|
||||||
|
std::string get_value() { return value; }
|
||||||
|
|
||||||
|
// Print the value
|
||||||
|
friend std::ostream &operator<<(std::ostream &os, const BigInt &bigint) {
|
||||||
|
if (bigint.isNegative)
|
||||||
|
os << '-';
|
||||||
|
os << bigint.value;
|
||||||
|
return os;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Structure to strore and parse equations
|
||||||
|
struct equation {
|
||||||
|
BigInt res;
|
||||||
|
std::vector<BigInt> numbers;
|
||||||
|
|
||||||
|
// Constructor
|
||||||
|
equation(const std::string &str) {
|
||||||
|
// Set the seperator
|
||||||
|
auto separator_pos = str.find(':');
|
||||||
|
|
||||||
|
if (separator_pos == std::string::npos) {
|
||||||
|
throw std::invalid_argument("Invalid format: Missing ':' separator");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
// Parse the result
|
||||||
|
res = BigInt(str.substr(0, separator_pos));
|
||||||
|
|
||||||
|
// Parse the numbers
|
||||||
|
std::stringstream iss(str.substr(separator_pos + 1));
|
||||||
|
std::string number;
|
||||||
|
while (iss >> number)
|
||||||
|
numbers.push_back(BigInt(number));
|
||||||
|
|
||||||
|
} catch (const std::exception &e) {
|
||||||
|
throw std::invalid_argument("Invalid format: Non-integer values");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Gnererate a bitmap of combinatinons
|
||||||
|
std::vector<std::vector<int>> generateCombinations(int n, int m) {
|
||||||
|
std::vector<std::vector<int>> combinations;
|
||||||
|
int totalCombinations = 1;
|
||||||
|
|
||||||
|
// Calculate m^n combinations
|
||||||
|
for (int i = 0; i < n; ++i) {
|
||||||
|
totalCombinations *= m;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < totalCombinations; ++i) {
|
||||||
|
std::vector<int> combination;
|
||||||
|
int current = i;
|
||||||
|
|
||||||
|
// Generate a combination by extracting each digit in base m
|
||||||
|
for (int j = 0; j < n; ++j) {
|
||||||
|
combination.push_back(current % m);
|
||||||
|
current /= m;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Since we're generating from least to most significant digits, reverse the
|
||||||
|
// combination
|
||||||
|
std::reverse(combination.begin(), combination.end());
|
||||||
|
|
||||||
|
combinations.push_back(combination);
|
||||||
|
}
|
||||||
|
|
||||||
|
return combinations;
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble //////////////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
BigInt res1; // Start at 0
|
||||||
|
BigInt res2;
|
||||||
|
|
||||||
|
// Store the equations
|
||||||
|
std::vector<equation> equations;
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
equations.push_back(equation(line));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
// Part 2
|
||||||
|
|
||||||
|
// Iterate over equations
|
||||||
|
for (equation eq : equations) {
|
||||||
|
// This is what we need
|
||||||
|
BigInt goal = eq.res;
|
||||||
|
BigInt result;
|
||||||
|
|
||||||
|
std::vector<std::vector<int>> combinations =
|
||||||
|
generateCombinations(eq.numbers.size() - 1, 2);
|
||||||
|
|
||||||
|
// Iterate over possible arrangements of operators
|
||||||
|
for (std::vector<int> combination : combinations) {
|
||||||
|
// Get the result for this combination
|
||||||
|
int i = 0;
|
||||||
|
BigInt p = eq.numbers[0];
|
||||||
|
for (int op : combination) {
|
||||||
|
if (op) {
|
||||||
|
p = p + eq.numbers[i + 1];
|
||||||
|
} else {
|
||||||
|
p = p * eq.numbers[i + 1];
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check the result
|
||||||
|
if (p.get_value() == goal.get_value()) {
|
||||||
|
res1 = res1 + goal;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Part2
|
||||||
|
|
||||||
|
// Iterate over equations
|
||||||
|
for (equation eq : equations) {
|
||||||
|
// This is what we need
|
||||||
|
BigInt goal = eq.res;
|
||||||
|
BigInt result = BigInt("0");
|
||||||
|
|
||||||
|
std::vector<std::vector<int>> combinations =
|
||||||
|
generateCombinations(eq.numbers.size() - 1, 3);
|
||||||
|
|
||||||
|
// Iterate over possible arrangements of operators
|
||||||
|
for (std::vector<int> combination : combinations) {
|
||||||
|
// Get the result for this combination
|
||||||
|
int i = 0;
|
||||||
|
BigInt p = eq.numbers[0];
|
||||||
|
for (int op : combination) {
|
||||||
|
if (op == 0) {
|
||||||
|
p = p + eq.numbers[i + 1];
|
||||||
|
} else if (op == 1) {
|
||||||
|
p = p * eq.numbers[i + 1];
|
||||||
|
} else {
|
||||||
|
p = BigInt(p.get_value() + eq.numbers[i + 1].get_value());
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check the result
|
||||||
|
if (p == goal) {
|
||||||
|
res2 = res2 + goal;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
BigInt first = res1;
|
||||||
|
///////////////
|
||||||
|
BigInt second = res2;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
std::cout << "First: " << first << std::endl;
|
||||||
|
std::cout << "Second: " << second << std::endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
179
src/solutions/08.cpp
Normal file
179
src/solutions/08.cpp
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <array>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
// Maybe used
|
||||||
|
// Dont care here when they are not used
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
// This needs to be changed to ../
|
||||||
|
// #include "helpers.h"
|
||||||
|
|
||||||
|
// Setting the constants
|
||||||
|
const std::string DAYNUMBER = "08";
|
||||||
|
const bool DEBUG = 0;
|
||||||
|
|
||||||
|
// Some Macros
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Defining structures
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Defining classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// Defining types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using pos = std::array<int, 2>; // int array
|
||||||
|
//
|
||||||
|
|
||||||
|
bool checkbounds(pos p, int row_size, int column_size) {
|
||||||
|
return 0 <= p[0] && p[0] < row_size && 0 <= p[1] && p[1] < column_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble //////////////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
int res1 = 0; // Start at 0
|
||||||
|
int res2 = 0;
|
||||||
|
|
||||||
|
// Datastructs for this problem
|
||||||
|
std::map<char, std::vector<pos>> antennas;
|
||||||
|
|
||||||
|
int row_size = 0, column_size = 0, ci;
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Populate antennas
|
||||||
|
ci = 0;
|
||||||
|
for (char c : line) {
|
||||||
|
if (c != '.') {
|
||||||
|
antennas[c].push_back({row_size, ci});
|
||||||
|
}
|
||||||
|
ci++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the sizes of the map
|
||||||
|
if (!column_size)
|
||||||
|
column_size = line.length();
|
||||||
|
row_size++;
|
||||||
|
}
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
// Set of antinodes
|
||||||
|
std::set<std::array<int, 2>> antinodes;
|
||||||
|
std::set<std::array<int, 2>> add_antinodes;
|
||||||
|
|
||||||
|
// Iterate over the antenna lists
|
||||||
|
for (auto const &k : antennas) {
|
||||||
|
// Antenna list
|
||||||
|
std::vector<pos> p = k.second;
|
||||||
|
|
||||||
|
// Size of the antenna list
|
||||||
|
int s = p.size();
|
||||||
|
for (int i = 0; i < s; i++) {
|
||||||
|
for (int j = 0; j < s; j++) {
|
||||||
|
if (i != j) {
|
||||||
|
|
||||||
|
// Calculate the antinodes here
|
||||||
|
pos d = {p[j][0] - p[i][0], p[j][1] - p[i][1]};
|
||||||
|
pos di = {-d[0], -d[1]};
|
||||||
|
|
||||||
|
pos a1 = {p[j][0] + d[0], p[j][1] + d[1]};
|
||||||
|
pos a2 = {p[i][0] + di[0], p[i][1] + di[1]};
|
||||||
|
|
||||||
|
if (checkbounds(a1, row_size, column_size))
|
||||||
|
antinodes.insert(a1);
|
||||||
|
if (checkbounds(a2, row_size, column_size))
|
||||||
|
antinodes.insert(a2);
|
||||||
|
|
||||||
|
// Add the additional nodes here
|
||||||
|
|
||||||
|
for (int o : {-1, 1}) {
|
||||||
|
pos n;
|
||||||
|
while (n[0] < row_size && n[1] < column_size) {
|
||||||
|
if (o == 1) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
int first = antinodes.size() | 000;
|
||||||
|
///////////////
|
||||||
|
int second = antinodes.size() + add_antinodes.size() | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
161
src/solutions/09.cpp
Normal file
161
src/solutions/09.cpp
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
// Maybe used
|
||||||
|
// Dont care here when they are not used
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
// This needs to be changed to ../
|
||||||
|
// #include "helpers.h"
|
||||||
|
|
||||||
|
// Setting the constants
|
||||||
|
const std::string DAYNUMBER = "09";
|
||||||
|
const bool DEBUG = false;
|
||||||
|
|
||||||
|
// Some Macros
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Defining structures
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Defining classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// Defining types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble //////////////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long long res1 = 0; // Start at 0
|
||||||
|
int res2 = 0;
|
||||||
|
|
||||||
|
std::vector<int> disk;
|
||||||
|
|
||||||
|
int id = 0;
|
||||||
|
bool free = false;
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
for (char c : line) {
|
||||||
|
// Get the number
|
||||||
|
int n = (int)c - 48;
|
||||||
|
|
||||||
|
// Iterate over the input
|
||||||
|
if (free) {
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
// -1 represents the dot here
|
||||||
|
disk.push_back(-1);
|
||||||
|
}
|
||||||
|
// Increment id
|
||||||
|
} else {
|
||||||
|
// Push_back with id
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
disk.push_back(id);
|
||||||
|
}
|
||||||
|
id++;
|
||||||
|
}
|
||||||
|
// Change the input type
|
||||||
|
free = !free;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
bool found = 1;
|
||||||
|
while (found) {
|
||||||
|
// Get the last element
|
||||||
|
int n = disk[disk.size() - 1];
|
||||||
|
|
||||||
|
// Find the first free space
|
||||||
|
found = false;
|
||||||
|
for (int i = 0; i < disk.size(); i++) {
|
||||||
|
if (disk[i] == -1) {
|
||||||
|
// Sway the elemnents
|
||||||
|
disk[i] = n;
|
||||||
|
disk.pop_back();
|
||||||
|
|
||||||
|
// Break
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (long long i = 0; i < disk.size(); i++) {
|
||||||
|
res1 += i * disk[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
dbg(res1);
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
int second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
6
src/solutions/10.cpp
Normal file
6
src/solutions/10.cpp
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
std::cout << "HE";
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/11.cpp
Normal file
109
src/solutions/11.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/12.cpp
Normal file
109
src/solutions/12.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/13.cpp
Normal file
109
src/solutions/13.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/14.cpp
Normal file
109
src/solutions/14.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/15.cpp
Normal file
109
src/solutions/15.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/16.cpp
Normal file
109
src/solutions/16.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/17.cpp
Normal file
109
src/solutions/17.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/18.cpp
Normal file
109
src/solutions/18.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/19.cpp
Normal file
109
src/solutions/19.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/20.cpp
Normal file
109
src/solutions/20.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/21.cpp
Normal file
109
src/solutions/21.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/22.cpp
Normal file
109
src/solutions/22.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/23.cpp
Normal file
109
src/solutions/23.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/24.cpp
Normal file
109
src/solutions/24.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
109
src/solutions/25.cpp
Normal file
109
src/solutions/25.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Include the libs (essesntials)
|
||||||
|
#include <cstdio>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
///////////////// PREAMBLE /////////////////////////////
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
const std::string DAYNUMBER = "00";
|
||||||
|
const bool DEBUG = true;
|
||||||
|
|
||||||
|
// For efficient debugging
|
||||||
|
#define dbg(expr) \
|
||||||
|
(DEBUG ? (std::cerr << "[DBG] " << __FILE__ << ":" << __LINE__ << " (" \
|
||||||
|
<< #expr << ") = " << (expr) << "\n", \
|
||||||
|
(expr)) \
|
||||||
|
: (expr))
|
||||||
|
|
||||||
|
// Strucutres
|
||||||
|
struct Struktur {};
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
class Klasse;
|
||||||
|
|
||||||
|
// New Types
|
||||||
|
using inta = std::vector<int>; // int array
|
||||||
|
using str = std::string; // python like str
|
||||||
|
using stra = std::vector<str>; // str array
|
||||||
|
|
||||||
|
//////////////////////// Main //////////////////////////
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
///////////////////////////////
|
||||||
|
// Preamble for Main //////////
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
// Check for part
|
||||||
|
// This works by just providing a random argument to the execution
|
||||||
|
bool second_part;
|
||||||
|
if (argc > 1) { // Going to the part two when provided arguments
|
||||||
|
second_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string file;
|
||||||
|
if (DEBUG) {
|
||||||
|
file = "src/examples/" + DAYNUMBER + ".ex";
|
||||||
|
} else {
|
||||||
|
file = "src/inputs/" + DAYNUMBER + ".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ifstream inputFile(file);
|
||||||
|
// Return when not found
|
||||||
|
if (!inputFile) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/// Get the data /////////////////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Define the datastructures
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
long res1 = 0, res2 = 0; // Starting at 0
|
||||||
|
|
||||||
|
// Read input and populate lists
|
||||||
|
while (std::getline(inputFile, line)) {
|
||||||
|
// Parsing goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
// Closing the file (all the information is in cpp data structures now)
|
||||||
|
inputFile.close();
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// Evaluate the collected data /////////
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
/// Algorithms go here
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
/// Output results ///////////////////
|
||||||
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
// First result
|
||||||
|
long first = res1 | 000;
|
||||||
|
///////////////
|
||||||
|
long second = res2 | 000;
|
||||||
|
// Second result
|
||||||
|
|
||||||
|
// Print results
|
||||||
|
if (DEBUG == false) {
|
||||||
|
if (second_part == true) {
|
||||||
|
std::cout << second;
|
||||||
|
} else {
|
||||||
|
std::cout << first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user