Sous-tableau de somme maximale

Étant donné un tableau de n entiers, il faut identifier un sous-tableau contigu dont la somme des valeurs est la plus grande possible.

Entrée

La première ligne de l’entrée contient un entier n – le nombre d’éléments du tableau (1 ≤ n ≤ 10^6).
La ligne suivante contient n entiers séparés par un espace, représentant les éléments du tableau (-10^9 < a_i < 10^9).

Sortie

Le programme doit afficher un seul entier – la somme la plus élevée que l’on puisse obtenir parmi tous les sous-tableaux possibles du tableau.

Exemples

Entrée
Sortie
9 -2 1 -3 4 -1 3 1 -4 -2
7
10 1 -2 3 4 -3 1 7 -10 -20 4
12

Explication

  1. -2 1 -3 4 -1 3 1 -4 -2 → La somme du sous-tableau en surbrillance est (4 - 1 + 3 + 1) = 7
  1. 1 -2 3 4 -3 1 7 -10 -20 4 → La somme de ce sous-tableau est (3 + 4 - 3 + 1 + 7) = 12
 
Pouvez-vous rendre cela encore meilleur 😎 ?
Il est possible de résoudre ce problème sans employer de tableaux supplémentaires. Seriez-vous capable de procéder ainsi ?
 

Constraints

Time limit: 3 seconds

Memory limit: 512 MB

Output limit: 1 MB

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