Pagini recente » Cod sursa (job #1942388) | Cod sursa (job #665555) | Cod sursa (job #2601621) | Cod sursa (job #141410) | Cod sursa (job #1527793)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
long v[16001],n,k,mij;
long test(long Max)
{
long S=0,i,ck=0;
for(i=1; i<=n; i++)
{
if(S+v[i]<=Max) S+=v[i];
else
{
S=v[i];
ck++;
}
}
return ck+1;
}
int cautare(long s, long d)
{
if(s>=d) return mij;
mij=(s+d)/2;
if(test(mij)<=k) cautare(s,mij-1);
else cautare(mij,d);
}
int main()
{
long i,Max=0,sum=0;
f>>n>>k;
for(i=1; i<=n; i++)
{
f>>v[i];
if(v[i]>Max) Max=v[i];
sum+=v[i];
}
g<<cautare(Max,sum);
return 0;
}