Pagini recente » Cod sursa (job #1030536) | Cod sursa (job #417325) | Cod sursa (job #757225) | Cod sursa (job #244600) | Cod sursa (job #340907)
Cod sursa(job #340907)
#include<stdio.h>
#define dim 16001
using namespace std;
int n,k,v[dim],mij,i,maxx=0,suma=0,rez;;
int sum(int a)
{int i,suma=0,trans=0;
for(i=1;i<=n;i++)
{if(suma+v[i]<=a) suma+=v[i];
else {suma=v[i]; trans++;}}
trans++;
return trans;}
int caut(int li, int ls)
{int x;
mij=(li+ls)/2;
while(li<ls)
{x=sum(mij);
if(x>k) li=mij+1;
else ls=mij;
mij=(li+ls)/2;
}
return 0;
}
int main()
{
FILE *f=fopen("transport.in","r"), *g=fopen("transport.out","w");
fscanf(f,"%d%d",&n,&k);
for(i=1;i<=n;i++)
{fscanf(f,"%d",&v[i]);
suma+=v[i];
if(v[i]>maxx) maxx=v[i];}
caut(maxx,suma);
fprintf(g,"%d\n",mij);
fclose(f);
fclose(g);
return 0;
}