为啥我的 __int128 CE 了?
代码:
#include<stdio.h>
#include<stdint.h>
using namespace std;
int t,n,s[200007];
unsigned long long c,left,right;
bool check(unsigned long long x){
__int128 sum=0;
for(int i=0;i<n;i++){
sum+=(s[i]+x*2)*(s[i]+x*2);
if(sum>c) return false;
}return sum<=c;
}int main(){
scanf("%d",&t);
while(t--){
scanf("%d%lld",&n,&c);
for(int i=0;i<n;i++) scanf("%d",s+i);
left=0;
right=c;
while(left<=right){
if(check((left+right)/2)) left=(left+right)/2+1;
else right=(left+right)/2-1;
}printf("%lld\n",left-1);
}return 0;
}