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

در یک مهمانی \(n\) عدد کیک با اندازه برابر داریم. \(k\) مهمان به این مهمانی می‌آیند و میزبان می‌خواهد کیک‌ها را طوری تقسیم کند که به هر مهمان مقدار برابری کیک برسد و هیچ کیکی باقی نماند.

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

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

ورودی

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

\[1 \le t \le 100 \, 000\]

سپس در \(t\) خط بعدی، در هر خط دو عدد \(n\) و \(k\) به ترتیب داده می‌شوند که اولی نشان‌دهنده‌ی تعداد کیک‌های اولیه و دومی تعداد مهمان‌ها است. \[1 \le n, k \le 10^9\]

خروجی

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

مثال

ورودی نمونه ۱

3
10 3
4 8
7 16

خروجی نمونه ۱

-1
1
4

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

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

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

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