第17个点tle了,其他的wa。希望大佬能帮一把
# include<bits/stdc++.h>
using namespace std;
int ans,mid;
int l,k;
int a[100002];
int akwhat(int x)
{
int Cnt = 0;
int diff = 0;
for(int i = 1; i<=l; i++)
{
diff += a[i];
if(diff<0){diff = 0;continue;}
if(diff>=x){diff = 0;++Cnt;}
}
return Cnt;
}
int main()
{
cin>>l>>k;
int maxn = 0;
for(int i = 1; i<=l; ++i){
cin>>a[i];
if(a[i]>0)maxn+=a[i];
}
int left = 0, right = maxn;
while(left<=right)
{
///cout<<left<<" "<<right<<" ";
mid = (left+right)/2;
///cout<<mid<<endl;
int temp = akwhat(mid);
//temp太小说明mid太大
if(temp < k)right = mid-1;
else if(temp>k)left = mid+1;
else right = mid-1,ans = mid;
}
cout<<ans<<" ";
left = 0, right = maxn;
while(left<=right)
{
///cout<<left<<" "<<right<<" ";
mid = (left+right)/2;
///cout<<mid<<endl;
int temp = akwhat(mid);
//temp太小说明mid太大
if(temp < k)right = mid-1;
else if(temp>k)left = mid+1;
else left = mid+1,ans = mid;
}
cout<<ans;
///cout<<akwhat();
return 0;
}