package Ġcode forces . kotlin hero es 4 Ċ Ċ private Ġfun Ġsolve ( p : ĠList < Int >, Ġx : ĠList < Int >): ĠList < Int >? Ġ{ Ċ ĉ val Ġk Ġ= Ġ( 0 .. x . size Ġ- Ġ 3 ). min By OrNull Ġ{ Ġx [ it Ġ+ Ġ 2 ] Ġ- Ġx [ it ] Ġ} Ċĉ ĉ ?: Ġreturn ĠlistOf ( x [ 0 ], Ġp [ 0 ], Ġx [ 1 ], Ġp [ 0 ]) Ċ ĉ for Ġ( i Ġin Ġk .. k Ġ+ Ġ 2 ) Ġfor Ġ( j Ġin Ġk Ġuntil Ġi ) Ġfor Ġ( a Period Ġin Ġp ) Ġ{ Ċĉ ĉ val Ġrem Ġ= Ġx [ i ] Ġ% Ġa Period Ċĉ ĉ if Ġ( x [ j ] Ġ% Ġa Period Ġ!= Ġrem ) Ġcontinue Ċĉ ĉ val Ġother Ġ= Ġx . filter Ġ{ Ġit Ġ% Ġa Period Ġ!= Ġrem Ġ} Ċĉ ĉ val Ġgcd Ġ= Ġother . zip With Next ( Int :: minus ). fold ( 0 , Ġ:: gcd ) Ċĉ ĉ val Ġb Period Ġ= Ġp . first OrNull Ġ{ Ġgcd Ġ% Ġit Ġ== Ġ 0 Ġ} Ġ?: Ġcontinue Ċĉ ĉ val Ġb Phase Ġ= Ġ(( other . first OrNull () Ġ?: Ġ 0 ) Ġ+ Ġb Period Ġ- Ġ 1 ) Ġ% Ġb Period Ġ+ Ġ 1 Ċĉ ĉ val Ġa Phase Ġ= Ġ( rem Ġ+ Ġa Period Ġ- Ġ 1 ) Ġ% Ġa Period Ġ+ Ġ 1 Ċĉ ĉ return ĠlistOf ( a Phase , Ġa Period , Ġb Phase , Ġb Period ) Ċ ĉ } Ċ ĉ return Ġnull Ċ } Ċ Ċ fun Ġmain () Ġ{ Ċ ĉ read Ln () Ċ ĉ val Ġans Ġ= Ġsolve ( read Ints (), Ġread Ints (). sorted ()) Ġ?: Ġreturn Ġprintln (" NO ") Ċ ĉ println (" YES \ n ${ ans [ 0 ]} Ġ${ ans [ 1 ] }\ n ${ ans [ 2 ]} Ġ${ ans [ 3 ]} ") Ċ } Ċ Ċ private Ġtail rec Ġfun Ġgcd ( a : ĠInt , Ġb : ĠInt ): ĠInt Ġ= Ġif Ġ( a Ġ== Ġ 0 ) Ġb Ġelse Ġgcd ( b Ġ% Ġa , Ġa ) Ċ private Ġfun Ġread Ln () Ġ= Ġread Line () !! Ċ private Ġfun Ġread Strings () Ġ= Ġread Ln (). split (" Ġ") Ċ private Ġfun Ġread Ints () Ġ= Ġread Strings (). map Ġ{ Ġit . toInt () Ġ} Ċ