Pagini recente » Cod sursa (job #1679692) | Cod sursa (job #484062) | Cod sursa (job #1572818) | Cod sursa (job #2136770) | Cod sursa (job #340630)
Cod sursa(job #340630)
#include<stdio.h>
#define dim 16001
using namespace std;
int V[dim],N,K;
int gr(int n)
{ int sum, cont,i;
sum = 0; cont = 1;
for(i = 1; i <= N; i++)
{
sum += V[i];
if(sum == n) sum = 0, cont++;
else if(sum > n) sum = 0, cont++, i--;
}
return cont;
}
int cb(int in, int sf)
{ int mij;
mij = (in + sf)/2;
while( in < sf )
{
if( gr(mij) > K ) in = mij+1;
else sf = mij;
mij = (in + sf)/2;
}
return mij;
}
int main()
{int i,S,max, sol;
FILE *f = fopen("transport.in","r");
FILE *g = fopen("transport.out", "w");
fscanf(f, "%d%d", &N, &K);
S = max = 0;
for(i = 1; i <= N; i++)
{
fscanf(f, "%d", &V[i]);
S += V[i];
if(V[i] > max) max = V[i];
}
sol = cb(max, S);
fprintf(g,"%d\n", sol);
fclose(f);
fclose(g);
return 0;
}