Pagini recente » Cod sursa (job #294162) | Cod sursa (job #134701) | Cod sursa (job #919134) | Cod sursa (job #2802100) | Cod sursa (job #2979592)
#include <fstream>
using namespace std; ifstream f ("transport.in");ofstream c ("transport.out");int v[16001];int n,k,i,st,dr,m,x,vmax=-1,sum=0,sol=0;int calz(int cap){int j,s=0,z=0;for(j=1;j<=n;j++){if(s+v[j]<=cap){s+=v[j];}else if(s+v[j]>cap){z++;s=v[j];}}if(s>0)z++;return z;}int main(){f>>n>>k;sum=0;for(i=1;i<=n;i++){f>>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;}}c<<sol;}