Cod sursa(job #2408110)

Utilizator Neamtu93George Neamtu93 Data 17 aprilie 2019 17:07:55
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
using namespace std;

ifstream fin("transport.in");
ofstream fout("transport.out");


int n,k,v[16001];

bool cam_ok(int C){
	int nr_trans=0,c=0,i=1;
	
	
	while(i<=n){
	while(c+v[i]<=C && i<=n){
		c+=v[i];
		i++;
	}
	nr_trans++;
	c=0;
	
	}
	if(nr_trans<=k) return true;
	return false;
}

int main(){
	int max=0,sum=0;
	fin>>n>>k;
	for(int i=1;i<=n;++i){
		fin>>v[i];
		if(v[i]>max)	
			max=v[i];
		sum+=v[i];
		
	}
	
	int st=max,dr=sum,mij,poz=-1;
	while(st<=dr){
		mij=(st+dr)/2;
		if(cam_ok(mij))
		{
			poz=mij;
			dr=mij-1;
		}
		else
			st=mij+1;
	}

	fout<<poz;
	
	fin.close();
	fout.close();
	return 0;
	
	
}