Hi missiondepay,
der Ansatz sähe wohl folgendermaßen aus:
An Tag i: Manni kann nicht arbeiten, wenn er eine Pause braucht bzw. er kann arbeiten, wenn er noch keine braucht. Wenn er arbeiten kann, muss geprüft werden, ob es rentabler wäre zu arbeiten oder eine Pause zu machen (um dann an anderen Tagen arbeiten zu können)
Der Pseudocode:
solve(A, i, streak) {
if (i >= A.length) return 0;
// Pause an Tag i
res1 = solve(A, i++, 0);
if (streak >= 2) return res1;
else {
ai = A[i];
// Zusätzliche Autos ai an Tag i verkauft
res2 = ai + solve(A, i++, streak++);
return max(res1, res2);
}
}
Hier müsstest du dann gegebenenfalls noch dynamische Programmierung einbauen.
Student, Punkte: 10