int128求助
  • 板块灌水区
  • 楼主Wrong_Accept
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/1/11 14:33
  • 上次更新2024/1/11 19:34:21
查看原帖
int128求助
977599
Wrong_Accept楼主2024/1/11 14:33

为啥我的 __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;
}
2024/1/11 14:33
加载中...