[Bei Coder] Lösen Sie das ABC182 D-Problem mit Ruby

Problem

AtCoder Beginner Contest 182

D - Wandering

Bei gegebener Reihenfolge $ A_1, A_2, A_3, ..., A_N $. Diese Zahlenfolge kann negative Elemente enthalten. Der Roboter an der Koordinate $ 0 $ in der Zahlenreihe führt die folgenden Operationen der Reihe nach aus.

Gehe vorwärts $ A_1 $ in die positive Richtung. Schieben Sie $ A_1 $ in die positive Richtung und $ A_2 $ in die positive Richtung. Leiten Sie $ A_1 $ in die positive Richtung, $ A_2 $ in die positive Richtung und $ A_3 $ in die positive Richtung weiter. ⋮ Weiterleiten von $ A_1 $ in die positive Richtung, $ A_2 $ in die positive Richtung, $ A_3 $ in die positive Richtung, $ ... $, $ A_N $ in die positive Richtung.

Ermitteln Sie den Maximalwert der Roboterkoordinaten vom Beginn bis zum Ende der Operation.

Zwang

1≦N≦200000 -10^8≦A_i≦10^8 Alle Eingaben sind Ganzzahlen

Eingang

N A_1 A_2 A_3 ... A_N

Antworten

n = gets.chomp.to_i
a = gets.chomp.split.map(&:to_i)

#Koordinaten des Roboters nach dem Betrieb
position = 0

#Bewegungsumfang aufgrund von Bewegung
total_move = 0

#Maximalwert der Koordinaten von Anfang bis Ende, wenn die Operation bei Koordinate 0 beginnt
max_move = 0

#Maximalwert der Roboterkoordinaten
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

[Bei Coder] Lösen Sie das ABC183 D-Problem mit Ruby
[Bei Coder] Lösen Sie das ABC182 D-Problem mit Ruby
Lösen mit Ruby AtCoder ABC177 D Union Find
[Competition Pro] Löse Rucksackprobleme mit Ruby
AtCoder ABC127 D Hash mit Ruby 2.7.1 zu lösen
[Anfänger] Lösen wir das AtCoder-Problem mit Ruby, während wir uns den Artikel ansehen!
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
[At Coder] Einführung von Competitive Pro mit Ruby
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby mit Wiederholung zu lösen.
Atcoder ABC70 D Problem
AtCoder ABC129 D 2D-Array In Ruby und Java gelöst
Löse das diskrete Logarithmusproblem mit einem beliebigen Mod
Lösen wir das FizzBuzz-Problem!
[Ruby] Problem mit der if-Anweisung
AtCoder ABC 136 D Suche nach Breitenpriorität Gelöst in Ruby, Perl und Java
Programmieren mit Ruby (unterwegs)
Lösen Sie ARC104 D Multiset Mean mit Scala, Java, C ++, Ruby, Perl, Elixir
Lösung des Rucksackproblems mit dynamischer Planung
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby zu lösen (Zeitlimit 10 Minuten).
Rubinproblem ⑦
[Ruby] Definieren Sie die Hierarchie gleichzeitig mit der Initialisierung von Hash mit der Tap-Methode
Verwalten Sie die Version von Ruby selbst mit rbenv
Ein kurzer Blick auf das Monty Hall-Problem
Bestimmen Sie die aktuelle Seite mit Ruby on Rails
[Java] Versuchen Sie, das Fizz Buzz-Problem zu lösen
Ich habe die Anzahl der Taxis mit Ruby überprüft