diff --git a/19/input.txt b/19/input.txt new file mode 100644 index 0000000..dd927cd --- /dev/null +++ b/19/input.txt @@ -0,0 +1,402 @@ +wubu, brr, uru, uw, gug, rgrur, ub, rrwg, wrw, uugg, wwb, gwrg, rgb, bbrbgw, guwb, rub, wgww, wgu, bwbu, bgubwb, gbuu, buwr, uub, wubgr, uwugbwb, gwwbbwrr, rbgbgr, gbuuww, bur, gubgbr, wgug, rrb, wbrugwrb, brb, gbu, rrwrbgrr, uburgr, bbrgrwg, rbbb, gbr, grgug, rr, wrbw, uugbgb, bbg, br, rubbbu, bbggubb, brwwr, rgwbrr, ubr, wgugg, grrburw, r, uuwrwug, gguw, ww, bbrb, bguw, uurr, bru, ru, bwubwrb, wur, wrbgru, bbug, gbbrw, rwbu, wrwrr, bgu, wrgbur, ubugg, wb, rguw, ubbrgbw, buwurgb, wrwruuu, rgwwu, wwrbw, uwwwubb, wg, wrgwrwur, gwg, wbw, wgrg, ruurruu, uwu, bwwbuuug, rbr, urgbg, gugu, gwgwbgur, gbg, gbwu, uur, ggwbb, grub, gwrrw, uuu, rwr, urwbu, uwwbrwgg, gbb, guwg, urguu, urwgug, grwuwu, rwb, rbwwbg, grbuwu, bwbbbb, rbgr, rwrrur, gur, rwruwg, uuwrw, wbb, uug, rrbr, wrbbb, ggwgg, wrrur, bub, ug, guubgw, gwubb, wub, rruw, uruwwww, rrugwb, urbu, wbbu, bggr, urgr, brww, bwg, rggwgg, urr, bbbgwbbw, bwrgw, ugb, gwr, uwugwgu, bbgrubb, wbr, brg, ggg, ububww, grw, grr, wrb, gbuubg, gbuuu, b, ubgw, gurrurg, urwwr, bggug, rrg, guwbwrw, urw, bwrurg, rubww, bb, bubur, bgrwu, bwb, uwr, bwgw, g, bwrbwgbb, bgwguw, guugg, wuggrru, ugbg, wuwgrrw, wrbrg, gb, u, gwgg, gbwrgbw, rgw, gwuwwg, ubgu, rgu, ggb, brurgw, rbrbgwr, guuu, bwwu, bug, bbrggg, bwuw, wbuwwbg, uburbgu, gub, www, rwu, wrgbwg, bwggrruw, ubgww, gbw, wwbrw, wrg, brw, brbg, wwuggg, uuubgr, bgru, bbb, wgr, wurrwubr, rur, rgugwbru, bbu, wbuw, rubuubgr, urug, uubr, bw, buu, rbw, ggwb, rrr, gwrbu, gu, gw, rwub, wrwug, uubg, rrbgr, bbbwr, wurggw, wgg, urbg, rrwuu, bwgb, ruw, gwrw, ggub, gwwrrb, bwgbw, rrw, gwb, rwbbb, rwwu, gggg, gbgugggw, brrgww, rgbbw, wgrguw, wrr, uwuw, bwbbgbgr, grb, buurbbrb, wgb, ugburb, ururw, ggrgbgw, rgr, gg, wggwb, bwrgu, wgw, wru, brwbu, wbrrg, gugr, uggw, bg, gubrguu, ubu, bww, rrbwrrwb, bgrbwww, bbw, bwrwrr, uuuug, bwrwb, bwggr, rggbw, bbgg, rw, ggbb, ggugwu, ggu, ruuuggu, ggw, bgwwb, rrggww, gurwgrg, rrruu, ubg, rrgw, wggu, ruu, bgwru, wrrgw, buww, ubb, buwgu, bbgr, uggb, rbb, bubg, grg, bwr, bwbwwb, ugubgb, rrwub, rgbr, wbbug, ruwr, ubgrgg, bbrgw, rwgwb, buwrw, bbwrw, rwgr, wwrwgr, urgrrw, brrbbug, bwu, wuw, rgg, gww, bbrwrb, wruur, bbubu, bbbb, bwbrb, guu, wuggw, wwuw, wbu, rrrg, bgr, wwbbgru, rgubuugu, rgrr, bbuurr, ruur, brgwr, bwgwb, rgrww, ugw, wrwr, guuw, rrgr, wbgb, wug, wbg, rggb, uww, rug, wrub, rguwb, wbrgr, brbwbgu, wruw, rb, gwuug, ubru, gbbbrbg, rbg, ubgb, burg, bbwbrwbu, uuww, wgbg, wrgrrr, gru, wr, rgwr, rww, uruwbrru, gwgu, uwb, wbwrgr, uu, ur, gurrrg, ugrguu, gwub, gwgw, bbr, ugg, wwbg, wwr, rwubbw, urg, gubr, uwbwr, buw, bgwgubu, wwu, wurgbw, wbrwb, grwub, urb, rubgu, rwwrrrr, rg, brbb, bgb, uwg, ugwbbbg, grrwwbb, gwrrggr, rubb, wbrguw, uwurbg, grrgb, ubw, wuwuw, rbbuwg, rwg, urbuub, gwu, bgg, wbug, wgwbb, uggwugg, bu, ugu, rguu, wgrbgw, brrggw, grrg, gbww, wwubu, gbubrb, bgw, uurgw, wwbu, wwg, ggbr, gbbrb, buurr, ugr, rrbrggu, rru, ggur, gbggwub, wrrbbgw, ruuguw + +wguurwubgburbugwwuwrwwggrggubwrbwurrrrgbrbuggugurg +brbwwwbrbrwwwggwrbwurwggrrrgugbbruuuwrggugg +ubwwbbrburwugwrbuuugwwgrbrggwugbbwbubrwwrgbbw +wuurwurwgguurrbubrwurbbwuwubguuuwburwwuubrbbwwgr +bwwwgbuwugbuurwwwrwrwurugwbuguwrruuwbrgbgbuwwu +gbrrubwwwbwrguwwbrwwbbuurgwguurburuburgrwbgbwrruurwbg +wuuuwgrrwuubuuguwugurbggubwruuubggrruwuwbwgggr +wruwgwuugugwuguuburwrurrwugbbrgbgbbugwggbuwuwbrurugrw +brrrbwbuwbrgwgwuwgruuwguwubwuwwgurbubwurgwuuguwbbbrgrrgu +rgrbggrgrwbubuwgubbgbguugugbguuurwbuwwggwwugurg +gbuwrurgbgbrrrrwgrbruuruuwgrwbgbbrgwwgruuurwbbr +wuuwrbubwurrrrwbgggwurguurwwuuwrrbugrwbbgwurbuurwrrurrrwgub +guubbrbrrgbuwguwwrubgbbwgruuugwugggwrurwgubr +rbbubbbgbubbbbgggrgwbwrrgbbburwggrbuugrwbgbugrwgbgb +gbgwurubbwruruurrggubgwguwggwwgwwbwuwruwubwwgbbug +wbruggruuuubgbgrggwbgbgbgugggwbbgrbuurgwwbgruwwwwubu +uubrrwgrbrbgwbwuuwgugwbgwwwwggrgggbwgguubububgbr +wuubbbbuuurrbwrugburrubwrrrwgrwrruwwgguwbgb +uwrgrwwwwgbuwgbwbwwwwwbrugwgbruwwggguggubrubg +buurrgrugwwbwurbuubgrrbrugurrrwbggrrgwbrurrw +grugrburgugwbrurburguwggrgguwgrbwbuguubrubbwbwgguur +gburgbrgwugrwurwbugwgwgbrbrrrbuugrwgbgbbbrbwwgbb +wuuwrgwbwurugrwuwurrbuwbburwgbwgrbgrwuugrrwbgguubgrguuu +wgrgbuggubgburgggwubwbbgrgwruurrwwwwbrwgguru +wuuwwguubgrubuggwrbuggwrurgrurbwbbrwwbwruuwbwwg +gubgrrgggbwgrwrggrbbrwwwrrrguwuwbgurrurrbrurwuw +wuuwgruwwbwggwubuwrurbwurrbuurwgwrgggwggrwuggrbbwurrbrwwwgu +wuuurugrwgbrwrwgwuwwuwuwgbggwuwbwwgwwggubbuwgbrgg +bgrububrwrggubuwrwgbrrwuwbwuruggwgwgrrugrgrwrbwwgrgbuburbg +rurbugggrbwbugrrruwrbbuwrrguuwwburuuwuwbrb +bwuuwbbgwwrugbuwrwrwbwrrbrugwwwwuuuuuuurubwgururwwbggbwrgu +ubwgggbwrrbbrgbwurrwubrgbwuuuuuuwrrbbrwrbugbrgwr +wrrbbgrwuwgrrrbbrgrgbwruuwuggrbrugrrgrggrurrwbbwbbbwbgb +uwgbbugruwuurggbgubrruwrgwgurrrrgubwbbrrrbbwwuubrbbrbb +rbgubgrrwrrugrwrbwruwgwbrrgugbbwugbuwrwwugrggrrugw +bbwurgwggwbbgbubwgwubugrwuruguwbrbgbwurugrbgbggurgbuurrgwr +ubgruwrwubbbgbbuggwbgrrububrgwgrbwurwggbwwr +brruwbruwuwbwbrwgbguwurwrwrgwurbwgwbwwgubggru +ggggururgwgwwrgugbwuwguwgbugwggwrrbbwbuugggubuwrgg +bgwwrguururwwrwbugbbrwbrugrbwwbgbbbgwuggwbwurugr +gbrruugwwwrgugruuuggggwrbubbbrgbgbrggbwrbwb +ugwuubgrurwrrgrggrwgburbgbugrruguggbrgwbgrwbugruurgwu +bbbwgwwrgwggrugbruurbuwgwwrbuwbwbrwwgruwwrbuuu +rrbrbgrurugrbgbuwggwwggggugrgrbubrggwubbwrgr +gubgwwgwubgwwuubwbwrrwruwuuwgrguuuwbbbruggugrbbwwwrgwur +wuuwurbwbbugwrwbburrwbgrrbwbwwrwuugbruwwrrgbrgubrrwbwurwwb +wuubgwgwbrwugubgbbrrggugrgggwrrwrgbrubrrwrwururwbrrwrurrbwwr +wuuubguwrbbrbrugrgrwgbwgurbbgrwwwwbwbrbrrurruubbuuguwbrgb +uwwuwuguwugbwwbgubgruuburbrbrrbrrurwgbrurbrrg +wuuugwbwwruuubbbbwbuurgbwbugrurbgwugwrbwwggugrb +wguwrrubbbgbgrbrubrgurbwburrugbwwwbuggubbbw +gggwurguuwbwbgrgguwgwgurgggguwruwrgbrgrubbwgbbbruu +wuubrbbbuwrgrrgrggbbubuwgrrwgwguggugbgurbubgb +uuuwruuruwggrrbuuguurruwrgbgbrggruwwubbwbbuwruwubwgwguruw +wuuurwgburrggwrrruuwgubrwgruuuuuwrrggbuuuubuwwrwbbrrgrubgbb +ruuwwuuwbwbubgbwbwgwguuwbubbrguwguwwuwubwr +gbrwbwgwgurwbwugrrbuwwbgbbbwuwwururbbubbwwu +wuuwgwwbbrguwwrgwrrrwggwgubwrbgwgrrwgburruuwwbwububwwrg +rgbwwbgwwbbruuurguwwwbuwwubggwwguwuwrbgguu +wbbwwrrguwrbrbgwbwbrgbwuuwwbrwggggwgrwuwwrrwbbubbgbrb +wuurgrruwgwgwrwbugrrrggwbrgggrrbuurwubbgb +wuugbbrbrurubgwwugbrubburgwuburrruwgbwbbgguwwwgg +bwrugbggurrrbwrbwgubuwrgurgrgrgbubbgbwbrrwbrbgu +rrwbgbbrbbguwwwgbggrwuwbgurgurwuwbgrguwgbuuugwwrwwgr +wuubwbrugwrbgwbwgguubggbuuggwgubrgrurbbgu +wuuggugrrgugugwwwgrrbwbwrwgubbwbbbrrbbwb +bbbwwbururbuwbwwrwggrbbwwgruwwguwwrrrguubgbrr +gruugwbrwgubuwubugrurbwwugrgwbwrwgbwrwgruwr +wuububbwubrbuubbwrbrbrrrrbbbwbugbwwwwgwbbugwrgwbugbrurguugr +wuuuwurrgububrgrubguggwwwrrbuwbggwrwwrur +ugubrwwrbwruwrbwgbgrgbubgurgrggwrbruuwrgurggwurgubgguww +gurrgggwwurugggurbgwwbrwugggrgwrugbguggrwbugubuwwrug +wuububurgbrurwbbwgwbrrwuburbgrbbbwuuggwrwu +rugugwwrubbbgbuuburuuwrrwguwbugbwbbbgwbbww +wuurggrurwbwrubuwuubbbrrbggbbbrrbubrgwbugwgwurbb +wuuwgbuwwuuuurbuugbgugbugrubrrwugrguruwbrruwbbwgwrrububbgruw +uwggwuubbgburggruburuuwbrgrrguwwbbwgwrggwuurguugrwrb +wuubwbbgrruuburbgrrwwwrbwrwwbgrrbbgrwubrubgbwrurbbrgr +rwbburuugbrrwwgrggbrgugrwbrbwrggwwgburrgbwgwr +wuuwwwwbbbrwrbggrgwwurgrgbwuuwrgugwrbbbrruwbwuubg +bwuurgbwrgrurbubuurugwrbbugwgrwwwwuwgbbgugrbwrb +rgrgbbwwrgwbrbwubruwwbwbwruwwwbugbuugwurrrrwbgwuuwrbuu +wuubuuwgubrbrwwwurwubwububwbbbuuruwgurwwg +ugwbwubgurbrrgggrgrruwgwurwguwuwbubgrrbwwgwwbuu +wuugguwguwurruuwwrwrgubuugurwbwrrguwgrbuugrgbuuuubububu +bbrugugrwrwruuuubgbrbrggbwrrwgwwrrwgwbrbur +wuuuuugbgbbuurugwwbrwbrwguuguuugrrbgggbguuuurwrrurggbbuggrr +gbrwuwruuggwwuwwwwwbbwrbgbguugbbrwgugurrwwrwwbrbrrwrrru +bbgrubgggrgrbgbwwwruugurrubgrrrbbrrwbwugbgrbgbrw +wuurruururbwgggbruwgugruruwrggwgbwrrwurwgrgu +wuuwgwgguwwwurwrgrbgubwrwuubbgwububbruwwwugbu +gwrwbbrbwrrgubrbruugrwgbruwbubwbrgbwwurwrwbbuwbug +wuuwuuguwrwwbwuwrggbwuugbwggrruwwwrgwwwugu +ugwgbburburgbrugubrrwubgggrburwwgrwbgrurrbgb +wuurwwguwuwrguwgbggbbwwubugrrbruurbuwrgrubguwubgbubg +wuuwrrubwugrgggwwwrrrbwgggwuwbgrwwwwwgggrrrgrbguwwbrbwgubgrb +wuuuurrbwbrbruubgwgrbgwguwubbrubgwguuuburggrggbbbw +wggbgbuugwrbbuwuwwbuubguuurbrruwguwgbrbbbguggggbuuugwg +wuurwwrrgrugwrrurbrbburbguugrrwwurrwgbrbug +wuurbgggubguggwrrrruugwgbbrbbgrguwbuuruguwuwrbubugwgbrwgurb +wwbgurwrgwgrrbwrwubgbuurwbbrguruuurbggrrbubrugrrb +wuurwuwggwggguggggrbwbbgugugguwwguwbuwwgrurbuburbbr +gwruwguwrgbgubgbuuwwrbwgrgrbwuwuguggwwrbgbbwugwwwbrub +rrwbbwwrwbgrggrwrwwurbwwrbbgwwbuuwrurubbgubwwgrwru +urrbrgrbuugruggbwwwruggwugrwubbwrbggrrururwurrgu +uubrwgrgbwbuwugbgbrggbgubwgbguwgwbggbuwwgbwruugbruwugugw +uruurrwrgrrrrubrwrwbrbgugwrrgrwruuruurbguwugbguuwr +uubrgwbgrggrrbuuggugwbwuguwgbuwruuuugbrbrurrwrwuwr +bgrbbwuwuuwbuwgwgugbrwuuwuwwbgwruurwurwbbbbbbbgbrrwwrrbw +gwwwuuwrwuubbuuuwbrbggwwwrubgbuwbggwurwwgbrwuwwu +bwwwubbbwuguuwgwuuruggggugbgbwwwgbbrbwwgwbbgw +gubwgbwbubbgbgwwruwrbbwurburrbrwrugrugbrububgrwruwugwrbrb +ugugbbuurgbbuwwruwrrbwbggwwbuubwgwuggrbugrg +wggbguggwruuuggrgrurubbbrubwrbgubrrwrugrgbwbggwwuuwb +wuugubrbruruubrwrbugrgrgrurbwugbwuuwrgubwruubwwubrbbruug +bgrwrwgrgwwuurrgururgubuuwrbwrbgurgrbbgbbwugbbgrbgubrg +wuuwwbrgurbgwgbugwgguwbugrbwrbbgrwwbwuuwbgwbwbgg +wubwuugbgwbuugwbubrrwbrgggrwuwbwwruwbugbggrbrrb +bgrruurwwwbgguubugwbgrgbbwwugwbgbuggbbwrwb +brbuwwwuuurwgbbwwbwgurwwgwuwrbbbrgubwububwbuwu +wuurwrruggbuuuurrwwubwgugbbuggruburubrwwbrgbgbbg +uubwuuuwrgwurgbuubgrwuguugwgbbwgurwuuwrgguguu +brgbrrgbgwugbugguuggbguubbubwggurbburuwruubwruubguwgbruu +wuurbbbgggrrbwrgwwbggwbwbugbgugggwbbbwgwwugbbrwburguwwg +ggwbubgugwrgururburwwrrwgwugwwuwwrbbguubrgbbrurg +wuuwbwgggbrrugwrwuwrgwrurwwgrggugrrgrwrgbwwuwruurrwrgwu +ggrrwrgrbuuwgbrrbwbrrubuubgrgugggwrgwgwrruwuubbwurgwuwwrwr +buururgrugbrubrgubgggrgwgwgguuruguruggugubwb +wuuwbwwuwbrwggrgwwgbwuuuurbwgwwbbwrrrubbuwurwuguwgr +wrgrbggubgrrugbwgrwgbrrgwbbruwrwuwrggwgbwrwrggbbwrburg +wuubbggbugubwbrbrbugruwgrbrrwbggurgbrruurwbguugr +wuubuuwbugbugbbrgwgwggbbruwgrrrwrwuwwburwggrrgubbggrgbu +grwrwwurwrggwgwrbburwrugbbrrrgbrwrgrrwbbrbru +wuurruubwugbrrgubbwugrbggrgguwbbrwbwguubwugbgbwbwb +wuuurbbrgwggugbgbwwwbwugwbububgrugwwbguggwgruugbru +wuuwwbwwgrbwgrgrguwuguwbbuugugbrgrbubuugbrugrugwbgugbgrgg +rbwrbbgugrbwwruggubwuubbrgurggbwbwrbgwrggrurubbbwu +bgruwuguugggbggwbgbuwruwwwrbgubrgwrbwgwububggrbbwbbbbbgbw +rrbuwurrgbwbbubbrubbubbgrwrgbrrbwruwuuwwrgwrgwgbgu +ugrwuwrugrwwbwruwubgrbgrbwrgrrguubgbrwrwrgbgubgbuugrugwwbr +wuuwuuuuuwrbrbugggrwbwurbwbbuurrrwgbrwrbuub +wrwgrgwubgrgwwggrgwbbbwbrubururbwrbuwbwurrwuwbwggw +brbrbbgrgbgrwrbgrugrgwgguwubggrbgburbburub +ugubuuburuwwwgwbwwbwrbrrbbgwbgrwwuuugbburwubggrb +wgwbggwuwubgubbrggrbgggguruubrurwwbgugwggrw +rrgwrbrbwbggggrguuggwguwrrgwugrguuwuwgugwwbgrrgbwrgug +wuurugbuuwwbbuwwggrgruuurgwgrggbwubrwwrrwgrgu +rgbugrgbuburrbbbggbbwuuubruwwgrwuubgbwruwbbbgrrugguwuruur +gwurbugwrgrugwurbgrbbwwwrubuwuruwubwgggrubgbrbuggrguru +wuurgwububrgubbbbgugbwrwguuwuwugwuwrugwugrg +grgwwwgwrwwbwgbubugwgbugburuugwwggbugguuwrubu +wuurwbrbubrrwgwgwrwwgwguuuwubwuwwgrbguwbgggbgwrwrr +wuurggbgbbwbubrubwububwgruubbbburbrrbrbguwruurrguurwrg +wgugurbububuubrruugbwbgrbwwwuwwgbrgubburwbrwwugbg +ubuurgrggbbguwwgbgwbbrguwuuwuwuwbrwgruugubrwwbww +wuuuurwurrbbbuuwgwwrburubwuwugbrubgbwbwugrrrugrrbwwg +wuuggbguububurrgbrurwubwwgbguubburguuugwrgubgwgubbrgr +rguwurwwrugbuwbrrgwwbbwrrbrrgrwwrbwguubruu +rwrugwubuwbgwbrugwrggbgugbbwgbuggrgbgrbuwwuuggbwrub +wuuuwwurbwgwggbwbggrubrwgbbrgggbubgurrgbgubggbb +ubuggwgbbbgbguuwwbbwggrrrguggggggubbrurbbuggubb +rbwbuuwgbrrbruubwwgbgrbwrrgurwwubggbbgbwuubgwbgrrgb +gruugrgggbgrwgrurbrugrwguuuwwbgrwugbrbgruuwbbrwwur +uguwgbburuubrbrwurrguwbuuggburbwrgbwrurrbwwrggwrugbrbuwrb +ugrwuurbbrrgwgubwbrbguwbbbbwbrrwbbuggbrrrg +bwrgrbguwggurgrurrbwgbbbubuuwrrgwbuwwrrwgugrwggbrgr +rgggwrrrrbwgrrwururwurrbbbwgbgruubrbubgruwgbwrgbrrwr +wwbwggwbbgbgrgwuugwuugwburuggrrrwrrwbggbbbbuubg +uggwwrubugwwrbrggrurgrwrurwwgurrrbrguguwuggruwbrbbug +ugurugbbwrgrwrwuruurwgbbrwuwwrbgwbbbrrruuww +urrrurrugwwwwbrguwbrrgugrbbugbbrubwbgwugwbwbwgrbgbgwbrbbw +wgrugrrugbbwgrwwwbrwugwbggrwrbrbbwrbgururwrrwuuuggug +bgrrugwbgwbwwgggrrgrrugwbwruurwrburugbgrbbb +wuurbwbwwrrgurburuguwbwbwbgrruwbbwrwuwwrbgwbrgugbgubbgwru +rurgrrguwugbubrgurwbbrwugbgwgbubbgrbwrrrrbruuubuwwuwrrbb +buubwggbrgbbugwurggrwbbbgbbuwbrrgwwbbwuuwbbrwwgrwgggu +wuuwugrbgwwgggugbrwrwwuguwbwrrwgggugwbbbruwurw +wubwuuuggrgrugwrwuuwgbruugbwrgbggrbrubuubgrwguwrggbgw +wrbgwwwubbgrgbbbbgbbuuwwubwwwbbrwuuwbrgbbrwubb +wuubuuuwubrggggwgbwrbbrguruguguwugbwruwurgguubuwwbrw +wuubguwbgrbuurbrurwububruwwwgrwbgrgrwrwwbggubbrugbbwguugrg +rgrrbuuwwgrwbgurwbbugrbgguuurrbbuurggurguwbgbgggwr +wuuwgwbwwbgwgrwgbgbgbwuwurgwuubruwwrrbguruggwurggrgb +wggwrbruwwgbrwrrrbgbrrbwwugbbgbbwrrwgbwwbugugwgwuugw +wuuuuuurubggrubgubrbburrgwrbruggbgrrwgwgugugbwwuu +wbuwuguwbburugurbwggguwruuubguwrguwbwrrggrrbgrrwwgwugwr +bwwubguubrubgggwgwgwbbwrwurbrbgwbbrgwwrwwggwuw +bbbrrrrguburrgubwwrubwbwwgurbuugrrrwuruwuwugrbbuu +ububgwubgurwuubbgrgwbugrbgbwubbbwwgwbgrbrwrb +gbrggruuuwrurwbwrbbggwrgrruwgwubbgurwbbrwrgrgubwwbgruwur +bwgrbbwwgbgbggugrrrrwbrggwwururguuguurrgugww +wuubgbwurubrwrwburgbrwuwbbwgwurgbgwurgruwgbuurbwrb +rwbgbwbrggbggbwgrrwrrguwuubgrbgwbrwwbwbugwrg +wuuggrurrbggbububbuuugrgurggwubwgbburbgrgwbrbr +wuubbbwbrwburwgrugrguuuwrrguburwwrgrwwwgrbrrwbwu +wuuwwbwrggrrbugrwurrwubbguwbrwbbwbbwrugbguuubwubrrbrb +bgurwuwuwwuwrggwwbbbbwrwrgguwggruuubbruugbuwrbbwwg +wuugrruwuugrwbbrruwwguruwgggwgwbgurgwurgwbwwwrrwuruu +wuububruuugwrrbbwwbgbgwguurbwwbuwbrwguugrbguwrbggwbrububgrrg +wggrruugrurgwrbgrwbwuubbuuwrbrrrwrbgugwwbrwrbb +rubbrugurbubwbbgbbbuuuurrbgbwrbuggbgwwugguurrugg +rbbwgwuuwrgruwwbrwbburwrwrwrbbrrgwbgbrwbrrrwbbwgu +bwgrruubwgbbburbwbgwwrwwwggggrrwbbburbwggrgwwwugwbr +wuugrgbrgggurwubgurgbwbuubgbubuwwbbwubbwbwrgrwgggrb +wuuuwuwwgurrrbwbwwuwubrwgruwrbrgubwubbgwwb +wuubuwrugrrbuwwwbwwggrwbrwubgugrwbrgwbubrwbbwgbgwubbgwurr +wuuwgggbwrbgurbwubwrwbrurugbuwguuuwrruuguwu +urruwurgwwwbrbgrgubwuwrgggrbgbrububrugruubuwrrrwbgubb +grgrwbbbrgbrgbgrbbuwubwugrwgggwbubgwrwwwugggubgbwgbgbrggrw +rruwgrgrwggwrbgbrurrrrurwuguurwuwwubwguuwruwbrggwrrr +wuugruwruugrrbwrgwbbgubgugbwgububgwwrgwbbrurbwbbgbgrgwuugwr +bubwuwwrwwgwrruuburubrurgrgubrrrbwgrgbgrbgbgrrbwrrbw +brwgwrugwgrugubbwugbggbgwuuurubbrwwwwugurgrwbrggu +wuggbwrgbggggubrwrbrggrggggggwgguugubugrwguggru +ruubwbgwbuuwwgubgwgwuurbwrgbbwrbwrwwgrrbwrbgb +urgububwrrrubbbuwwuwbrwrruuggrbuguggwgurrgwgwggbu +wuurgrurrgrwrwurbbugubuwbuurgbrwruurbgbwgbuwrbwrwurwgurg +wgrrgwgurgubrrubrurbbgbbggubgwwbuurguguurbugbwuuggggugbbu +bgbuuggrwggrubguwugburgrbgugbbwwugbubbbrgwgruwruru +wugrrgwubwugggwrgggwrrrugububrrbwrrwbwguwrwgrugbrrw +bwbbwruuruguurubwwuwubbbbwbwrggbuuggrurwwguwwuurwubrwwwb +wuuwuguuruuugugubgwggwubgbrbuwwbrwgguuubrrr +wuugrbwrgwurrrbwgruwbrurwrbrggbwbuuwrwwuwrwbugbrr +wuuubrrwrwwubbgwuwwuwrbwggurwgguwrbrrbrbrubuuuwrburgguwu +rbbbuubrrrrurwururrgbgwgwgbrgbgbbrwurrggbgrggbrrwwbruggg +wuuggrbururwbrbbgrgbbbbwbrrrwwrwubuwbrbbwbrug +uuugubuwgwwgbrrubwuubuguguurwuwwuggrgbgrbwgubwwub +wwrbrggbgubwbgwuububruwruwbwubbgguwuggrrgbu +wuurbwuubuurbgwuuwgruuwuggurgwurbgbwuwrwugrgubbgbwrbuwuuw +brugwgwbbgwbwubrwubguwrbbgbwuwbwwbwwwwbgrrbgwgbrbuggwuggb +wwbuwgruuuggbbbbrwrrwbbrrggburbbbwuwrwgwuwubuwgu +uwburwgrugbguurwrubguwwugrbwrwgwuburgwbbgg +gwgrgrgwbgwwbgbrbburgwbrwburwugwgbwrwwwuwgrbw +wgggbuuugguwuwuguubbbgurwugwrwrururrrwrbuggrrbrwwbb +gwuburburrrrbwgrgwrurgwbuuguugwbuubrrbwrruuugruguubruugurb +gwwwbwrwrrruggbbwbwurwwrbgbbuwrwbrrgruubbubuu +ugwburrbruuuwububbbwwbburggururubwuggubgbbwr +wburwwruwbrbugrggwurrgruurrrubbbbrubggrrgurwrguwbguuw +wuubuuwgrgwwggrgugbgrwrwbuuwurbggwbggbbwgwgb +wrgbwrgwbrbgrwuuguwubbuwbrwubwwgbbgbbwwggrrrwrwbg +ubwwwbwbubwgubrubwbrurgrubgurbgwubwgggwguwg +wuuuuurrrrgbugrgrbrrgrbgubugwubbrgwwuuuuurwbrgrgu +wrwwubwwrwwbguubggrbgwuwgwgbugbwrubrubgrrgurbwbuwrbgubwrgu +ubuwubuugwrwbwggbbwbbrwuwugrwuubguububbugwwurbruurrgrrr +gubgruubuuwgrggrbrbwggbbwwuugrugbgggbguuwuw +rwbwwbwrrrbububwgrrbbbbrwrrgruwbubwugwwbgub +wbgurwgbuwbrgrrbuwggbgbrbugbbwbrwbubbgbburrubg +wuurbrwbwuubwuubwgwuguwwrggrrwgururugwrbubwrwwwrwrwbubb +wuugugbuurbbrbrrwwburrurugwggrgrubbubgbrgwwbbwwwrgrg +wuugwrbguwbwbbbgwbugrrwgbgbwrrgrgrwbbgubbubugguur +wrbwgwgbubbwwbgrgwuwggwguurwgrbuuwrrwrrgwbugubububwgw +wuuruuuruurgbbruruwgrwbrggrwwwwrrrggbrgbrugbgbuwrwbrggbgg +wgrbrrggwrugrgrgrubwgurgwwubwrrbuggwgbwrbwgu +ugubbguwgbwuuwugurgggwgbgubwbrwgugbwrrrwbugwrrwrbgrrbgurw +wuuuurwuurwuuggrrrrbgwugugubgrrwrbgrrurgbg +ggugrwrruwwugbgrbgbrrubbuurbbrbguggrgwwbgrgrburwuwwrg +bbburbbgwbwbrbgwbwuuruwubuugggrwggwbbbbugbgwrugrwubw +wuugrbbrgbwuruuwugbwgbruburwbrbwgbburbrbwubgburbrr +rbgbgggubwuwwrbgwuuruguguururuuggurbbrwgbguwwgwburgburbgu +rbggrbgbwuuwuubugugwrbugrwugwgwbgggurwurbu +gwugbgbrurubrburwuuurgbwrwgruubrbrbrrwwbbgwuwbru +brruwrggbbuuuuwbwwrbgruwgwbrurugrurwbbuugugubgb +bgruggggrwurggubwbbrurbrruurbrwwugrwbgbgwrwg +uwrurwubwgrbrruubbrbrwggrrrgbrrwwwbruggbubwbwuubwggu +wuubwwwubgrgggugubggwgbwgrgbrwbwbubbgwwb +urgrwrbgrbrwwugwurwwguwbbrbbwbbrbrbwggbwrurgruwwbbrubbgg +wuubrrrubuwgbbubrbuwrbubwuurwrgruuggwwwwuugrgugubbuwr +guwrwbwrgubuugugwbgbwuguwbgbgwuugrbbwgbrbrguwrgb +wuubbgbbrgwgubrgrgwrwwuggwbwbuuuwwuubrbwwbbbbbbrgbur +wuuurwwubrbrrwgbrbwrwubrguwgrgurbbuuuggugu +wuugbbrguuuubbuwgrbwbbwbrrrggrbbrwgurgbuwgguwugbburrgg +gururwrrwrbgbubgbrurbrrbwbguwuwrgrbbubbgwgwggwwrugwgrugb +ruwggbugwbrwrwuwrrubrbwgrwwwwbgrbgbwgwuwggbrgugubrgrgu +wuurugwuwruugruruurrgwrbrwwrwbwggrwbbrrwrbgwgbgrrbrrurgbbgb +wuuggggruuugbwuuwbwwubuwgwwwwggrbbuwgwrwwbrbbu +bgrrbbuurwbuuruuuwgbwururrbgwbwuwbbwgbugwgwr +wgwgbgrwuburrurrurrwrbbgwbwrrguggugwguwugwgubu +wrugwgwgrgbwrwgururrrrrburbrgrgbrwbwugwwrbrbgwgrbggbbbr +ugrurguubbubuuwguwgugbuubwuwgrwwubwggbgrbbug +wuubwgrgbwwbggguubwrrrwgrbgwrgwrgrrwubbbwbgwbrwgg +ruwwwururuwubgwwwwwrbgbuwuwrgbgrugggwgbgrbwrubbgwubru +wuuubgwugwrguububwrgwwrwwgrbgbrgbrwrwbrg +wuuwrrbwbwgwwubwuuwgbugwgubrugburbubwrrbrurr +ggubrwrrrrgurgggburggugbrguwbugbguwgbgwgbrrrb +wuuugbbuwwwuwrgbwwgwruubgbrrgururbrbuurwwrbgwwrrubru +wuuwurbgbwgguwrwgbbbrbbgbrrrgugwbruggbuu +wurwgwgwbuuuwggbrbgbgwuwbbbggbgguguwwgruwubbb +wwwrwbubgwgbwbguurwrbwuuuurwwrrrgbwgrgbwwurrrubbuubgbugw +rrbrubuurbwbwbbwgwbwrbuwggwwbubbwrgrruuwrrubwgwg +buwrrrwrrgbuubbguwbwwwrwguuuurbwbgurrrurbrrgbbrrrruu +gubbrgwgruuuguuggwbrrwrwwuubwrwrrbrwgrbrwwrruwbwwgggwr +rrurggbrrrwrugubwrwwrrwrugbrwbruuuuwrgbgbbubgwggwg +wrgwgwbgrbwgwwurwrbgrrgrruwrggrrurwugrbgurggwbgbgrbg +brbwwguubbbrrgubbguwwwgrrrbuuwbubbggwrbwwgrrruburwr +wuuuwugugwbwubugwwrgwrwurwuuugugbrbwrbwrguggrgwbbwubgwrwwrb +burgruubggwurguugguuwrgbgbrrbuwugbgbrrbbgggwu +wuurggubgwwbbrruwubgrrbgurwbuggwbuggrgrwbbbrbwgb +gwurbuubwgbwbgwwrrrbrwrgbgrbruwbwbuburwggbruggwgbwgubuub +grrubwrrwbgwgbuuwrbgguuurbgbgwruwurgguurrgbrwwurruugruw +wuubwbggbbwgrbrgguuurbuwwgrgwbgurgurrwgrubwbbrbg +wuurrrrurrbwrrwbwururbwggwubbwgbuwrwgwrrrrugwurbuu +ggugggwbubbgrgggurbugrwggwwguubbuburrubrrubrur +wurwuuurbburwrbwbgbwwbwrwrgbruurgbrruggrwwbrurbuwwrgbr +wuuwrbgwwbuuwwbgbrwggrgwbbgurgbbrwbuwbrburuwgwwr +gwubwwbuuugggbrgbwrrbrrwrrwubgwggrugubbwuuwbwwbuur +wuuwrgguuggbwgwuwugwuuwgrrrwwbwggrburbuwwrruuwwwwgw +wuuruwbwgbuwbuuggrubggwwwuuubwwrbgwurrrubuurgwbw +wuuwwbrrrrwwwwwrruruwgugbgwurubrugggwbgbruwrugwbbwgguguwbg +wuugbwgrbubrbwbgguruubrurbrgbgrwbrgwgrggrwbwgrugbguwrrwwgug +wuuwuwuwbrrwugwbuwguguwguwuggrgwggbrrwrwbwg +wuurggwrgggubgrurggrwbwbrggrrbrburugrbruwbuuuugbb +grwubgwuuuggugrwbugubwgwuugrwbwuubrbwubbgrurwrbuubbgrbg +wuuurgubrwbubgwwrwuwbbrrrrurgbugwrwgbwgrgbrwuguugubuubgurruu +wuwwgurugbururuuubwbbwbuwrugbwbuugrrbuwwggugu +wurwuuwugruwugruwbrbbwburugruuwgwrrgwurwrrwurgubuwugb +gbrwbggbgrrgugburrrgubrrgbruuuwugbbbwggrwbrbw +wuuwrgbbrbgwuubgwruuggrgruwubgwubgubbbubwwrrwwb +uggrgrbwuubbwuwbggbbbbgwbuubgugbgrgwwwrgwrwurwrwgrbuggg +ruugrguurgwgwrrbbrwbbruggrgwrgbuwugwuurrrggbgrrrggrrguwrru +uggugggurgwgbuuwrwuwgrguugwuugbwbrgbbgwubbrgwubwwurb +wuuruurggugrbruurrgurgrurrbbugurggwuwbuuww +wrwgbuwbrbbrwwbgbugwrbgwrrgrbguwbgbwwgurwgbwwbgubr +grwuuuurugbgubgubwbgrrbgwbgrwrbgbrbugguwgwguuugrgwbruurbgu +bggrwubrwgggbbrrbuugbrgwrwguuubwrbbwgwwbbuuuruw +wbugwgrrgwbbbubgguurubbgubwrrrwwbwrbwrurwgwggrbuguubrbg +wrubwwgrrbbugwbwwrbbgugbgubgruguguurrrururbbbugubb +guggwgbuuwgrwgugbguwwrrgugurrbuubuwbgwbrwbbubg +wuuwuguruwuugwgwwgggwgwwugrgugugwurgbgbw +grugrruubbugggugubuguwwbrgrbuurbuwrrrbgugbwugbgbwwb +uwggugwwubgrgbrwbrrguwbgrwbbruwurwbbbbuggrgbbbgwr +wrgwuwrwubugbgwurbrbbwbrrguwguugbgguwbuugwuubbrwbruuuurwu +gburubgwuwgggwuwwurwbbubuuwuuubbbuwgbugggwrb +uwuguwgubwrwuuuggbugwgburbwwbuwwggwwuwburrgurwbggubbg +rguguwbgrgrbrrwurrubrbrwggbwbuwrbbwwbwgwgwrbugwbuuwwruwrww +rubrruwbwubburgbrrwguwbguruuugbgbwbbbwrrgrbbguwuwuru +wuugguwuugrwwbbwurbwwurgwugbugrgrgwbbbuwguwbgbwwbw +wuuwrwgburuwurgbrubggrbgugbuwubrggguurrrrbbwrrruuwbgrb +uubbgggbrbwwrbguuwuurrburbrbrrgrbrbbugugruwbrugwrbr +rgguurgggrwbgruwwubugrrbwgwrguwbrwrbguwwgru +gburgururugwwrbrwguuguwubuwgbwbguggwuwwgwgurrrrgggubwww +bgwwbbugwrbguubbbgbbwrbwgrwgubgubrbgwgbbgggbw +wuubgbrwguurwbrwguwurwbubgwrgrrrgwggrwwggbrgr +wuubruuwbgwwwwuwuuwwgrbggruwrrrbrubuubbrw +grrgwwrrrurgguwbgwwgrwuubrgggwwuwbrwuruggugbuwubbg +bgrwgwbguggubwwgbgggwrwbguurgrguggrbrbubwrr +wuugrrwbguwgwwuuurgwubbububbrbwbbbbrwwbgguwgbguubwwuwgrwbwub +wuuuggbbgubggwruwwrbbubrbbrbrguwbgwruwwwugrwgwuuwubwbwrbwrb +wuubrburgrggrwgwwggbrwbwrbwgbbgbrbwwwuubbwrbb +wuggwubwgrbwuruguwbgwuburbguruwburwggrwbbbubwgg +bbwuwwbrrruwwrbbrbbwwuubuwgurwrgwwbgwwgguwguwug +wuuugbwurwugwbgbwurbubbruwbwgrwwbgugwwuwwrgurwgbugrw +rbbuwwrguurgbrgbbrwrwuubrwrbwrgrwbwwuurbur +ubgrbgggwrbguuubgrwwgwwrrwguuuggwurbgwruwggrugbuggwrg +bgrwbubrwuugugbrubugbgwuubbrgbwwubguburwuwgwggug +uubwwuurrubwwwbgwrubrurwgbubrrbbwguwuugrwu +guurubggubbubbrbwbbugbrruggwbburwrbwrruwbrwrbrgggrrrwu +bruwrburwwgurwbgrwrrgrrggwuwbugwuubgwgrbrrrrgurguwgugrwu +rgugruugubwwguubbwgubrwgrubwggrruwubwbubwrrrbrgubbb +wuuruwurwwbwwbrrguwrrbbgbbwgbgggwwbbbwwguubwwwwwwg +ruwwwuwuwrwubwrrwurrbbwbggbrgurrwuurwubgrgwgugu +gbwwgwguwgwwrugwubwuuwwrgugbgbrgwbuuggrbwgbwbbubgruwbbwr +bgbbwgrgbubwrbbrurwbuwgwbguwubgwuuubgbwgwruurgw +wuugubgwruwruwrbgwbwugrugbbbbrwbrbbbggbuurgwruwrwbgwggrb +wggrrwwugrbbwubugruwrbguubuuuugubruuwrbuubbbwwrrwb +ruwbbrwrrwruwwgrgubguubwwbwuwgrrugurwwbuubwbbwbgwgrwuwr +uwrbrruwwbrurbrrwrugugugbrgruwuuururgwuguuugwbwwugugrgrw +wuubuwwuwgwubwugwgwwwgbrgubrgrgwubbrwwuurbr +wuuwuuwwuubbwbugwbugrubwrrugrwuwggrggguugrgw +ugbwwwrgbburwugubbbbggbgbwubwgbrbwrwwwubugwub +wuuggggrbbuwgrbwbubwuugbwurbuubbubwrbbrwgwbgggwgrrrgbubuwgg +wuububwbbrwuurgrwrgbggggbgwrruwbuwwrbwbguuubbwugr +uggwbgwwrgwgwbgguuguggbrurbbwbbgbuggrwwbrgbw +wuubbrrbgubwwwgbgbguwwgbwuubwuuwbuwuugwrbbuurwg +bguuugggwggugubrwbrbrbugwgwgwbgurwrubguwrrru +grrwrwbgrwwbuwbbrubguuugwbwugbbbbrubwubbruugrwrggrwwwwrrr +grbgbbbgbgbwburggwgrububwwbwuruubrbguugrgwwbrwwwrwr +rbrbrggrgbrbggbgwbrwguwrbrgwrgwwguwwwurwbbbbbbbu +wuurgburuwurbbubwrgrgbrggwggrwubwgrbwgbruruubwwbuuugbggbru +wuugbugbwrggwgwwrbrubburgruugggurrrrwrbrbrrwrurrwbwwbugrrgbb +bububggwuwugbugbwuguwuuuuurgrgurwrbbwwubguwuggwgbbgwwu +guruurwbuurbgwwrugrbruurubwwrrwrwbwgbbgbrrruubgbwrrwug +rbgwbuurwugrugubuwwbwubwbwgrgruwwbrbbbrbwgrgr +rgruurubgwrwbwbgugggbbbbgrrgwbbrgbugwgbwgggrbgbuu +wuugbrruwbbrrgwbbrwrwgwgugrbbgwgbbwrbbrbbwubbbwrurur +ggugggbgwugggrgurbuwuuggubwuuwbgbgbbgrbbgbrwg +buuwggugbrgwrbbwrrbguguggrrgrgggwrgrwwrrgugbwbggu +wuwgwbugbwrbrgbwwwuwrbbwgwbwbgggguuggbbwrwwwbbggwwrwwb +wuuurugbuugwbbbwurrbbbuwwurrwrruuurbrwurrwubrrb +rwruurbwbbgbgrbrwggrwrwuwwugrurrrrurrgwburrggurrwurrguwg +wuurbwwbbrgrurrggbbwwgurruwgbuwuuwugbrbuu +bgrurgwurwwuuuububbgrrgubrurburrwwubwrwwrgbrrgbrugwrguurw +guwrrrugwbgrbrgbuguwruuugwwgwwbbuuuwbrubgwbwwwrwru +wuuwgburubwwrggbbruwrurrrggwrbbbgwbbwgggwrbwgwrbwrwgg +gwuburuwbrrurbgbbrbubrbwgguggurwbbuuurwbbrubrubwwbubgb +gruubgguburgrgububbwwbwgwrrgwgbbgrubbubwrwbrw +uugguwburggbugwrguubuuwggbwggburbwurgwbwbwrbwgbburuwub +wugwuuguwwwrubruwrbwgbbwwgurwrrgbwrbubwburuuwrubuuurrbgggguu +wuubwwwbrrgrwrggbwgruwbuwbggbbbuwbgbwuuruwbgwguwrugbbubw +rbbububbwurgwrugbggbbguwbgbgwgurbbugugrwubrguurgwwwbgw +bbuurrurgwbwbgwubrbgbgwbgurbubgwrggugwwbwrburbbuwwgburg \ No newline at end of file diff --git a/19/main.go b/19/main.go new file mode 100644 index 0000000..428529e --- /dev/null +++ b/19/main.go @@ -0,0 +1,105 @@ +package main + +import ( + "bufio" + "fmt" + "os" + "strings" + "time" +) + +const FILE_PATH = "./input.txt" + +//const FILE_PATH = "./sample.txt" + +func LoadInput(filename string) ([]string, error) { + file, err := os.Open(filename) + if err != nil { + return nil, err + } + defer file.Close() + + var lines []string + scanner := bufio.NewScanner(file) + for scanner.Scan() { + lines = append(lines, scanner.Text()) + } + + if err := scanner.Err(); err != nil { + return nil, err + } + + return lines, nil +} + +type Puzzle struct { + poss []string + lines []string +} + +type structuredInput = Puzzle + +func TransformInput(lines []string) structuredInput { + return Puzzle{strings.Split(lines[0], ", "), lines[2:]} +} + +func Part1(input structuredInput) int { + var result = 0 + var poss []string + var found bool + var work string + + for i, line := range input.lines { + fmt.Println(i) + poss = []string{line} + found = false + for !found && len(poss) > 0 { + work = poss[0] + poss = poss[1:] + for j := 0; j < len(input.poss); j++ { + if len(input.poss[j]) <= len(work) { + if work[:len(input.poss[j])] == input.poss[j] { + poss = append(poss, work[len(input.poss[j]):]) + if len(work[len(input.poss[j]):]) == 0 { + found = true + break + } + } + } + } + } + if found { + result += 1 + } + } + + return result +} + +func Part2(input structuredInput) int { + var result = 0 + return result +} + +func main() { + var start time.Time + var elapsed time.Duration = 0 + input, err := LoadInput(FILE_PATH) + if err != nil { + fmt.Println("Error loading input:", err) + return + } + + structuredInput := TransformInput(input) + fmt.Println("Structured Input:", structuredInput) + + start = time.Now() + fmt.Println("Solution Part 1: ", Part1(structuredInput)) + elapsed = time.Since(start) + fmt.Printf("Part 1 took %s\n", elapsed) + + start = time.Now() + fmt.Println("Solution Part 2: ", Part2(structuredInput)) + elapsed = time.Since(start) + fmt.Printf("Part 2 took %s\n", elapsed) +} diff --git a/19/sample.txt b/19/sample.txt new file mode 100644 index 0000000..ad43a74 --- /dev/null +++ b/19/sample.txt @@ -0,0 +1,10 @@ +r, wr, b, g, bwu, rb, gb, br + +brwrr +bggr +gbbr +rrbgbr +ubwu +bwurrg +brgr +bbrgwb \ No newline at end of file