- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
در یک مهمانی عدد کیک با اندازه برابر داریم. مهمان به این مهمانی میآیند و میزبان میخواهد کیکها را طوری تقسیم کند که به هر مهمان مقدار برابری کیک برسد و هیچ کیکی باقی نماند.
روش تقسیم کیکها به این صورت است که در هر مرحله میزبان تعداد دلخواهی قطعه کیک را انتخاب میکند و همه را به دو قسمت برابر تقسیم میکند.
از آنجا که میزبان سرش حسابی شلوغ است از شما خواسته است که در تقسیم کیکها را به او کمک کنید و به او بگویید که اصلا این کار امکانپذیر است یا خیر و اگر امکانپذیر هست حداقل چند مرحله تقسیم باید انجام شود.
ورودی
در خط اول ورودی ابتدا عدد که نشاندهندهی تعداد مهمانیهای برگزار شده، آمدهاست.
سپس در خط بعدی، در هر خط دو عدد و به ترتیب داده میشوند که اولی نشاندهندهی تعداد کیکهای اولیه و دومی تعداد مهمانها است.
خروجی
برای هر مهمانی اگر تقسیم کیک امکانپذیر بود، کمترین تعداد برش لازم و در غیر این صورت عدد -1
را در یک خط به عنوان خروجی چاپ کنید.
مثال
ورودی نمونه ۱
خروجی نمونه ۱
سناریو اول. در سناریو اول کیک و مهمان داریم. پس باید به هر مهمان اندازهی برابر یک کیک کامل برسد. هر بار میتوانیم فقط قطعات کیک را نصف کنیم پس هیچ وقت نمیتوانیم با تعدادی برش و برداشتن چند قطعه به این عدد برسیم.
سناریو دوم. در سناریو اول کیک و مهمان داریم. پس باید به هر مهمان اندازهی برابر یک کیک کامل برسد. پس میتوانیم با یک عملیات همهی کیکها را نصف کنیم و به هر مهمان یک قطعه بدهیم.
سناریو سوم. در سناریو اول کیک و مهمان داریم. پس باید به هر مهمان اندازهی برابر یک کیک کامل برسد. پس میتوانیم با چهار عملیات هر کیک را به ۱۶ قسمت تقسیم کنیم (هر بار همه قطعات را کنار هم میگذاریم و با یک عملیات همه را نصف میکنیم.) سپس به هر مهمان ۷ قطعه کیک میدهیم.
ارسال پاسخ برای این سؤال