Pagini recente » Cod sursa (job #2687993) | Cod sursa (job #56245) | Cod sursa (job #3274028) | Cod sursa (job #1658117) | Cod sursa (job #1641587)
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n,s,k,st,v[16010],m,dr,maxim,i,j,mid,c,x;
int main () {
fin >>n>>k;
s=0;
maxim=-1000000;
for (i=1;i<=n;i++){
fin>>v[i];
s=s+v[i];
if(v[i]>maxim)
maxim=v[i];
}
st=maxim;
dr=s;
while (st<=dr){
mid=(st+dr)/2;
maxim=-1;
c=0;
s=0;
for(i=1;i<=n;i++){
s=s+v[i];
if(s+v[i+1]>mid){
c++;
s=0;
}
if(i==n && s!=0)
c++;
}
if(c==k){
m=c;
for(i=mid;i>=1;i--){
c=0;
for(j=1;j<=n;j++){
s=s+v[j];
if(s+v[j+1]>i){
c++;
s=0;
}
if(j==n && s!=0)
c++;
}
if(c>k){
fout<<i+1;
return 0;
}
}
}
if(c>k)
st=mid+1;
else
dr=mid-1;
}
}