Cod sursa(job #2471063)
| Utilizator | Data | 10 octombrie 2019 09:33:52 | |
|---|---|---|---|
| Problema | Transport | Scor | 80 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include<iostream>
int v[16001];
#include<stdio.h>
using namespace std;
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int n,k,i,nr,maxx,c;
long long s,p1,p2,s1,m,b;
cin>>n>>k;
s=0;
maxx=-1;
for(i=1;i<=n;i++)
{
cin>>v[i];
s=s+v[i];
if(nr>maxx)
maxx=nr;
}
p1=maxx;
p2=s;
while(p1<=p2)
{
m=(p1+p2)/2;
c=1;
s1=0;
for(i=1;i<=n;i++)
{
s1=s1+v[i];
if(s1>m)
{
c++;
s1=v[i];
}
}
if(c>k)
p1=m+1;
if(c<=k)
{
p2=m-1;
b=m;
}
}
cout<<b;
return 0;
}
