package Ġcom . github . sol air er ove . al gs 4 . le pro sor ium . strings Ċ Ċ import Ġkotlin . math . max Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġprint ( minimum Chars For Words ( listOf (" only ", Ġ" after ", Ġ" we ", Ġ" have ", Ġ" lost ", Ġ" everything "))) Ċ } Ċ Ċ // ĠO ( n Ġ* Ġl ) Ġtime Ġ| ĠO ( c ) Ġspace Ċ // Ġn Ġis Ġnumber Ġof Ġwords Ċ // Ġl Ġis Ġlength Ġof Ġlongest Ġword Ċ // Ġc Ġis Ġnumber Ġof Ġunique Ġchars Ċ private Ġfun Ġminimum Chars For Words ( words : ĠList < String >): ĠList < Char > Ġ{ ĊĠĠĠ Ġval Ġmax Char Freq Ġ= Ġmutable Map Of < Char , ĠInt >() ĊĊĠĠĠ Ġfor Ġ( word Ġin Ġwords ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchar Freq Ġ= Ġmutable Map Of < Char , ĠInt >() ĊĠĠĠĠĠĠĠ Ġword . forEach Ġ{ Ġchar Freq [ it ] Ġ= Ġchar Freq . get OrDefault ( it , Ġ 0 ) Ġ+ Ġ 1 Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ(( char , Ġfreq ) Ġin Ġchar Freq ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( char Ġin Ġmax Char Freq ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Char Freq [ char ] Ġ= Ġmax ( freq , Ġmax Char Freq [ char ] !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Char Freq [ char ] Ġ= Ġfreq ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġchars Ġ= Ġmutable ListOf < Char >() ĊĠĠĠ Ġfor Ġ(( char , Ġfreq ) Ġin Ġmax Char Freq ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġfreq ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchars . add ( char ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġchars Ċ } Ċ