Pagini recente » Cod sursa (job #2868988) | Cod sursa (job #319006) | Cod sursa (job #229004) | Cod sursa (job #2774720) | Cod sursa (job #2310650)
#include <bits/stdc++.h>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int N,K,S[16000];
int main()
{
f>>N>>K;
for(int i=0;i<N;f>>S[i++]);
int l=*max_element(S,S+N),r=256000000,m;
for(int q=0,k=0,s=0;l<r;q=0,k=0,s=0)
{
m=(l+r)>>1;
while(k<N)
{
if(s+S[k]<=m) s+=S[k];
else q++,s=S[k];
k++;
}
if(s>0) q++;
if(q<=K) r=m-1;
else l=m+1;
}
g<<m+1;
return 0;
}