Pagini recente » Cod sursa (job #1726406) | Cod sursa (job #1905067) | Cod sursa (job #2691884) | Monitorul de evaluare | Cod sursa (job #2279581)
#include<fstream>
using namespace std;
int v[16001];
int n, k, i, s, maxim, st, dr, c, t, ramas;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++){
fin>>v[i];
s += v[i];
if(v[i]>maxim)
maxim=v[i];
}
st=maxim;
dr=s;
while(st<=dr){
c=(st+dr)/2;
t=1;
ramas=c-v[1];
for(i=2;i<=n;i++)
if (v[i]<=ramas)
ramas=ramas-v[i];
else{
t++;
ramas=c-v[i];}
if(t<=k)
dr=c-1;
else
st=c+1;
}
fout<<st;
return 0;
}