Pagini recente » Cod sursa (job #641707) | tema | Borderou de evaluare (job #996972) | Cod sursa (job #1086673) | Cod sursa (job #1041707)
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,x,max1,k,s[16004],a,j;
int cautbin(int st,int dr)
{
if(st==dr) return st;
else
{
int m=(st+dr)/2;
a=1,j=0;
if( s[1]==m ) j++;
for(int i=2 ; i<=n ; i++)
if( s[i]-s[j] > m ) a++,j=i-1;
if( a<=k ) return cautbin(st,m);
else return cautbin(m+1,dr);
}
}
int main()
{
f>>n>>k;
for(int i=1;i<=n;i++)
{
f>>x;
s[i]=s[i-1]+x;
if(max1<x) max1=x;
}
g<<cautbin(max1,s[n]/2)<<'\n';
return 0;
}