package Ġpc max . instance Ċ Ċ data Ġclass ĠInstance ( val Ġworkers : ĠInt , Ġval Ġtasks : ĠInt Array , Ġval Ġsolution : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Input (): ĠInstance Ġ= ĠInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġread Line ()?. toInt OrNull () Ġ?: Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInt Array ( readLine ()?. toInt OrNull () Ġ?: Ġ 0 ) Ġ{ Ġread Line ()?. toInt OrNull () Ġ?: Ġ 0 Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġread Line ()?. toInt OrNull () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġworkers . toString (), ĊĠĠĠĠĠĠĠ Ġtasks . size . toString (), ĊĠĠĠĠĠĠĠ Ġtasks . join ToString ( separator Ġ= ĠSystem . line Separator ()), ĊĠĠĠĠĠĠĠ Ġ( solution Ġ?: Ġ- 1 ). toString () ĊĠĠĠ Ġ). join ToString ( separator Ġ= ĠSystem . line Separator ()) ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠInstance ĊĊĠĠĠĠĠĠĠ Ġif Ġ( workers Ġ!= Ġother . workers ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! tasks . content Equals ( other . tasks )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( solution Ġ!= Ġother . solution ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġworkers ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtasks . content HashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( solution Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ }