Pagini recente » Cod sursa (job #2958969) | Cod sursa (job #631169) | Cod sursa (job #1104434) | Cod sursa (job #2551859) | Cod sursa (job #1041612)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[16001];
int s,d;
int main()
{int i,sum=0;
f>>n>>k;
for(i=1;i<=n;i++){
f>>v[i];
sum+=v[i];
if(v[i]>s)s=v[i];
}
d=sum*2;
while(s<=d)
{int t=1,sum=0;
int m=(s+d)/2;
for(i=1;i<=n;i++)
{
if(sum+v[i]>m){t++;
sum=v[i];
}
else sum+=v[i];
}
if(t<=k){d=m-1;}
else {s=m+1;}
}
g<<s;
f.close();
g.close();
return 0;
}