Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
81650 | 张志鹏 | cake | C++ | 运行超时 | 0 | 2000 MS | 1032 KB | 632 | 2023-08-09 17:48:08 |
#include<bits/stdc++.h> using namespace std; int n; int a[100001]; int b[100001]; unsigned long long l,r,mid; int check1(int x,int y){ if((b[n]-x)/2<mid) return 0; return 1; } int check(int x){ for(int i=1;i<=n;i++){ for(int j=i+1;j<=n+(i-1);j++){ if(b[j]-b[i-1]>=mid&&b[j]-b[i-1]<=r&&check1(b[j]-b[i-1],mid)) return 1; } } return 0; } int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) b[i]=a[i]+b[i-1]; for(int i=n+1;i<=2*n;i++) b[i]=a[i-n]+b[i-1]; l=1,r=b[n]/3; while(l<r){ mid=(l+r+1)/2; if(check(mid)) l=mid+1; else r=mid; } cout<<r; return 0; }