/* Ċ --- ĠPart ĠTwo Ġ--- Ċ Ċ Now Ġthat Ġyour ĠFFT Ġis Ġworking , Ġyou Ġcan Ġdecode Ġthe Ġreal Ġsignal . Ċ Ċ The Ġreal Ġsignal Ġis Ġyour Ġpuzzle Ġinput Ġrepeated Ġ 1 0 0 0 0 Ġtimes . ĠT reat Ġthis Ġnew Ġsignal Ġas Ġa Ġsingle Ġinput Ċ list . ĠPattern s Ġare Ġstill Ġcalculated Ġas Ġbefore , Ġand Ġ 1 0 0 Ġphases Ġof ĠFFT Ġare Ġstill Ġapplied . Ċ Ċ The Ġfirst Ġseven Ġdigits Ġof Ġyour Ġinitial Ġinput Ġsignal Ġalso Ġrepresent Ġthe Ġmessage Ġoffset . ĠThe Ġmessage Ċ offset Ġis Ġthe Ġlocation Ġof Ġthe Ġeight - digit Ġmessage Ġin Ġthe Ġfinal Ġoutput Ġlist . ĠSpecific ally , Ġthe Ċ message Ġoffset Ġindicates Ġthe Ġnumber Ġof Ġdigits Ġto Ġskip Ġbefore Ġreading Ġthe Ġeight - digit Ġmessage . ĠFor Ċ example , Ġif Ġthe Ġfirst Ġseven Ġdigits Ġof Ġyour Ġinitial Ġinput Ġsignal Ġwere Ġ 1 2 3 4 5 6 7 , Ġthe Ġeight - digit Ċ message Ġwould Ġbe Ġthe Ġeight Ġdigits Ġafter Ġskipping Ġ 1 , 2 3 4 , 5 6 7 Ġdigits Ġof Ġthe Ġfinal Ġoutput Ġlist . ĠOr , Ġif Ċ the Ġmessage Ġoffset Ġwere Ġ 7 Ġand Ġyour Ġfinal Ġoutput Ġlist Ġwere Ġ 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 , Ġthe Ġeight - digit Ċ message Ġwould Ġbe Ġ 2 1 0 9 8 7 6 5 . Ġ( Of Ġcourse , Ġyour Ġreal Ġmessage Ġoffset Ġwill Ġbe Ġa Ġseven - digit Ġnumber , Ġnot Ġa Ċ one - digit Ġnumber Ġlike Ġ 7 .) Ċ Ċ Here Ġis Ġthe Ġeight - digit Ġmessage Ġin Ġthe Ġfinal Ġoutput Ġlist Ġafter Ġ 1 0 0 Ġphases . ĠThe Ġmessage Ġoffset Ġgiven Ċ in Ġeach Ġinput Ġhas Ġbeen Ġhighlighted . Ġ( Note Ġthat Ġthe Ġinputs Ġgiven Ġbelow Ġare Ġrepeated Ġ 1 0 0 0 0 Ġtimes Ġto Ċ find Ġthe Ġactual Ġstarting Ġinput Ġlists .) Ċ Ċ - Ġ 0 3 0 3 6 7 3 2 5 7 7 2 1 2 9 4 4 0 6 3 4 9 1 5 6 5 4 7 4 6 6 4 Ġbecomes Ġ 8 4 4 6 2 0 2 6 . Ċ - Ġ 0 2 9 3 5 1 0 9 6 9 9 9 4 0 8 0 7 4 0 7 5 8 5 4 4 7 0 3 4 3 2 3 Ġbecomes Ġ 7 8 7 2 5 2 7 0 . Ċ - Ġ 0 3 0 8 1 7 7 0 8 8 4 9 2 1 9 5 9 7 3 1 1 6 5 4 4 6 8 5 0 5 1 7 Ġbecomes Ġ 5 3 5 5 3 7 3 1 . Ċ Ċ After Ġrepe ating Ġyour Ġinput Ġsignal Ġ 1 0 0 0 0 Ġtimes Ġand Ġrunning Ġ 1 0 0 Ġphases Ġof ĠFFT , Ġwhat Ġis Ġthe Ġeight - digit Ċ message Ġembedded Ġin Ġthe Ġfinal Ġoutput Ġlist ? Ċ */ Ċ Ċ package Ġcom . cur tis lb . ad vent of code . year 2 0 1 9 . day 1 6 . part 2 Ċ Ċ import Ġcom . cur tis lb . ad vent of code . year 2 0 1 9 . day 1 6 . fft . Fast F ft Algorithm Ċ import Ġcom . cur tis lb . ad vent of code . year 2 0 1 9 . day 1 6 . fft . read Signal Ċ import Ġjava . nio . file . Path Ċ import Ġjava . nio . file . Paths Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġsolution Ġto Ġthe Ġpuzzle Ġfor Ġ 2 0 1 9 , Ġday Ġ 1 6 , Ġpart Ġ 2 . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput Path ĠThe Ġpath Ġto Ġthe Ġinput Ġfile Ġfor Ġthis Ġpuzzle . Ċ Ġ* Ġ@ param Ġphase Count ĠThe Ġnumber Ġof Ġphases Ġof ĠFFT Ġto Ġrun Ġon Ġthe Ġinput Ġsignal . Ċ Ġ* Ġ@ param Ġsignal Repeat Count ĠThe Ġnumber Ġof Ġtimes Ġthe Ġbase Ġsignal Ġis Ġrepeated Ġin Ġthe Ġinput Ġsignal . Ċ Ġ* Ġ@ param Ġoffset Digits ĠThe Ġnumber Ġof Ġdigits Ġat Ġthe Ġbeginning Ġof Ġthe Ġoriginal Ġsignal Ġthat Ġrepresent Ċ Ġ* Ġ Ġthe Ġmessage Ġoffset . Ċ Ġ* Ġ@ param Ġmessage Length ĠThe Ġnumber Ġof Ġdigits Ġat Ġthe Ġgiven Ġoffset Ġin Ġthe Ġfinal Ġsignal Ġthat Ġrepresent Ċ Ġ* Ġ Ġthe Ġmessage . Ċ Ġ*/ Ċ fun Ġsolve ( ĊĠĠĠ Ġinput Path : ĠPath Ġ= ĠPaths . get (" .. ", Ġ" input ", Ġ" input . txt "), ĊĠĠĠ Ġphase Count : ĠInt Ġ= Ġ 1 0 0 , ĊĠĠĠ Ġsignal Repeat Count : ĠInt Ġ= Ġ 1 0 _ 0 0 0 , ĊĠĠĠ Ġoffset Digits : ĠInt Ġ= Ġ 7 , ĊĠĠĠ Ġmessage Length : ĠInt Ġ= Ġ 8 Ċ ): ĠString Ġ{ ĊĠĠĠ Ġval Ġbase Signal Ġ= Ġinput Path . to File (). read Signal () ĊĠĠĠ Ġval Ġoffset Ġ= Ġbase Signal . sub List ( 0 , Ġoffset Digits ). join ToString ( separator Ġ= Ġ""). toInt () ĊĠĠĠ Ġval Ġfast F ft Ġ= ĠFast F ft Algorithm ( base Signal , Ġsignal Repeat Count , Ġoffset ). apply Ġ{ Ġrun ( phase Count ) Ġ} ĊĠĠĠ Ġreturn Ġfast F ft . read From Offset ( message Length ). join ToString ( separator Ġ= Ġ"") Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġprintln ( solve ()) Ċ } Ċ