Problem
Maria has been hired by the Ghastly Chemicals Junkies (GCJ) company to help them manufacture bullseyes. A bullseye consists of a number of concentric rings (rings that are centered at the same point), and it usually represents an archery target. GCJ is interested in manufacturing black-and-white bullseyes.
Maria starts with t millilitres of black paint, which she will use to draw rings of thickness 1cm (one centimetre). A ring of thickness 1cm is the space between two concentric circles whose radii differ by 1cm.
Maria draws the first black ring around a white circle of radius r cm. Then she repeats the following process for as long as she has enough paint to do so:
- Maria imagines a white ring of thickness 1cm around the last black ring.
- Then she draws a new black ring of thickness 1cm around that white ring.
The area of a disk with radius 1cm is π cm2. One millilitre of paint is required to cover area π cm2. What is the maximum number of black rings that Maria can draw? Please note that:
- Maria only draws complete rings. If the remaining paint is not enough to draw a complete black ring, she stops painting immediately.
- There will always be enough paint to draw at least one black ring.
Input
The first line of the input gives the number of test cases, T. T test cases follow. Each test case consists of a line containing two space separated integers: r and t.
Output
For each test case, output one line containing "Case #x: y", where x is the case number (starting from 1) and y is the maximum number of black rings that Maria can draw.
Limits
Small dataset
1 ≤ T ≤ 1000.
1 ≤ r, t ≤ 1000.
Large dataset
1 ≤ T ≤ 6000.
1 ≤ r ≤ 1018.
1 ≤ t ≤ 2 × 1018.
Sample
Input | |
5 | |
| |
Output | |
Case #1: 1 |
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
long long ans,T,i,j,ncas=1,r,t,start,res;
FILE *file;
freopen("C:\\Users\\think\\Desktop\\in.in","r",stdin);
file=freopen("C:\\Users\\think\\Desktop\\output.txt","w",stdout);
scanf("%lld",&T);
while(T--)
{
scanf("%lld%lld",&r,&t);
start=ans=res=0;
start=2*r+1;
for(i=1;;i++)
{
ans=2*i*r+2*(i+1)*i+i+start;
if(ans>t)break;
}
//printf("%lld\n",i);
fprintf(file,"Case #%lld: %lld\n",ncas++,i);
}
return 0;
}