Pagini recente » Cod sursa (job #970350) | Cod sursa (job #2944059) | Cod sursa (job #2962538) | Cod sursa (job #111558) | Cod sursa (job #319899)
Cod sursa(job #319899)
#include <stdio.h>
#define NMax 16000
#define KMax 16000
int saltele[NMax];
int N, K;
int main(void)
{
FILE* fin = freopen("transport.in", "r", stdin);
FILE* fout = freopen("transport.out", "w", stdout);
int i, j=0;
int inf=0, sup=0, sum=0;
int st, dr, m, transp;
int capac;
scanf("%d %d", &N, &K);
for(i=0; i<N; i++)
{
scanf("%d", &saltele[i]);
if(j==K)
{
if(sup<sum)
sup = sum;
sum = saltele[i];
}
else
{
sum += saltele[i];
}
j++;
if(inf < saltele[i])
inf = saltele[i];
}
printf("%d - %d\n", inf, sup);
while(inf < sup-1)
{
m = (inf+sup)/2;
transp = 0;
i=0;
printf("%d\n", m);
while(i<N)
{
capac = m;
do
{
capac -= saltele[i];
i++;
}
while(capac >= 0);
i--;
transp++;
}
if(transp <= K)
sup = m;
else
inf = m;
}
printf("%d", m);
return 0;
}