Pagini recente » Cod sursa (job #1937137) | Cod sursa (job #174825) | Cod sursa (job #2095683) | Cod sursa (job #2152147) | Cod sursa (job #2619344)
#include <bits/stdc++.h>
using namespace std;
int v[16000*16000],n,k;
int M=16000*16000;
ifstream in ("transport.in");
ofstream out ("transport.out");
bool verificare(int volumcurent)
{
int volum=0,nrt=0;
for(int i=0; i<n; i++)
{
if(v[i]>volumcurent)
return 0;
if(v[i]>volum)
{
nrt++;
volum=volumcurent;
}
volum-=v[i];
}
if (nrt<=k) return 1;
return 0;
}
int main()
{
int i,left=1,right=M;
in>>n>>k;
for(i=0; i<n; i++)
{
in>>v[i];
}
while(left<right)
{
int mid =(left+right)/2;
if(verificare(mid))
{
right =mid;
}
else
{
left =mid+1;
}
}
out<<left;
return 0;
}