import java.util.*;
public class Main {
public long minDamage(int power, int[] damage, int[] health) {
int n = damage.length;
List<Pair> threat = new ArrayList<>();
for (int i = 0; i < n; i++) {
double timeToKill
= Math.
ceil((double) health
[i
] / power
); threat.add(new Pair(timeToKill / damage[i], i));
}
long totalDamage = 0, cumulativeDamage = 0;
for (int d : damage) cumulativeDamage += d;
for (int i = 0; i < n; i++) {
int idx = threat.get(i).index;
int timeToKill
= (int) Math.
ceil((double) health
[idx
] / power
); totalDamage += cumulativeDamage * timeToKill;
cumulativeDamage -= damage[idx];
}
return totalDamage;
}
class Pair {
double threatLevel;
int index;
Pair(double threatLevel, int index) {
this.threatLevel = threatLevel;
this.index = index;
}
}
public static void main
(String[] args
) { int power = 10;
int[] damage = {3, 5, 2, 4};
int[] health = {20, 15, 10, 25};
Main game = new Main();
long result = game.minDamage(power, damage, health);
System.
out.
println("Minimum total damage: " + result
); }
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIGxvbmcgbWluRGFtYWdlKGludCBwb3dlciwgaW50W10gZGFtYWdlLCBpbnRbXSBoZWFsdGgpIHsKICAgICAgICBpbnQgbiA9IGRhbWFnZS5sZW5ndGg7CiAgICAgICAgTGlzdDxQYWlyPiB0aHJlYXQgPSBuZXcgQXJyYXlMaXN0PD4oKTsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgZG91YmxlIHRpbWVUb0tpbGwgPSBNYXRoLmNlaWwoKGRvdWJsZSkgaGVhbHRoW2ldIC8gcG93ZXIpOwogICAgICAgICAgICB0aHJlYXQuYWRkKG5ldyBQYWlyKHRpbWVUb0tpbGwgLyBkYW1hZ2VbaV0sIGkpKTsKICAgICAgICB9CgogICAgICAgIENvbGxlY3Rpb25zLnNvcnQodGhyZWF0LCAoYSwgYikgLT4gRG91YmxlLmNvbXBhcmUoYS50aHJlYXRMZXZlbCwgYi50aHJlYXRMZXZlbCkpOwoKICAgICAgICBsb25nIHRvdGFsRGFtYWdlID0gMCwgY3VtdWxhdGl2ZURhbWFnZSA9IDA7CiAgICAgICAgZm9yIChpbnQgZCA6IGRhbWFnZSkgY3VtdWxhdGl2ZURhbWFnZSArPSBkOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBpbnQgaWR4ID0gdGhyZWF0LmdldChpKS5pbmRleDsKICAgICAgICAgICAgaW50IHRpbWVUb0tpbGwgPSAoaW50KSBNYXRoLmNlaWwoKGRvdWJsZSkgaGVhbHRoW2lkeF0gLyBwb3dlcik7CiAgICAgICAgICAgIHRvdGFsRGFtYWdlICs9IGN1bXVsYXRpdmVEYW1hZ2UgKiB0aW1lVG9LaWxsOwogICAgICAgICAgICBjdW11bGF0aXZlRGFtYWdlIC09IGRhbWFnZVtpZHhdOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRvdGFsRGFtYWdlOwogICAgfQoKICAgIGNsYXNzIFBhaXIgewogICAgICAgIGRvdWJsZSB0aHJlYXRMZXZlbDsKICAgICAgICBpbnQgaW5kZXg7CgogICAgICAgIFBhaXIoZG91YmxlIHRocmVhdExldmVsLCBpbnQgaW5kZXgpIHsKICAgICAgICAgICAgdGhpcy50aHJlYXRMZXZlbCA9IHRocmVhdExldmVsOwogICAgICAgICAgICB0aGlzLmluZGV4ID0gaW5kZXg7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBpbnQgcG93ZXIgPSAxMDsgIAogICAgICAgIGludFtdIGRhbWFnZSA9IHszLCA1LCAyLCA0fTsgIAogICAgICAgIGludFtdIGhlYWx0aCA9IHsyMCwgMTUsIDEwLCAyNX07ICAKCiAgICAgICAgTWFpbiBnYW1lID0gbmV3IE1haW4oKTsKICAgICAgICBsb25nIHJlc3VsdCA9IGdhbWUubWluRGFtYWdlKHBvd2VyLCBkYW1hZ2UsIGhlYWx0aCk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTWluaW11bSB0b3RhbCBkYW1hZ2U6ICIgKyByZXN1bHQpOwogICAgfQp9Cg==