Pagini recente » Cod sursa (job #2882769) | Cod sursa (job #2638775) | Cod sursa (job #1495120) | Cod sursa (job #2406607) | Cod sursa (job #1647289)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int a[16005],n,Max,k,i,d;
long long mij,r=16000*16000,sol;
int transporturi(int x)
{
int contor=1,s1=0;
for(i=1;i<=n;i++)
{
if((a[i]+s1)<=x)
s1=s1+a[i];
else
{
contor++; s1=a[i];
}
}
return contor;
}
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>a[i];
if(a[i]>Max) Max=a[i];
}
while(Max<=r)
{
mij=(Max+r)/2;
d=transporturi(mij);
if(d<=k)
{
sol=mij;
r=mij-1;
}
else Max=mij+1;
}
fout<<sol;
}