Cod sursa(job #1041612)

Utilizator ciuschiDragos-Constantin Biciusca ciuschi Data 25 noiembrie 2013 22:48:28
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[16001];
int s,d;
int main()
{int i,sum=0;
	f>>n>>k;
	for(i=1;i<=n;i++){
		f>>v[i];
		sum+=v[i];
		if(v[i]>s)s=v[i];
	}
	d=sum*2;
	while(s<=d)
	{int t=1,sum=0;
	int m=(s+d)/2;
	for(i=1;i<=n;i++)
		{
			if(sum+v[i]>m){t++;
			sum=v[i];
			}
			else sum+=v[i];
			
		}
	if(t<=k){d=m-1;}
	else {s=m+1;}
	}
	g<<s;
	f.close();
	g.close();
	return 0;
}