Pagini recente » Cod sursa (job #1283709) | Cod sursa (job #826261) | Cod sursa (job #1749638) | Cod sursa (job #1703362) | Cod sursa (job #2375546)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,v[16004],maxx=-1,i,sum,st,dr,mij,ut,ver,e;
int main()
{
fin>>n>>k;
for (i=1;i<=n;i++){
fin>>v[i];
if (v[i]>=maxx)maxx=v[i];
sum+=v[i];
}
st=maxx;
dr=sum;
ut=(st+dr)/2;
while (dr!=st){
e=0;
mij=(st+dr)/2;
i=1;
ver=0;
while (i<=n){
ver+=v[i];
if (ver>mij){
ver-=v[i];
}
if (ver>=mij)e++;
i++;
}
if (e>k)st=mij+1;
else dr=mij-1;
if (e==k){
if (mij<ut)ut=mij;
}
}
fout<<mij;
return 0;
}