奇怪的生日礼物

奇怪的生日礼物

备注:easy

 

今天是旭旭的生日,所以今天他收到了很多礼物。

在这些礼物中,有一个 N * NNN 玻璃棋盘,每个棋盘内都装有灯。 打开电路板电源时,一个不同的单元会每秒点亮一次,然后变暗。

灯将按照图中所示的顺序点亮。 

15936546752739.png

在第一秒,(1,1)的灯将点亮。在第5秒,单元格(3,1)的灯将点亮。现在,旭旭正在尝试预测哪个坐标会在第 SS 秒被点亮。假设 NN 足够大。

输入

输入以整数 T(1≤T≤200)T(1T200)开始,表示测试用例的数量。

每个测试用例将包含一个整数 S (1 ≤S ≤10^{15})S(1S1015),表示第 SS 秒。

输出

共有 TT 行。对于每组测试数据,输出一行信息 "Case t: x y" (不含引号)。

 其中 tt 表示对应的是第几组测试数据,x,yx,y表示第 SS 秒被点亮灯的坐标 。

样例

输入

3
8
20
25

输出

/*************************************************************************
    > File Name: 4750.cpp
    > Author: Henry Chen
    > Mail: 390989083@qq.com 
    > Created Time: 六  9/ 5 22:51:41 2020
 ************************************************************************/

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin >> n;
    for(int i = 1;i <= n;i++)
    {
        long long s;
        scanf("%lld",&s);
        long long sq = sqrt(s);
        if(sq*sq == s) sq--;
        long long dif = s - sq*sq;
        //printf("%lld %lld\n",sq,dif);
        if(sq % 2 == 1)
        {
            if(dif > sq)
            {
                printf("Case %d: %lld %lld\n",i,sq+1,2*sq-dif+2);
            }
            else
            {
                printf("Case %d: %lld %lld\n",i,dif,sq+1);
            }
        }
        else
        {            
            if(dif > sq)
            {
                printf("Case %d: %lld %lld\n",i,2*sq-dif+2,sq+1);
            }
            else
            {
                printf("Case %d: %lld %lld\n",i,sq+1,dif);
            }
        }
    }
    return 0;
}

 

Case 1: 2 3
Case 2: 5 4
Case 3: 1 5
posted @ 2020-09-07 21:49  秘之洋洋  阅读(226)  评论(0)    收藏  举报