Pagini recente » Cod sursa (job #3132512) | Cod sursa (job #717515) | Cod sursa (job #3247900) | Cod sursa (job #2333910) | Cod sursa (job #1041700)
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,x,max1,k,s[16004];
bool ok(int m)
{
int a=1,j=0;
for(int i=1;i<=n;i++)
if(i==1&&s[i]==m)a++,j=1;
else if( s[i]-s[j] > m ) a++,j=i-1;
return (a<=k);
}
int cautbin(int s,int d)
{
if(s==d) return s;
else
{
int m=(s+d)/2;
if( ok(m) ) return cautbin(s,m);
else return cautbin(m+1,d);
}
}
int main()
{
f>>n>>k;
for(int i=1;i<=n;i++)
{
f>>x;
s[i]=s[i-1]+x;
//m0ax= (max<x) ? x : max;
if(max1<x) max1=x;
}
g<<cautbin(max1,s[n]);
return 0;
}