比赛wa2发改后ac 不是l=mid+1和r=mid-1吗为什么这里直接mid???
#include<iostream>
#include<set>
#include<stack>
#include<map>
#include<unordered_map>
#include<unordered_set>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<queue>
#include<cstdio>
#include<algorithm>
#define yh ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define ll long long
using namespace std;
typedef pair<int,int> pii;
const ll szed=200010;
ll a[szed],n,c;
inline ll ct(ll num){
ll aws=0;
for(ll i=1;i<=n;i++){
aws+=(a[i]+num*2)*(a[i]+num*2);
if(aws>c){
return c+1;
}
}
return aws;
}
void solve() {
ll num,aws=0;
cin>>n>>c;
for(int i=1;i<=n;i++){
cin>>a[i];
}
ll l=0,r=2000000000;
while(l<r) {
ll mid=l+(r-l)/2,cp=ct(mid);
if(cp<c) {
l=(mid);
} else if(cp>c) {
r=(mid);
} else {
cout<<mid<<endl;return ;
}
}
}
int main() {
yh;
int t;
cin>>t;
while(t--)solve();
return 0;
}