GRID//RUNNER

STOCK COM COOLDOWN MEDIUM

problema

Você recebe um array prices, onde prices[i] é o preço de uma ação no dia i. Encontre o lucro máximo. Você pode fazer quantas transações quiser (comprar e depois vender), com duas regras:

· Você só pode ter uma ação por vez: precisa vender antes de comprar de novo.
· Depois de vender, vem um dia de cooldown: no dia seguinte à venda você não pode comprar.

Exemplo 1 · prices = [1, 2, 3, 0, 2] → 3

Comprar (1), vender (2), cooldown, comprar (0), vender (2). Lucro (2−1) + (2−0) = 3. Vender no 3 daria 2, mas o cooldown impediria comprar no 0.

Exemplo 2 · prices = [1] → 0

Com um dia só não dá para comprar e vender.

Restrições: 1 ≤ prices.length ≤ 5000 · 0 ≤ prices[i] ≤ 1000