package Ġkr . co . program mers Ċ Ċ // Ġhttps :// github . com / an top - dev / algorithm / issues / 3 3 8 Ċ class ĠP 4 2 8 9 5 Ġ{ ĊĊĠĠĠ Ġfun Ġsolution ( N : ĠInt , Ġnumber : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( N Ġ== Ġnumber ) Ġreturn Ġ 1 ĊĠĠĠĠĠĠĠ Ġ// Ġignore Ġindex Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġdp Ġ= ĠArray ( 9 ) Ġ{ Ġmutable Set Of < Long >() Ġ} ĊĠĠĠĠĠĠĠ Ġdp [ 1 ]. add ( N . to Long ()) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( n Ġin Ġ 2 Ġuntil Ġdp . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġset : ĠMutable Set < Long > Ġ= Ġdp [ n ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠN NNNN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . add ( run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġv Ġ= ĠN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( n Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv Ġ= Ġ( v Ġ* Ġ 1 0 ) Ġ+ ĠN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . to Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( left Ġin Ġ 1 .. n Ġ/ Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġn Ġ- Ġleft ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġdp [ left ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( y Ġin Ġdp [ right ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset . add ( x Ġ* Ġy ) Ġ// Ġequals Ġy Ġ* Ġx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset . add ( x Ġ+ Ġy ) Ġ// Ġequals Ġy Ġ+ Ġx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset . add ( x Ġ- Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset . add ( y Ġ- Ġx ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( y Ġ> Ġ 0 ) Ġset . add ( x Ġ/ Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( x Ġ> Ġ 0 ) Ġset . add ( y Ġ/ Ġx ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . contains ( number . to Long ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} Ċ Ċ } Ċ