#include <bits/stdc++.h> // By Lucky Ox
using namespace std;
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define int long long
#define double long double
#define __int128 i128
#define endl '\n'
#define pii pair<int, int>
#define INF 0x3f3f3f3f3f3f3f3f
#define npos string::npos
#define mod 1000000000000002493
int lcm(int x, int y){return x * y / __gcd(x, y);}
int qmi(int a, int k, int p){int res = 1;while(k){if(k & 1) res = res * a % p;k >>= 1;a = a * a % p;}return res;}
const int N = 2e5 + 10;
int n, c;
int a[N];
void solve(){
cin >> n >> c;
for(int i = 1; i <= n; i ++ ) cin >> a[i];
int l = 1, r = 1e9;
while(l <= r) {
int mid = (l + r) / 2, s = 0;
bool is_1 = 1;
for(int i = 1; i <= n; i ++ ) {
s += (a[i] + 2 * mid) * (a[i] + 2 * mid);
cout << (a[i] + 2 * mid) * (a[i] + 2 * mid) << ' ' << qmi(a[i] + 2 * mid, 2, mod) << endl;
if(s > c) {
r = mid - 1;
is_1 = 0;
break;
}
}
if(!is_1) continue;
if(s == c){
cout << "ans = " << mid << endl;
return ;
}
else l = mid + 1;
}
}
signed main(){
IOS;
int T = 1;
cin >> T;
while(T -- ){
solve();
}
return 0;
}
代码如上 我用(a[i] + 2 * mid) * (a[i] + 2 * mid)ac 但是用qmi(a[i] + 2 * mid, 2, mod) 会出错 求大佬解答