Cod sursa(job #2779135)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 2 octombrie 2021 19:06:14
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<fstream>
using namespace std;
ifstream F("transport.in");
ofstream G("transport.out");
int a,n,i,k,s[16001],x,c,t,j,m,p,r,q;
int main()
{
	F>>n>>k;
	for(i=1;i<=n;++i)
		F>>a,s[i]=s[i-1]+a,m=max(m,a);
	p=m,q=s[n];
	if(k>=n)
		G<<m;
	else if(k==1)
        G<<s[n];
	else {
		while(p<=q) {
       		for(r=(p+q)/2,i=1,t=x=0;i<=n;)
                if(s[i]-s[t]<=r)
                    ++i;
                else
                    t=i-1,++x;
       		if(s[n]-s[t]<=r)
               	++x;
       		if(x>k)
               	p=r+1;
       		else
               	q=r-1;
		}
		if(x>k)
       		++r;
		G<<r;
	}
	return 0;
}