Proteggere le miniere

Quando si gioca ai videogiochi, la gestione delle risorse è essenziale.
Ci sono n miniere d’oro situate in diverse coordinate . Ognuna di queste miniere può produrre una certa quantità d’oro . Tuttavia, difenderle dai nemici richiede molta energia. Fortunatamente, è possibile ottenere energia anche da ogni singola miniera d’oro, poiché ciascuna produce una quantità di energia pari a .
Si desidera selezionare un intervallo contiguo di miniere e proteggerle, in modo da massimizzare la quantità d’oro guadagnata. Quando si sceglie un intervallo, è necessario avere almeno tanta energia quanto è la lunghezza dell’intervallo per poterlo difendere.
Qual è la massima quantità d’oro che si può ottenere dalle miniere?

Input

La prima riga dell’input contiene un singolo intero n (1 ≤ n ≤ ).
Le successive n righe contengono 3 interi separati da uno spazio, ossia (1 ≤ ), dove è la coordinata della miniera d’oro, è la quantità di oro che produce, ed è la quantità di energia che fornisce. Tutte le coordinate sono diverse tra loro e sono fornite in ordine crescente.

Output

Il programma deve stampare la massima quantità d’oro che si può ottenere in sicurezza dalle miniere.

Esempi

Ingresso
Uscita
4 1 5 1 2 7 2 5 4 1 8 15 1
16
2 1 4 1 4 5 1
5

Spiegazione

  1. Primo esempio → 16
    1. X
      1
      2
      3
      4
      5
      6
      7
      8
      Energy
      1
      2
      1
      1
      Gold
      5
      7
      4
      15
      È possibile prendere le prime 3 miniere ⇒ la lunghezza dell’intervallo è 5-1 = 4 (le miniere sono agli estremi delle coordinate), l’energia prodotta dalle miniere è 1+2+1 = 4 e la quantità di oro ricavata è 5+7+4 = 16.
  1. Secondo esempio → 5
    1. X
      1
      2
      3
      4
      Energy
      1
      1
      Gold
      4
      5
      Si può selezionare l’ultima miniera d’oro ⇒ la lunghezza dell’intervallo è 0, l’energia prodotta dalla miniera è 1 e l’oro ottenuto è 5.
Hint 1
Potrebbe essere necessario applicare tecniche diverse nella parte sinistra e in quella destra durante un approccio di tipo divide & conquer.
Hint 2
Si può provare a calcolare le risposte che attraversano il punto mediano.

Constraints

Time limit: 8 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue