package Ġcom . one gravity . dl x 2 Ċ Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠThis Ġcreates Ġthe Ġd ancing Ġlinks Ġdata Ġstructure Ġbased Ġon Ġan Ġexact Ġcover Ġmatrix . Ċ Ġ* ĠThe Ġexact Ġcover Ġmatrix Ġis Ġan ĠArray Ġof ĠBoolean ĠArrays Ġ( Array < Boolean Array >). Ċ Ġ* Ċ Ġ* Ġ@ return Ġthe ĠRoot Node Ġof Ġthe ĠD LX Ġdata Ġstructure . Ċ Ġ*/ Ċ fun ĠArray < Boolean Array >. to DL X 2 (): ĠD LX Matrix Ġ{ ĊĠĠĠ Ġval Ġcolumns Ġ= ĠHashMap < Int , ĠBit Set >() ĊĠĠĠ Ġval Ġrows Ġ= ĠArray ( size ) Ġ{ ĠrowIndex Ġ-> ĊĠĠĠĠĠĠĠ Ġthis [ rowIndex ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold Indexed ( ArrayList < Int >()) Ġ{ Ġindex , Ġlist , ĠisSet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isSet ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumns [ index ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . set ( rowIndex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbit set Ġ= ĠBit Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumns [ index ] Ġ= Ġbit set ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbit set . set ( rowIndex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to IntArray () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠD LX Matrix ( rows , Ġcolumns ) Ċ } Ċ