#1552. 珅泽教育CSP-J第一轮模拟考第三套 第 36 题
珅泽教育CSP-J第一轮模拟考第三套 第 36 题
三、完善程序(单选题,每小题3分,共计30分)
第1题
给定一个长度为 、由正整数组成的序列 ,请你求出所有子段中第 小的子段和。
#include<iostream>
int n,k,a[100005];
bool check(long long mid) {
long long s = 0;
for(int l = 1,r = 1;r <= n; r++) {
while(l <= r && ____(1)____) l++;
s+=____(2)____;
}
return ____(3)____;
}
int main(){
std::cin>>n>>k;
for(int i=1;i<=n;i++) {
std::cin >>a[i];
a[i]+=a[i-1];
}
long long lbound = 0,rbound = 5000000000,mid;
while(lbound <= rbound) {
mid = (lbound + rbound) >> 1;
if(check(mid)) ____(4)____rbound = mid - 1;
else ____(5)____lbound = mid + 1;
}
std::cout << lbound;
return 0;
}
(1) 处应填( )。
{{ select(1) }}
a[l] > mida[r] > mida[r] - a[l-1] > mida[r] - a[l] > mid