Pagini recente » Cod sursa (job #1023747) | Cod sursa (job #2004266) | Cod sursa (job #146582) | Cod sursa (job #19990) | Cod sursa (job #2527540)
#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(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,elem=0;
fscanf(fin, "%d%d", &n, &k);
for(i=1; i<=n; i++)
{
fscanf(fin, "%d", &v[i]);
}
int st=1, dr=16000, mij;
while(st<=dr)
{
mij=(st+dr)/2;
if(ok(mij)==true)
{
elem=mij;
dr=mij-1;
}
else
{
st=mij+1;
}
}
fprintf(fout, "%d", st);
fclose(fin);
fclose(fout);
return 0;
}