Pagini recente » Cod sursa (job #281329) | Cod sursa (job #166554) | Cod sursa (job #248854) | Cod sursa (job #1573196) | Cod sursa (job #2197949)
#include <fstream>
#define maxim 16000*16000
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
long long suma;
long long v[16001],n,kk;
int verificare(int k)
{
int numar=1,cant=0,i;
for(i=1;i<=n;i++)
{
cant+=v[i];
if(cant>k)
{
numar++;
cant=v[i];
}
}
if(numar<=kk)return 1;
return 0;
}
long long i,k,p,u,m,rasp,maxx;
int main()
{
f>>n>>kk;
for(i=1;i<=n;i++)
{
f>>v[i];
if(v[i]>maxx)maxx=v[i];
}
p=maxx;
u=maxim;
while(p<=u)
{
m=(p+u)/2;
if(verificare(m)==1)
{
rasp=m;
u=m-1;
}
else p=m+1;
}
g<<rasp;
return 0;
}