<prompt> Kuna ndoo za kioevu, ambapo moja kabisa ya ndoo hiyo ina sumu. Ili kujua ni yupi aliye na sumu, unalisha baadhi ya nguruwe maskini kioevu ili kuona kama watakufa au la. Kwa bahati mbaya, una dakika minutesToTest pekee ili kubaini ni ndoo gani yenye sumu.Unaweza kulisha nguruwe kulingana na hatua zifuatazo:1. Chagua nguruwe walio hai wa kulisha.2. Kwa kila nguruwe, chagua ndoo gani za kumlisha. Nguruwe itakula ndoo zote zilizochaguliwa wakati huo huo na haitachukua muda. Kila nguruwe inaweza kulisha kutoka kwa idadi yoyote ya ndoo, na kila ndoo inaweza kulishwa kutoka kwa idadi yoyote ya nguruwe.3. Subiri kwa dakika minutesToDie. Huwezi usilishe nguruwe wengine wowote kwa wakati huu.4. Baada ya dakika minutesToDie kupita, nguruwe yeyote ambaye amelishwa ndoo yenye sumu atakufa, na wengine wote wataishi.5. Rudia utaratibu huu hadi utakapomaliza muda.Kwa kuzingatia ndoo, minutesToDie, na minutesToTest, rudisha _idadi kiwango cha chini zaidi ya nguruwe inayohitajika ili kubaini ni ndoo ipi iliyo na sumu ndani ya muda uliowekwa_.Mfano wa 1:Ingizo: ndoo 4, minutesToDie 15, minutesToTest 15Pato: 2Maelezo: Tunaweza kuamua ndoo yenye sumu kama ifuatavyo:Kwa wakati 0, lisha nguruwe wa kwanza ndoo 1 na 2, na ulishe ndoo ya pili ya nguruwe 2 na 3.Wakati wa 15, kuna matokeo 4 yanayowezekana:- Ikiwa tu nguruwe ya kwanza hufa, basi ndoo 1 lazima iwe na sumu.- Ikiwa tu nguruwe ya pili inakufa, basi ndoo 3 lazima iwe na sumu.- Ikiwa nguruwe wote wanakufa, basi ndoo 2 lazima iwe na sumu.- Ikiwa hakuna nguruwe anayekufa, basi ndoo 4 lazima iwe na sumu.Mfano wa 2:Ingizo: ndoo 4, minutesToDie 15, minutesToTest 30Pato: 2Maelezo: Tunaweza kuamua ndoo yenye sumu kama ifuatavyo:Kwa wakati 0, lisha nguruwe wa kwanza ndoo 1, na ulishe ndoo ya pili ya nguruwe 2.Wakati wa 15, kuna matokeo 2 yanayowezekana:- Ikiwa nguruwe mmoja atakufa, basi ndoo yenye sumu ndiyo iliyolishwa.- Ikiwa hakuna nguruwe aliyekufa, basi lisha nguruwe wa kwanza ndoo 3, na ulishe ndoo ya pili 4.Wakati wa 30, mmoja wa nguruwe wawili lazima afe, na ndoo yenye sumu ndiyo iliyolishwa.Vikwazo: 1 ndoo 1000 1 minutesToDie minutesToTest 100  <response>: chatudef poor_pigsndoo, dakika_to_kufa, dakika_to_test: nguruwe 0 wakati dakika_to_test minutes_to_die 1 nguruwe ndoo: nguruwe 1 kurudi nguruwemaelezoAlgorithm huhesabu idadi ya chini ya nguruwe inayohitajika kujaribu ndoo zote ndani ya kikwazo cha muda kilichotolewa. Inategemea ukweli kwamba kila nguruwe inaweza kutumika kupima ndoo nyingi kwa namna ya utafutaji wa binary ndani ya kizuizi cha muda, kwani inalishwa mara kwa mara ndoo tofauti.1. Anzisha idadi ya nguruwe hadi 0.2. Kokotoa idadi ya juu zaidi ya majaribio ambayo kila nguruwe anaweza kufanya ndani ya kikwazo cha muda kilichotolewa minutesToTest minutesToDie 1.3. Rudia na ongeza idadi ya nguruwe hadi jumla ya idadi ya ndoo iwe chini ya uwezo wa idadi ya majaribio ambayo kila nguruwe anaweza kufanya kwa idadi ya nguruwe.4. Rudisha idadi ya chini ya nguruwe inayohitajika.Kanuni hii huongeza uwezo wa kupima viwango vingi vya nguruwe ndani ya muda uliowekwa ili kupunguza idadi ya nguruwe wanaohitajika. Kila nguruwe inawakilisha kiwango cha ziada cha uwezo wa kupima, na hivyo kupunguza jumla ya idadi ya vipimo vinavyohitajika. 