Pagini recente » Cod sursa (job #496358) | Cod sursa (job #276829) | Cod sursa (job #556156) | Cod sursa (job #1564058) | Cod sursa (job #2528613)
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int v[16001];
int k;
int n;
bool ok(int nrC)
{
int op=1, i, sr=nrC;
for(i=1; i<=n; i++)
{
if(nrC<v[i])
{
return false;
}
else
{
if(sr>=v[i])
{
sr=sr-v[i];
}
else
{
op++;
sr=nrC;
sr=sr-v[i];
}
}
}
if(op<=k)
{
return true;
}
else
return false;
}
int main()
{
FILE *fin, *fout;
fin=fopen("transport.in", "r");
fout=fopen("transport.out", "w");
int i;
fscanf(fin, "%d%d", &n, &k);
for(i=1; i<=n; i++)
{
fscanf(fin, "%d", &v[i]);
}
int st=1, dr=256000000, mij;
while(st<dr)
{
mij=(st+dr)/2;
if(ok(mij)==true)
{
dr=mij;
}
else
{
st=mij+1;
}
}
fprintf(fout, "%d", st);
fclose(fin);
fclose(fout);
return 0;
}