@ file : Suppress (" Package Directory Mismatch ") Ċ Ċ package Ġsolutions . y 2 0 . d 0 5 Ċ Ċ import Ġhelpers .* Ċ import Ġcollections .* Ċ import Ġgrid .* Ċ import Ġgraph . B FS Ċ import Ġitertools . count Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlin . math . pow Ċ Ċ val Ġx xxxx Ġ= ĠClock ( 3 , Ġ 6 ); Ċ Ċ private Ġfun Ġpart 1 ( data : ĠData ) Ġ{ Ċ ĉ data . map Ġ{ Ċĉ ĉ val Ġx Ġ= Ġit . substring ( 0 , Ġ 7 ). map Indexed Ġ{ Ġa , Ġb Ġ-> Ġif Ġ( b Ġ== Ġ' B ') Ġ 2 . 0 . pow ( 6 Ġ- Ġa ) Ġelse Ġ 0 . 0 Ġ}. sum By Ġ{ Ġit . toInt () Ġ} Ċĉ ĉ val Ġy Ġ= Ġit . substring ( 7 ). map Indexed Ġ{ Ġa , Ġb Ġ-> Ġif Ġ( b Ġ== Ġ' R ') Ġ 2 . 0 . pow ( 2 Ġ- Ġa ) Ġelse Ġ 0 . 0 Ġ}. sum By Ġ{ Ġit . toInt () Ġ} ĊĊĉ ĉ x Ġ* Ġ 8 Ġ+ Ġy Ċ ĉ }. toSet (). let Ġ{ Ġprintln ( it ) Ġ} Ċ } Ċ Ċ private Ġfun Ġpart 2 ( data : ĠData ) Ġ{ Ċ ĉ data . map Ġ{ Ċĉ ĉ val Ġx Ġ= Ġit . substring ( 0 , Ġ 7 ). map Indexed Ġ{ Ġa , Ġb Ġ-> Ġif Ġ( b Ġ== Ġ' B ') Ġ 2 . 0 . pow ( 6 Ġ- Ġa ) Ġelse Ġ 0 . 0 Ġ}. sum By Ġ{ Ġit . toInt () Ġ} Ċĉ ĉ val Ġy Ġ= Ġit . substring ( 7 ). map Indexed Ġ{ Ġa , Ġb Ġ-> Ġif Ġ( b Ġ== Ġ' R ') Ġ 2 . 0 . pow ( 2 Ġ- Ġa ) Ġelse Ġ 0 . 0 Ġ}. sum By Ġ{ Ġit . toInt () Ġ} ĊĊĉ ĉ x Ġ* Ġ 8 Ġ+ Ġy Ċ ĉ }. toSet (). let Ġ{ Ċĉ ĉ for Ġ( i Ġin Ġit ) Ġ{ Ċĉĉ ĉ if Ġ(( i Ġ+ Ġ 2 ) Ġin Ġit ) Ġ{ Ċĉĉĉ ĉ if Ġ( i Ġ+ Ġ 1 Ġ! in Ġit ) Ċĉĉĉĉ ĉ println ( i Ġ+ Ġ 1 ) Ċĉĉ ĉ } Ċĉ ĉ } Ċ ĉ } Ċ } Ċ Ċ private Ġtype alias ĠData Ġ= ĠLines Ċ Ċ fun Ġmain () Ġ{ Ċ ĉ val Ġdata : ĠData Ġ= Ġget Lines ( 2 0 2 0 _ 0 5 ) Ċ ĉ part 1 ( data ) Ċ ĉ part 2 ( data ) Ċ }