Untitled

mail@pastecode.io avatar
unknown
javascript
a month ago
1.6 kB
2
Indexable
Never
function calculateEnergy(A, B, C, D) {
    const energyToBoil = 100 * A;
    const heatingTime = 100 * B;
    const energyToMaintain = C * 60;
    const coolingTime = (100 - 22) / D; // in minutes

    let reheatEnergy = 0;
    let currentHeat = 100;
    let remainingTime = 60; // in minutes

    let canReach = false;

    if (currentHeat - 60 * D <= 22) {
        canReach = true;
        reheatEnergy =  780 * (A/B)
    }

    if (!canReach) {
        for (let time = 60; time > 0; time -= 0.001) {
            currentHeat -= (D) * 0.001;
            const timeToHeat = (100 - currentHeat) * B / 60; // in minutes
            remainingTime -= 0.001;

            if (timeToHeat >= remainingTime || currentHeat == 22) {
                reheatEnergy = remainingTime * (A / (B / 60));
                break;
            } else {
                reheatEnergy = (100 - currentHeat) * timeToHeat;
            }
        }
    }

    return [energyToMaintain, reheatEnergy];
}

let input = "5 10 3 2";
let [A, B, C, D] = input.split(" ").map(Number);

let [energyToMaintain, reheatEnergy] = calculateEnergy(A, B, C, D);


console.log("With inputs 5 10 3 2")
console.log("Output: ", energyToMaintain.toFixed(4));
console.log("Output: ", reheatEnergy.toFixed(4));
console.log()

input = "4.186 15.7 2.31152 0.42";
[A, B, C, D] = input.split(" ").map(Number);

[energyToMaintain, reheatEnergy] = calculateEnergy(A, B, C, D);

console.log("With inputs 4.186 15.7 2.31152 0.42")
console.log("Output: ", energyToMaintain.toFixed(4));
console.log("Output: ", reheatEnergy.toFixed(4));
console.log()