DificilăC++17

Apa reținută între coloane

Cerință

Un profil este format din n coloane verticale de lățime 1 și înălțimi nenegative. După ploaie, apa curge în afara profilului la cele două capete. Calculează volumul de apă care rămâne între coloane.

Tip de problemă: Trapping Rain Water.

Date de intrare

Se citește n, apoi cele n înălțimi.

Date de ieșire

Afișează volumul total de apă.

Restricții

1 ≤ n ≤ 2000; 0 ≤ h[i] ≤ 1000000000. Rezultatul se memorează în long long.

Observații

Raportată de un candidat: Trapping Rain Water la Goldman Sachs (Coderpad, Salt Lake City, relatare publicată în mai 2024).

Adaptare Algo25: Coloane de lățime unitară și rezultat întreg pe 64 de biți.

Sursa relatării: https://leetcode.com/discuss/post/5199331/Goldman-Sachs-or-Coderpad-or-Trapping-Rain-water-or-Winner-of-circular-game/

Exemple

2 EXEMPLE

Exemplul 1

Exemplul 1 pentru „Apa reținută între coloane”. Înălțimile sunt cele de sub coloane. Fiecare celulă albastră reprezintă o unitate de apă. Apa reținută: 0 + 3 + 4 + 1 + 3 + 0 = 11. Apa de deasupra marginii mai joase se scurge.Exemplul 1, reprezentat vizual. Înălțimile sunt cele de sub coloane. Fiecare celulă albastră reprezintă o unitate de apă.Mărește schema ↗

Date de intrare

6
4 1 0 3 1 5

Date de ieșire

11

Exemplul 2

Date de intrare

4
0 1 2 3

Date de ieșire

0
UN MIC IMPULS

Ai nevoie de un indiciu?

Descoperă doar cât îți trebuie. Indiciile nu scad punctajul.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Se verifică autentificarea…

Deschide atelierul cu sugestii și teste locale în 4 limbaje →

Un pas, apoi următorul.Înapoi sus ↑