https://www.luogu.com.cn/record/54505903
10,11,17,18 WA。
////////////////////////
///////////////////////
//////////////////////
/////////////////////
/////Author/////////
//////zyh//////////
//////////////////
/////////////////
////////////////
///////////////
//////////////
/////////////
////////////
#include<bits/stdc++.h>
#define EL putchar('\n')
#define SP putchar(' ')
using namespace std;
int read(){int x;scanf("%d",&x);return x;}
long long readll(){long long x;scanf("%lld",&x);return x;}
//void print(int x){printf("%d",x);}
void print(long long x){printf("%lld",x);}
long long l,k,add[100008];
long long check(long long mid)
{
long long ans=0,res=0;
for(int i=1;i<=l;i++)
{
ans+=add[i];
if(ans<0)ans=0;
if(ans>=mid)
{
res++;
ans=0;
}
}
return res;
}
long long hhh2()
{
long long l=1,r=1e17,ans=-1;
while(l<=r)
{
long long mid=(l+r)/2,tmp=check(mid);
if(tmp>=k)
{
l=mid+1;
if(tmp==k)ans=mid;
}
else r=mid-1;
}
return ans;
}
long long hhh1()
{
long long l=1,r=1e17,ans=-1;
while(l<=r)
{
long long mid=(l+r)/2,tmp=check(mid);
if(tmp<=k)
{
r=mid-1;
if(tmp==k)ans=mid;
}
else l=mid+1;
}
return ans;
}
int main()
{
l=readll();k=readll();
for(int i=1;i<=l;i++)
{
add[i]=readll();
}
int hh=hhh1();
if(hh==-1)print(-1);
else
{
print(hh),SP;
print(hhh2());
}
return 0;
}
我要是有这个机器就好了