Pagini recente » Cod sursa (job #379219) | Cod sursa (job #951195) | Cod sursa (job #3178802) | Cod sursa (job #1907961) | Cod sursa (job #788436)
Cod sursa(job #788436)
#include <fstream>
#define inputFile "transport.in"
#define outputFile "transport.out"
#define MAX 16000
using namespace std;
int n, k, totalSum;
int vols[MAX];
bool possible(int pos){
int i=-1, s=0, nr=0;
while(nr <= k && i+1<n ){
s = 0;
while(s+vols[i+1] < pos && i+1<n){
i++;
s+= vols[i+1];
}
nr++;
}
if(nr <= k)
return true;
return false;
}
int main(){
ifstream in(inputFile);
in>>n>>k;
for(int i=0; i<n; i++){
in>>vols[i];
totalSum += vols[i];
}
int start = 0;
while(start <= totalSum){
int mid = (start + totalSum)/2;
if(possible(mid))
totalSum = mid-1;
else
start = mid + 1;
}
ofstream output;
output.open(outputFile);
output << start;
output.close();
}