package Ġad vent of code . y 2 0 1 5 Ċ Ċ import Ġad vent of code . Ad vent Solution Ċ Ċ object ĠDay 0 3 Ġ: ĠAd vent Solution ( 2 0 1 5 , Ġ 3 , Ġ" Per fect ly ĠS pherical ĠHouse s Ġin Ġa ĠV ac uum ") Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġsolve Part One ( input : ĠString ) Ġ= Ġinput . visit Each (). size ĊĊĠĠĠ Ġoverride Ġfun Ġsolve Part Two ( input : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroute 1 Ġ= Ġinput . filter Indexed Ġ{ Ġi , Ġ_ Ġ-> Ġi Ġ% Ġ 2 Ġ== Ġ 0 Ġ}. visit Each () ĊĠĠĠĠĠĠĠ Ġval Ġroute 2 Ġ= Ġinput . filter Indexed Ġ{ Ġi , Ġ_ Ġ-> Ġi Ġ% Ġ 2 Ġ!= Ġ 0 Ġ}. visit Each () ĊĠĠĠĠĠĠĠ Ġval Ġvisited Ġ= Ġroute 1 Ġ+ Ġroute 2 ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvisited . size Ġ+ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠString . visit Each () Ġ= Ġas Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. scan ( Pos ( 0 , Ġ 0 ), ĠPos :: next ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toSet () ĊĊĠĠĠ Ġdata Ġclass ĠPos ( val Ġx : ĠInt , Ġval Ġy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnext ( ch : ĠChar ) Ġ= ĠPos ( x Ġ+ Ġch . dx (), Ġy Ġ+ Ġch . dy ()) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠChar . dx () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ' >' Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ'< ' Ġ-> Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠChar . dy () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ'^ ' Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ' v ' Ġ-> Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ