题目描述
纯找规律,第一列(1st W)都是h平方,多来的部分依次放在下一个环中,判断一下是否大于h(w)
算法1
(无) $O(T)$
C++ 代码
#include <bits/stdc++.h>
using std::cout;
typedef long long ll;
ll square(ll x) {return x * x;}
void solve(ll k)
{
ll cnt = 1;
while (k > square(cnt)) cnt ++;
k -= square(cnt - 1);
if (k <= cnt) cout << k << ' ' << cnt << "\n";
else cout << cnt << ' ' << 2 * cnt - k << "\n";
}
int main()
{
int T; scanf("%d", &T);
while (T --)
{
ll k; scanf("%lld", &k);
solve(k);
}
return 0;
}