根据题意略推一下,其实就是问你满足(a*(a+1))/2 < m <= ((a+1)*a(a+2))/2的a和m-(a*(a+1))/2 -1是多少。

二分求解就行了

#include<cstdio>

using namespace std;
typedef long long ll; int main()
{
int T;
scanf("%d",&T);
for(int k = ; k <= T; k++){
ll n,m;
scanf("%I64d%I64d",&n,&m);
ll L = , R = n;
ll mid , b1, b2;
while(L < R){
mid = (L + R) >> ;
b1 = (mid*(mid+))>>;
if(m <= b1) {
R = mid;
continue;
}
b2 = ((mid+)*(mid+))>>;
if(b2 < m) {
L = mid;
continue;
}
break;
}
if(L == R) mid = L;
printf("Case %d: %I64d %I64d\n",k,mid,m-b1-);
}
return ;
}
05-28 02:22