思路:
找规律,每一行的第一个数为完全平方数。
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<map>
#include<queue>
#include<math.h>
#include<vector>
using namespace std;
#define ll long long
ll a[100010];
int main()
{
int t;
cin>>t;
for(int i = 1; i <= 1e5; i++)
{
a[i] = (ll)i*(ll)i;
}
while(t--)
{
ll k;
cin>>k;
ll cnt = lower_bound(a+1,a+100001,k)-a;
ll sum = a[cnt];
if(sum == k)
{
cout<<cnt<<" "<<1<<endl;
}
else
{
// sum = a[++cnt];
if(sum-k+1 > cnt)
{
cout<<(cnt-(sum-cnt+1-k))<<" "<<cnt<<endl;
}
else
{
cout<<cnt<<" "<<sum-k+1<<endl;
}
}
}
}