package Ġday 5 Ċ Ċ import Ġshared . get Lines Ċ import Ġkotlin . math . ceil Ċ Ċ fun Ġget Seat Id ( passport : ĠString ): ĠInt { ĊĠĠĠ Ġvar Ġrow Min Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġrow Max Ġ= Ġ 1 2 7 ĊĠĠĠ Ġvar Ġcolumn Min Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġcolumn Max Ġ= Ġ 7 ĊĠĠĠ Ġfor ( i Ġin Ġ 0 .. 6 ){ ĊĠĠĠĠĠĠĠ Ġval Ġchar Ġ= Ġpassport [ i ] ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġrow Max Ġ- Ġrow Min ĊĠĠĠĠĠĠĠ Ġif ( char Ġ== Ġ' F '){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Max Ġ-= Ġceil (( diff Ġ/ Ġ 2 . 0 )). toInt () ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Min Ġ+= Ġceil (( diff Ġ/ Ġ 2 . 0 )). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfor ( i Ġin Ġ 7 .. 9 ){ ĊĠĠĠĠĠĠĠ Ġval Ġchar Ġ= Ġpassport [ i ] ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġcolumn Max Ġ- Ġcolumn Min ĊĠĠĠĠĠĠĠ Ġif ( char Ġ== Ġ' L '){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Max Ġ-= Ġceil (( diff Ġ/ Ġ 2 . 0 )). toInt () ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Min Ġ+= Ġceil (( diff Ġ/ Ġ 2 . 0 )). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġrow Min Ġ* Ġ 8 Ġ+ Ġcolumn Min Ċ } Ċ Ċ fun Ġfind Seat ( ids : ĠList < Int >): ĠInt { ĊĊĠĠĠ Ġfor ( id Ġin Ġids ){ ĊĠĠĠĠĠĠĠ Ġif (! ids . contains ( id Ġ- Ġ 1 ) Ġ&& Ġids . contains ( id Ġ- Ġ 2 )) Ġreturn Ġid Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġif (! ids . contains ( id Ġ+ Ġ 1 ) Ġ&& Ġids . contains ( id Ġ+ Ġ 2 )) Ġreturn Ġid Ġ+ Ġ 1 ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ- 1 Ċ } Ċ Ċ fun Ġmain (){ ĊĠĠĠ Ġval Ġboard ing P asses Ġ= Ġget Lines (" day 5 . txt ") ĊĠĠĠ Ġval Ġseat Ids Ġ= Ġboard ing P asses . map Ġ{ Ġget Seat Id ( it ) Ġ} ĊĠĠĠ Ġval Ġhighest Seat Id Ġ= Ġseat Ids . max () ĊĠĠĠ Ġprintln ( highest Seat Id ) ĊĠĠĠ Ġval Ġmy Seat Ġ= Ġfind Seat ( seat Ids ) ĊĠĠĠ Ġprintln ( my Seat ) Ċ }