Pagini recente » Cod sursa (job #1468140) | Cod sursa (job #1843930) | Cod sursa (job #2837812) | Cod sursa (job #2702097) | Cod sursa (job #1521550)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[16006];
bool verific (int x){
int nr=0,i=1,t=0;
while(i<=n&&nr<=k){
if(t+v[i]<=x)
t+=v[i];
else
nr++,t=0,i--;
i++;
}
if(t!=0)
nr++;
if(nr<=k)
return true;
else
return false;
}
int main()
{int l=0,r=0;
f>>n>>k;
for(int i=1;i<=n;i++){
f>>v[i];
if(l<v[i])
l=v[i];
r+=v[i];
}
/*if(r%k!=0)
r/=k+1;
else
r/=k;*/
if(l>r)
{int aux=r;
r=l;
l=aux;}
while(l<=r){
int mij=(l+r)/2;
if(verific(mij))
r=mij-1;
else
l=mij+1;
}
g<<l;
return 0;
}