/** Ċ Ġ* Ġhttps :// www . hack err ank . com / challenges / tor que - and - development / problem Ċ Ġ* Ċ Ġ* ĠGetting Ġtimeouts Ġon Ġ 2 Ġcases , Ġbut ĠI Ġthink Ġthat 's Ġdue Ġto Ġproblems Ġwith Ġjava Ġspeed . Ċ Ġ* ĠLooking Ġat Ġthe Ġcomments , ĠI 'm Ġcomplet ing Ġthe Ġcorrect ĠO ( n ) Ġsolution Ċ Ġ*/ Ċ class ĠTor que And Development Ġ{ ĊĊĠĠĠ Ġ// ĠComplete Ġthe Ġro ads And Libraries Ġfunction Ġbelow . ĊĠĠĠ Ġfun Ġro ads And Libraries ( n : ĠInt , Ġc _ lib : ĠInt , Ġc _ road : ĠInt , Ġcities : ĠArray < Array < Int >> ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcity Set Ġ= Ġmutable Set Of < Int >() ĊĠĠĠĠĠĠĠ Ġcities . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity Set . add ( it [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity Set . add ( it [ 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( c _ road Ġ> Ġc _ lib ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġc _ lib . to Long ()* n ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpossible Ro ads Ġ= Ġmutable Map Of < Int , Mutable List < Int >>() ĊĠĠĠĠĠĠĠ Ġcities . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpossible Ro ads . compute If Absent ( it [ 0 ]){ Ġmutable ListOf ()}. add ( it [ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpossible Ro ads . compute If Absent ( it [ 1 ]){ Ġmutable ListOf ()}. add ( it [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġvisited Ġ= Ġmutable Set Of < Int >() ĊĠĠĠĠĠĠĠ Ġvar Ġtotal Ġ= Ġ 0 L ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( city Ġin Ġ 1 .. n ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtotal += dfs ( city , possible Ro ads , visited , c _ lib , c _ road , true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtotal ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdfs ( city : ĠInt , Ġpossible Ro ads : ĠMap < Int , List < Int >>, Ġvisited : ĠMutable Set < Int >, Ġlibrary Cost : ĠInt , Ġroad Cost : ĠInt , Ġstart : ĠBoolean ) Ġ: ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( visited . contains ( city )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvisited . add ( city ) ĊĠĠĠĠĠĠĠ Ġvar Ġinitial Cost Ġ= Ġ( if Ġ( start ) Ġlibrary Cost Ġelse Ġroad Cost ). to Long () ĊĠĠĠĠĠĠĠ Ġinitial Cost ĊĠĠĠĠĠĠĠ Ġfor Ġ( c Ġin Ġpossible Ro ads . get OrDefault ( city , ĠlistOf ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Cost += dfs ( c , possible Ro ads , visited , library Cost , road Cost , false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġinitial Cost ĊĠĠĠ Ġ} Ċ }