噫,为何蒟蒻的代码只有四十分
查看原帖
噫,为何蒟蒻的代码只有四十分
410173
dekobe楼主2021/2/6 17:14
#include<bits/stdc++.h>
using namespace std;
long long m,n;
long long t[100008];
long long z[100008];
bool check(int x){
	long long ans=0,jj=0;
	for(int i=1;i<=n;i++){
		if(t[i]>x)return false;
		if(i==n&&z[n]-jj<x){
			ans++;
			break;
		}
		if(z[i]-jj>x){
			jj=z[i-1];
			ans++;
		}
		else if(z[i]-jj==x){
			ans++;
			jj=z[i];
		}
		if(ans>m)return false;
	}
	return ans<=m;
}
int main(){
	scanf("%lld%lld",&n,&m);
	long long ff=-999999;
	for(int i=1;i<=n;i++){
		scanf("%lld",&t[i]);
		z[i]=z[i-1]+t[i];
		ff=max(ff,z[i]);
	}
	long long l=0,r=ff+1;
	while(l<r){
		long long mid=(l+r)/2;
		if(check(mid))r=mid;
		else l=mid+1;
	}
	printf("%lld",l);
}
2021/2/6 17:14
加载中...