- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
در یک مهمانی $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$ برابر یک کیک کامل برسد. پس میتوانیم با چهار عملیات هر کیک را به ۱۶ قسمت تقسیم کنیم (هر بار همه قطعات را کنار هم میگذاریم و با یک عملیات همه را نصف میکنیم.) سپس به هر مهمان ۷ قطعه کیک میدهیم.
ارسال پاسخ برای این سؤال