Pagini recente » Cod sursa (job #2209311) | Cod sursa (job #2229734) | Cod sursa (job #403207) | Cod sursa (job #1991615) | Cod sursa (job #1943281)
/*
infoarena.ro/problema/transport
*/
#include<fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
short int v[160005],n,k;
bool check(int x)
{
int c=0,s=0,i;
for(i=1;i<=n&&c<=k;i++)
{
if(s+v[i]<=x)
s+=v[i];
else
{
s=v[i];
c++;
}
}
c++;
if(c<=k)
return 1;
else
return 0;
}
int main()
{
int i;
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>v[i];
int l=1,r=257000000,mid,sol;
while(l<=r)
{
mid=(l+r)/2;
if(check(mid))
{
//fout<<check(mid)<<" "<<mid<<endl;
sol=mid;
r=mid-1;
}
else
l=mid+1;
}
fout<<sol<<'\n';
fin.close();
fout.close();
return 0;
}