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
- -2 1 -3
4 -1 3 1
-4 -2 → La somme du sous-tableau en surbrillance est (4 - 1 + 3 + 1) = 7
- 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