1. 程式人生 > 實用技巧 >奇怪的生日禮物

奇怪的生日禮物

奇怪的生日禮物

備註:easy

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

在這些禮物中,有一個N * NNN玻璃棋盤,每個棋盤內都裝有燈。 開啟電路板電源時,一個不同的單元會每秒點亮一次,然後變暗。

燈將按照圖中所示的順序點亮。

在第一秒,(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: [email protected] 
    > 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