package Ġcom . daily . algo th rim . bitmap Ċ Ċ import Ġkotlin . random . Random Ċ Ċ /** Ċ Ġ* Ġ ä½į åĽ¾ Ċ Ġ*/ Ċ class ĠBit Map ( private Ġval Ġn Bits : ĠInt ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBit Map ( 1 0 0 0 0 0 0 0 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i ++ Ġ< Ġ 1 0 0 0 0 0 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Ġ= ĠRandom . nextInt ( 1 0 0 0 0 0 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( random ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Temp . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! get ( it )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ apply ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" success !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġarray Ġ= ĠInt Array ( n Bits Ġ/ Ġ 3 2 Ġ+ Ġ 1 ) Ġ// Ġ 3 2 Ġint Ġæķ°æį® åįł 3 2 ä½į ĊĠĠĠ Ġprivate Ġval Ġtest Temp Ġ= ĠArrayList < Int >() Ġ// Ġæµ ĭ è¯ķ éĽĨåĲĪ ĊĊĠĠĠ Ġfun Ġset ( k : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( k Ġ> Ġn Bits ) Ġreturn ĊĠĠĠĠĠĠĠ Ġtest Temp . add ( k ) ĊĠĠĠĠĠĠĠ Ġval Ġb B ite Ġ= Ġk Ġ/ Ġ 3 2 ĊĠĠĠĠĠĠĠ Ġval Ġb B ite Index Ġ= Ġk Ġ% Ġ 3 2 ĊĠĠĠĠĠĠĠ Ġarray [ b B ite ] Ġ= Ġarray [ b B ite ]. or ( 1 . sh l ( b B ite Index )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget ( k : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( k Ġ> Ġn Bits ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġb B ite Ġ= Ġk Ġ/ Ġ 3 2 ĊĠĠĠĠĠĠĠ Ġval Ġb B ite Index Ġ= Ġk Ġ% Ġ 3 2 ĊĠĠĠĠĠĠĠ Ġreturn Ġarray [ b B ite ]. and ( 1 . sh l ( b B ite Index )) Ġ!= Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ }