Pagini recente » Cod sursa (job #1314864) | Cod sursa (job #1051374) | Cod sursa (job #2153414) | Cod sursa (job #1643574) | Cod sursa (job #1825853)
#include <iostream>
#include <fstream>
#define N 16010
#define INF 1000000000
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
long n,k,v[N],i,j,st,sum,dr,max1=-13,mij,rez;
bool trans(long n,long x,long k)
{
long sum=0,nr=1;
for(long i=1;i<=n;i++)
{
sum=sum+v[i];
if(sum>=x)
{
nr++;
sum=v[i];
}
}
if(nr<=k)
return true;
return false;
}
long bin(long st,long dr,long k,long n)
{
long mij;
while(dr-st>1)
{
mij=(st+dr)/2;
bool ok=trans(n,mij,k);
if(!ok)
st=mij;
else
dr=mij;
}
return dr;
}
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>v[i];
if(max1<v[i])
{
max1=v[i];
}
sum=sum+v[i];
}
g<<bin(max1-1,INF,k,n);
}