Cod sursa(job #1882372)

Utilizator XIIICristian Boicu XIII Data 17 februarie 2017 10:00:28
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <bits/stdc++.h>
using namespace std;
int c,k,p,n,a[100000],s,m,lo,mid,hi;

int main(){
	ifstream cin("transport.in");
	ofstream cout("transport.out");
	cin>>n>>m;
	for (int i=1;i<=n;i++)
	cin>>a[i];
	lo=1;
	hi=210000000;
	while (lo<=hi){
		mid=lo+(hi-lo)/2;
		p=mid;
		s=0;
		k=1;
		for (int i=1;i<=n;i++)
	    if (s+a[i]<=p) {
		s=s+a[i];
	}
	      else {
	      	k++;
	      	s=a[i];
		  }
		if (k<=m) hi=mid-1;
		    else lo=mid+1;
	}
	cout<<lo;
		 
		  return 0;
}