49,919
社区成员




import java.util.Scanner;
public class Main {
public class Magician {
public int mana;
public int maxMana;
public int regenerateNum;
public int timeT;
Magician(int mana, int maxMana, int regenerateNum) {
this.mana = mana;
this.maxMana = maxMana;
this.regenerateNum = regenerateNum;
timeT = 0;
}
public int absorbMana(int currentTime) {
int result = 0;
result = mana + (currentTime - timeT) * regenerateNum < maxMana ? mana
+ (currentTime - timeT) * regenerateNum
: maxMana;
// System.out.println(result);
timeT = currentTime;
mana = 0;
return result;
}
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int numOfMagician = sc.nextInt();
Magician magicianList[] = new Magician[numOfMagician];
int sj, mj, rj;
Main test = new Main();
for (int i = 0; i < numOfMagician; i++) {
sj = sc.nextInt();
mj = sc.nextInt();
rj = sc.nextInt();
magicianList[i] = test.new Magician(sj, mj, rj);
}
int numOfOperation = sc.nextInt();
int ti, li, ri;
int result = 0;
for (int i = 0; i < numOfOperation; i++) {
ti = sc.nextInt();
li = sc.nextInt() - 1;
ri = sc.nextInt() - 1;
while (li <= ri) {
result += magicianList[li].absorbMana(ti);
li++;
// System.out.println("absorb "+li+"result is "+result);
}
}
System.out.println(result);
}
}