Pagini recente » Cod sursa (job #1560323) | Cod sursa (job #1792199) | Cod sursa (job #2876892) | Cod sursa (job #1114757) | Cod sursa (job #456972)
Cod sursa(job #456972)
#include<fstream>
using namespace std;
#define nmax 16002
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[nmax];long long sum;
int citire()
{
f>>n>>k;int i,max=0;
for(i=1;i<=n;i++) {
f>>v[i];sum+=v[i];
if(max<v[i]) max=v[i];
}
return max;
}
int verific(int p)
{
int s=0,i,nr=0;
for(i=1;i<=n;i++)
{
if(s+v[i]<=p) s+=v[i];
else{
nr++;s=v[i];
}
if(nr==k&&i<=n) return 0;
}
return 1;
}
int main()
{
int st,dr,mij;
st=citire();dr=sum;
while(st<dr)
{
mij=(st+dr)/2;
if(verific(mij)) dr=mij;
else st=mij+1;
}
g<<st<<'\n';
}