Pagini recente » Cod sursa (job #2314218) | Cod sursa (job #2580030) | Cod sursa (job #1177980) | Cod sursa (job #3122490) | Cod sursa (job #210786)
Cod sursa(job #210786)
using namespace std;
#include<fstream>
const long long NMAX1=256000000,NMAX2=16005;
long long v[NMAX2], N,K, i;
long long numar(long m)
{
long long s=0,nr=0,i=1;
while(i<=N)
{
if(s<=m)
{
s+=v[i];
i++;
}
else
{
nr++;s=0;
}
}
return nr;
}
long long cautare(long long p, long long u)
{
long long m=(p+u)/2;
while(p!=u)
{
m=(p+u)/2;
if(numar(m)<=K)
u=m;
else
p=m+1;
}
if(numar(p)<K)
return m+1;
else
return m;
}
int main()
{
long long max=0;
ifstream in("transport.in");
ofstream out("transport.out");
in>>N>>K;
for(i=1;i<=N;++i)
{
in>>v[i];
if(v[i]>=max)
max=v[i];
}
out<<cautare(max,NMAX1)<<'\n';
in.close();out.close();
return 0;
}