80分求助qwq
查看原帖
80分求助qwq
242524
JRzyh楼主2021/7/29 19:53

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;
}

我要是有这个机器就好了

2021/7/29 19:53
加载中...