Cod sursa(job #1801556)
Utilizator | Data | 9 noiembrie 2016 10:33:32 | |
---|---|---|---|
Problema | Transport | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include<iostream>
using namespace std;
int main()
{
int n,k,i,v[16010],st,dr,mid,s=0,counter=1;
cin>>n>>k;
for(i=0;i<n;++i)
{
cin>>v[i];
}
st=1;
dr=256000000;
while(st<=dr)
{
mid=(st+dr)/2;
for(i=0;i<n;++i)
{
s=s+v[i];
if(s>mid)
{
counter++;
s=v[i];
}
}
if(counter>k)
{
st=mid+1;
counter=1;
}
else
{
dr=mid-1;
counter=1;
}
}
cout<<dr-1;
}