Pagini recente » Cod sursa (job #2666699) | Cod sursa (job #1408650) | Cod sursa (job #2800197) | Cod sursa (job #907610) | Cod sursa (job #953289)
Cod sursa(job #953289)
#include <cstdio>
using namespace std;
FILE *f=fopen ("transport.in","r");
FILE *g=fopen ("transport.out","w");
int n,k,v[17001];
int verif(int a){
int i=0,j=0,vol;
while(i<=k && j<=n){
vol=0;
while(vol+v[j]<=a){
vol+=v[j];
j++;
/*if (j>n && i<=k){
return 1;
}*/
}
i++;
}
if(i<=k){
return 1;
}
return 0;
}
int main(){
int m,i,dr=0,st=-1,sol;
fscanf (f,"%d%d",&n,&k);
for (i=1;i<=n;++i){
fscanf (f,"%d",&v[i]);
dr+=v[i];
if (v[i]>st){
st=v[i];
}
}
while (st<=dr){
m=(st+dr)/2;
if (!verif(m)){
st=m+1;
}
else{
dr=m-1;
sol=m;
}
}
fprintf (g,"%d",sol);
return 0;
}