Cod sursa(job #2779135)
Utilizator | 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;
}