• محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

در یک مهمانی nn عدد کیک با اندازه برابر داریم. kk مهمان به این مهمانی می‌آیند و میزبان می‌خواهد کیک‌ها را طوری تقسیم کند که به هر مهمان مقدار برابری کیک برسد و هیچ کیکی باقی نماند.

روش تقسیم کیک‌ها به این صورت است که در هر مرحله میزبان تعداد دلخواهی قطعه کیک را انتخاب می‌کند و همه را به دو قسمت برابر تقسیم می‌کند.

از آن‌جا که میزبان سرش حسابی شلوغ است از شما خواسته است که در تقسیم کیک‌ها را به او کمک کنید و به او بگویید که اصلا این کار امکان‌پذیر است یا خیر و اگر امکان‌پذیر هست حداقل چند مرحله تقسیم باید انجام شود.

ورودی

در خط اول ورودی ابتدا عدد tt که نشان‌دهنده‌ی تعداد مهمانی‌های برگزار شده، آمده‌است.

1t100,0001 \le t \le 100 , 000

سپس در tt خط بعدی، در هر خط دو عدد nn و kk به ترتیب داده می‌شوند که اولی نشان‌دهنده‌ی تعداد کیک‌های اولیه و دومی تعداد مهمان‌ها است. 1n,k1091 \le n, k \le 10^9

خروجی

برای هر مهمانی اگر تقسیم کیک امکان‌پذیر بود، کم‌ترین تعداد برش لازم و در غیر این صورت عدد -1 را در یک خط به عنوان خروجی چاپ کنید.

مثال

ورودی نمونه ۱

3
10 3
4 8
7 16
Plain text

خروجی نمونه ۱

-1
1
4
Plain text

سناریو اول. در سناریو اول n=10n = 10 کیک و k=3k = 3 مهمان داریم. پس باید به هر مهمان اندازه‌ی 103=3.333\frac{10}{3} = 3.333\cdots برابر یک کیک کامل برسد. هر بار می‌توانیم فقط قطعات کیک را نصف کنیم پس هیچ وقت نمی‌توانیم با تعدادی برش و برداشتن چند قطعه به این عدد برسیم.

سناریو دوم. در سناریو اول n=4n = 4 کیک و k=8k = 8 مهمان داریم. پس باید به هر مهمان اندازه‌ی 48=0.5\frac{4}{8} = 0.5 برابر یک کیک کامل برسد. پس می‌توانیم با یک عملیات همه‌ی کیک‌ها را نصف کنیم و به هر مهمان یک قطعه بدهیم.

سناریو سوم. در سناریو اول n=7n = 7 کیک و k=16k = 16 مهمان داریم. پس باید به هر مهمان اندازه‌ی 716=0.4375\frac{7}{16} = 0.4375 برابر یک کیک کامل برسد. پس می‌توانیم با چهار عملیات هر کیک را به ۱۶ قسمت تقسیم کنیم (هر بار همه قطعات را کنار هم می‌گذاریم و با یک عملیات همه را نصف می‌کنیم.) سپس به هر مهمان ۷ قطعه کیک می‌دهیم.


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.