Pagini recente » Cod sursa (job #1037428) | Cod sursa (job #2193053) | Cod sursa (job #987144) | Cod sursa (job #1721664) | Cod sursa (job #1708589)
#include <cstdio>
int v[16000], n, k;
bool f(int c){
int i=0, nr, s;
for(nr=0;nr<k && i<n;nr++){
s=0;
while(i<n && s+v[i]<=c)
s+=v[i++];
}
return i==n;
}
int main()
{
int poz, pas, i;
FILE *fi=fopen("transport.in", "r"), *fo=fopen("transport.out", "w");
fscanf(fi, "%d%d", &n, &k);
for(i=0;i<n;i++)
fscanf(fi, "%d", &v[i]);
poz=0;
for(pas=1073741824;pas>0;pas/=2)
if(!f(poz+pas))
poz+=pas;
fprintf(fo, "%d", poz+1);
fclose(fi);
fclose(fo);
return 0;
}