Pagini recente » Cod sursa (job #3287262) | Cod sursa (job #724498) | Cod sursa (job #1327834) | Cod sursa (job #2934182) | Cod sursa (job #2979583)
#include <fstream>
#include <iostream>
using namespace std; ifstream fin ("transport.in");ofstream fout ("transport.out");int v[30001];int n,k,i,st,dr,m,x,vmax=-1,sum=0,sol=0;int calz(int cap){int j,s=0,zile=0;for(j=1;j<=n;j++){if(s+v[j]<=cap){s+=v[j];}else if(s+v[j]>cap){zile++;s=v[j];}}if(s>0)zile++;return zile;}int main(){fin>>n>>k;sum=0;for(i=1;i<=n;i++){fin>>v[i];sum+=v[i];if(v[i]>vmax)vmax=v[i];}st=vmax;dr=sum;while(st<=dr){m=(st+dr)/2;x=calz(m);if(x>k){st=m+1;}else{dr=m-1;sol=m;}}fout<<sol;return 0;}