function arrayCumulativeSum(arr) {
const cumulativeSum = [];
let sum = 0;
for (const num of arr) {
sum += num;
cumulativeSum.push(sum);
}
return cumulativeSum;
}
function divideLand(land, farmers) {
const totalArea = land.reduce((sum, area) => sum + area, 0);
const averageArea = Math.floor(totalArea / farmers);
const cumulativeLand = arrayCumulativeSum(land);
const result = new Array(farmers).fill(0);
let currentFarmer = 0;
for (let i = 0; i < land.length; i++) {
if (cumulativeLand[i] <= (currentFarmer + 1) * averageArea) {
result[currentFarmer] = cumulativeLand[i];
} else {
currentFarmer++;
result[currentFarmer] = cumulativeLand[i];
}
}
for (let i = 0; i < farmers; i++) {
result[i] = i > 0 ? result[i] - result[i - 1] : result[i];
}
return result;
}
const land = [20, 30, 10, 40];
const farmers = 3;
const result = divideLand(land, farmers);
console.log(result);
const land1 = [20, 30, 10, 40];
const farmers1 = 3;
const result1 = divideLand(land1, farmers1);
console.log(result1);
const land2 = [10, 15, 20, 25, 30];
const farmers2 = 4;
const result2 = divideLand(land2, farmers2);
console.log(result2);