<prompt> Unacheza tofauti ya mchezo Zuma.Katika tofauti hii ya Zuma, kuna safu mlalo ya mipira ya rangi kwenye ubao, ambapo kila mpira unaweza kupakwa rangi nyekundu R, njano Y, bluu B, kijani. G, au nyeupe W. Pia una mipira kadhaa ya rangi mkononi mwako.Lengo lako ni kufuta mipira yote kwenye ubao. Kwa kila zamu: Chagua mpira wowote kutoka kwa mkono wako na uuingize kati ya mipira miwili kwenye safu mlalo au kila mwisho wa safu mlalo. Iwapo kuna kundi la mipira mitatu au zaidi mfululizo ya rangi sawa, ondoa kikundi cha mipira kwenye ubao. Ikiwa uondoaji huu husababisha vikundi zaidi vya rangi tatu au zaidi za rangi sawa kuunda, basi endelea kuondoa kila kikundi hadi kusiwe na chochote kilichosalia. Ikiwa hakuna mipira zaidi kwenye ubao, basi unashinda mchezo. Rudia utaratibu huu hadi ushinde au usiwe na mipira zaidi mkononi mwako.Kwa kupewa kamba ubao, inayowakilisha safu mlalo ya mipira ubaoni, na kamba mkono, inayowakilisha mipira iliyo mkononi mwako, rudisha _idadi ya kiwango cha chini ya mipira unayopaswa kuingiza ili kuondoa mipira yote kutoka. bodi. Ikiwa huwezi kuondoa mipira yote kwenye ubao kwa kutumia mipira iliyo mkononi mwako, rudisha_ -1.Mfano wa 1:Ingizo: ubao WRRBBW, mkono RBPato: -1Maelezo: Haiwezekani kufuta mipira yote. Bora unayoweza kufanya ni:- Ingiza R ili ubao uwe WRRRBBW. WRRRBBW - WBBW.- Weka B ili ubao uwe WBBBW. WBBBW - WW.Bado kuna mipira iliyobaki kwenye ubao, na huna mipira ya kuingiza.Mfano wa 2:Ingizo: ubao WWRRBBWW, mkono WRBRWPato: 2Maelezo: Kufanya ubao tupu:- Ingiza R ili ubao uwe WWRRRBBWW. WWRRRBBWW - WWBBWW.- Ingiza B ili ubao uwe WWBBBWW. WWBBBWW - WWW - tupu.Mipira 2 kutoka kwa mkono wako ilihitajika kusafisha ubao.Mfano wa 3:Ingizo: ubao G, mkono GGGPato: 2Maelezo: Kufanya ubao tupu:- Ingiza G ili ubao uwe GG.- Weka G ili ubao uwe GGG. GGG - tupu.Mipira 2 kutoka kwa mkono wako ilihitajika kusafisha ubao.Vikwazo: 1 ubao.urefu 16 1 urefu wa mkono. 5 ubao na mkono unajumuisha vibambo R, Y, B, G, na W. Safu ya awali ya mipira ubaoni haitakuwa na makundi yoyote ya mipira mitatu au zaidi mfululizo ya rangi sawa.  <response>: chatukutoka kwa makusanyo kuagiza Counterdef find_min_stepubao: str, mkono: str - int: def find_min_step_helperubao, memo, mkono: ikiwa sio bodi: kurudi 0 ikiwa bodi kwenye memo: rudisha memoubao matokeo kuelea inf mimi 0 wakati mimi lenubao: j i wakati j lenubao na ubaoi ubaoj: j 1 rangi ubaoi inahitajika 3 - j - i ikiwa mkonocolor inahitajika: mkonocolor - inahitajika next_board ubao:i ubaoj: tmp find_min_step_helperubao_ufuatao, memo, mkono ikiwa tmp ! -1: matokeo minmatokeo, tmp inahitajika mkonorangi inahitajika mimi j memobodi -1 ikiwa matokeo floatinf tokeo lingine rudisha memoubao hand_count Countermkono kumbukumbu rudisha find_min_step_helperubao, memo, hesabu_ya_kwa mkonomaelezoAlgorithm hutumia mbinu ya kurudi nyuma pamoja na kukariri. Kesi ya msingi ya kujirudia ni wakati kuna ubao tupu, ambapo idadi ya chini ya mipira ya kufuta ubao ni 0.Chaguo za kukokotoa hupitia ubao ili kupata mfuatano wa rangi sawa. Kwa kila mlolongo, huhesabu idadi ya mipira inayohitajika kufikia angalau 3 mfululizo. Ikiwa idadi inayotakiwa ya mipira inapatikana kwa mkono, huondoa mipira inayohitajika kutoka kwa mkono na kuendelea kwa kurudia na ubao wote.Baada ya simu ya kujirudia, mipira iliyoondolewa huongezwa nyuma kwa mkono.Kukariri hutumiwa kuhifadhi matokeo ya matatizo madogo kulingana na hali ya sasa ya bodi.Matokeo ni -1 ikiwa mipira iliyo mkononi haiwezi kufuta ubao, vinginevyo, idadi ya chini ya mipira inayohitajika kufuta ubao inarudishwa. 