Cod sursa(job #1456110)

Utilizator valentin50517Vozian Valentin valentin50517 Data 29 iunie 2015 19:49:47
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");

int N,K,A[16002],tot,sum,k=1,tmp,rs,x;

int main(){
	fin >> N >> K;
	for(int i = 0;i<N;i++){
		fin >> A[i];
		tot+=A[i];
	}	
	rs = ceil((float)tot/K);
	for(int i = 0;i<N;i++){
		x+=A[i];
		if(x > rs){
			if(ceil((float)(tot-sum)/rs) > K-k){
				tmp = 0;
				for(int j = i;tmp < x && j<N;j++){
					tmp+=A[j];
				}
				if(rs < tmp){
					rs = min(tmp,x);
					k = ceil((float)sum/rs);
				}
			}else{
				k++;
				x = A[i];
			}
		}
		sum+=A[i];
	}
	fout << rs;
	return 0;
}