Cod sursa(job #1198504)

Utilizator tudi98Cozma Tudor tudi98 Data 15 iunie 2014 21:30:47
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <fstream>
#include <iostream>
using namespace std;
#define dim 16003


int a[dim],maxim=-1,n,k,s=0;


int solve(int l,int r){
	if(l==r) return l;
	int mid=(l+r)/2,i,j=1,nr=0;
	while(j!=n+1){
		i=a[j];
		while(i<=mid && j<n+1) j++,i+=a[j];
		nr++;
	}
	if(nr>k) return solve(mid+1,r);
	else if(nr<=k) return solve(l,mid); 
}


int main(){
	
	ifstream f("transport.in");
	ofstream g("transport.out");

	f >> n >> k;
	for(int i=1;i<=n;i++){
		f >> a[i];
		s+=a[i];
		maxim=max(maxim,a[i]);
	}

	g << solve(maxim,s);
}