// Ġhttps :// www . hack err ank . com / challenges / f raud ul ent - activity - notifications / problem Ċ Ċ fun Ġmain () Ġ{ ĊĊĠĠĠ Ġval Ġ(_, Ġdays ) Ġ= Ġread Line (). or Empty (). trim (). split (" Ġ"). map ( String :: toInt ) ĊĠĠĠ Ġval Ġex pend it ures Ġ= Ġread Line (). or Empty (). trim (). split (" Ġ"). map ( String :: toInt ). to Typed Array () ĊĠĠĠ Ġf raud ul ent Activity Notifications ( days , Ġex pend it ures ) Ċ } Ċ Ċ fun Ġf raud ul ent Activity Notifications ( days : ĠInt , Ġex pend it ures : ĠArray < Int >) Ġ{ ĊĊĠĠĠ Ġval Ġcount Array Ġ= ĠInt Array ( 2 0 0 ) ĊĠĠĠ Ġvar Ġqty Ġ= Ġ 0 ĊĊĠĠĠ Ġ// Ġinitialize ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġdays ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcount Array [ ex pend it ures [ i ]] ++ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfor Ġ( i Ġin Ġdays Ġuntil Ġex pend it ures . size ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ex pend it ures [ i ] Ġ>= Ġmedian ( days , Ġcount Array )) Ġqty ++ ĊĠĠĠĠĠĠĠ Ġcount Array [ ex pend it ures [ i Ġ- Ġdays ]] -- ĊĠĠĠĠĠĠĠ Ġcount Array [ ex pend it ures [ i ]] ++ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprintln ( qty ) Ċ } Ċ Ċ fun Ġmedian ( days : ĠInt , Ġcount Array : ĠInt Array ): ĠInt Ġ{ ĊĊĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠ Ġval Ġeven Ġ= Ġdays Ġ% Ġ 2 Ġ== Ġ 0 ĊĠĠĠ Ġval Ġmedian Idx Ġ= Ġdays Ġ/ Ġ 2 ĊĠĠĠ Ġvar Ġfound First Ġ= Ġfalse ĊĠĠĠ Ġvar Ġmedian Ġ= Ġ 0 ĊĠĠĠ Ġfor Ġ( count Idx Ġin Ġ 0 Ġuntil Ġcount Array . size ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcount Ġ+= Ġcount Array [ count Idx ] ĊĠĠĠĠĠĠĠ Ġif Ġ(! even ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġmedian Idx ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedian Ġ= Ġcount Idx Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Array [ count Idx ] Ġ> Ġ 0 Ġ&& Ġcount Ġ== Ġmedian Idx ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedian Ġ= Ġcount Idx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfound First Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( count Array [ count Idx ] Ġ> Ġ 0 Ġ&& Ġcount Ġ> Ġmedian Idx ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( found First ) Ġmedian Ġ+= Ġcount Idx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġmedian Ġ= Ġcount Idx Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġmedian Ċ } ĊĊ