Cod sursa(job #428268)

Utilizator de3de3Ilinca Diana Andreea de3de3 Data 29 martie 2010 08:19:54
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<fstream.h>
ifstream f("transport.in");
ofstream g("transport.out");
int v[16001], n, k, p ,i;
int suma, u, m;
int pot(int c){
	int nr=1, cc=0;
	for(int i=1;i<=n;i++){
		if(cc+v[i]<=c)
			cc+=v[i];
		else{
			nr++;
			cc=v[i];
		}
		if(nr>k) return 0;
	}
    return 1;
}
int main(){
	f>>n>>k;
	for(i=1;i<=n;i++){
		f>>v[i];
		suma+=v[i];
	}
	p=1; u=suma;
	while(p<=u){
		m=(p+u)/2;
		if(pot(m))
			u=m-1;
		else 
			p=m+1;
	}
	g<<p;
	f.close();
	g.close();
	return 0;
}