class Result {
public static void main(String[] args) {
int energy = 15;
List<Day> days = new ArrayList<>();
[Link](new Day(0, 2, 4));
[Link](new Day(1, 5, 4));
[Link](new Day(2, 10, 4));
[Link](new Day(3, 8, 1));
[Link](new Day(4, 5, 5));
[Link](new Day(5, 3, 1));
[Link](new Day(6, 1, 4));
[Link](new Day(7, 4, 4));
[Link](new Day(8, 6, 3));
[Link](new Day(9, 8, 5));
[Link](new Day(10, 6, 1));
int result = calculateProfit(
[Link](),
[Link]().map(Day::getEarning).collect([Link]()),
[Link]().map(Day::getCost).collect([Link]()),
energy
);
[Link](result);
}
public static int calculateProfit(int n, List<Integer> earning, List<Integer>
cost, int e) {
[Link]("int energy = " + e + ";");
[Link]("List<Day> days = new ArrayList<>();");
List<Day> days = new ArrayList<>();
for (int i = 0; i < n; i++) {
Day day = new Day(i, [Link](i), [Link](i));
[Link](day);
[Link](day);
}
List<Day> profitableDays = [Link]()
.filter(Day::isProfitable)
.collect([Link]());
int energyLimit = e;
int totalProfit = 0;
if ([Link]()) {
totalProfit = [Link]([Link]() - 1).getEarning() * e;
} else {
Day startDay = new Day(-1, Integer.MIN_VALUE, Integer.MAX_VALUE);
for (Day day : profitableDays) {
if ([Link]() > [Link]()) {
startDay = day;
} else {
break;
}
}
int startDayIndex = [Link](0, [Link](startDay));
for (int i = startDayIndex; i < [Link](); i++) {
Day day = [Link](i);
int profit = e * [Link]();
e = 0;
if ([Link]() != (n - 1)) {
e = [Link](profit / [Link](), energyLimit);
profit -= e * [Link]();
}
totalProfit += profit;
}
}
return totalProfit;
}
}
class Day {
private int index;
private int earning;
private int cost;
private int profit;
public Day(int index, int earning, int cost) {
[Link] = index;
[Link] = earning;
[Link] = cost;
[Link] = earning - cost;
}
public int getIndex() {
return index;
}
public int getEarning() {
return earning;
}
public int getCost() {
return cost;
}
public int getProfit() {
return profit;
}
public boolean isProfitable() {
return profit > 0;
}
@Override
public String toString() {
return "[Link](new Day(" + index +
", " + earning +
", " + cost +
"));";
}
}