Pagini recente » Cod sursa (job #2173029) | Cod sursa (job #1763270) | Cod sursa (job #2291042) | Cod sursa (job #735623) | Cod sursa (job #2977654)
#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int main()
{ int i, j, n, N, M=0, m, V, K, C;
bool go=true;
fin>>N>>K;
int v[N];
long long s, T=0, U, D;
for(i=0;i<N;i++) {
fin>>m;
v[i]=m;
T=T+m;
if(M<m) M=m;
}
U=T; D=M;
while(go) {
C=(U+D)/2;
s=0; n=1;
for(i=0;i<N;i++) {
s=s+v[i];
if(s>C) {
s=v[i]; n=n+1;
if(n>K) {
D=C+1;
goto start0;
}
}
}
U=C;
start0:;
if(U==D) go=false;
}
fout<<D;
return 0;
}