Compte tenu de la séquence $ A_1, A_2, A_3, ..., A_N $. Cette séquence de nombres peut contenir des éléments négatifs. Le robot situé à la coordonnée $ 0 $ sur la droite numérique effectue les opérations suivantes dans l'ordre.
Avancez $ A_1 $ dans le sens positif. Avancez $ A_1 $ dans le sens positif et $ A_2 $ dans le sens positif. Transférer $ A_1 $ dans le sens positif, $ A_2 $ dans le sens positif et $ A_3 $ dans le sens positif. ⋮ Avancez $ A_1 $ dans le sens positif, $ A_2 $ dans le sens positif, $ A_3 $ dans le sens positif, $ ... $, $ A_N $ dans le sens positif.
Trouvez la valeur maximale des coordonnées du robot du début à la fin de l'opération.
1≦N≦200000 -10^8≦A_i≦10^8 Toutes les entrées sont des entiers
N A_1 A_2 A_3 ... A_N
n = gets.chomp.to_i
a = gets.chomp.split.map(&:to_i)
#Coordonnées du robot après l'opération
position = 0
#Quantité de mouvement due au mouvement
total_move = 0
#Valeur maximale des coordonnées du début à la fin lorsque l'opération commence à la coordonnée 0
max_move = 0
#Valeur maximale des coordonnées du robot
max_pos = 0
a.each do |move|
total_move += move
if total_move > max_move
max_move = total_move
end
if position + max_move > max_pos
max_pos = position + max_move
end
position += total_move
end
puts max_pos
Recommended Posts