package Ġd cp . day 2 4 5 Ċ // Ġday 2 4 5 . kt Ċ // ĠBy ĠSeb astian ĠRa aph or st , Ġ 2 0 1 9 . Ċ Ċ import Ġio . kot lint est . properties . Gen Ċ import Ġio . kot lint est . properties . for All Ċ import Ġio . kot lint est . specs . String Spec Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . math . min Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠArray Hop per Ġ: ĠString Spec () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Array Ġhop per Ġtester " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor All ( 2 0 , ĠGen . list ( Gen . choose ( 1 , Ġ 1 2 ))) Ġ{ Ġnums Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlimited Nums Ġ= Ġnums . take ( min ( nums . size , Ġ 2 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbr ute _ force ( limited Nums ) Ġ== Ġdynamic _ programming ( limited Nums ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠExamples Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġexample 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( 6 , Ġ 2 , Ġ 4 , Ġ 0 , Ġ 5 , Ġ 1 , Ġ 1 , Ġ 4 , Ġ 2 , Ġ 9 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( br ute _ force ( list ), Ġdynamic _ programming ( list )) ĊĠĠĠ Ġ} Ċ }