Fișierul intrare/ieșire inundatie.in, inundatie.out Sursă ONI 2022, clasa a 6-a
Autor Cristian Frâncu Adăugată de avatar george.barbu George Barbu george.barbu
Timp de execuție pe test 0.6 sec Limită de memorie 65536 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

Inundație

Fie un șir de N coloane de ciment (pozițiile lor fiind numerotate de la 1 la N) de aceeași lățime și diverse înălțimi. Ele sunt încadrate la stânga (poziția 0) și la dreapta (poziția N+1) de ziduri foarte înalte. Apa începe să curgă de deasupra primei coloane, câte o pătrățică de apă pe secundă. Apa se acumulează dacă are pereți în stânga și în dreapta, altfel curge mai jos către dreapta. Deasupra fiecărei coloane de ciment se poate forma astfel o coloană de apă, cu înălțimea egală cu numărul de pătrățele de la nivelul apei până la zona de contact cu coloana de ciment.

Cerințe

  • Care este înălțimea H a celei mai înalte coloane de apă după ce apa a ajuns peste tot la înălțimea celei mai înalte coloane de ciment?
  • Care este numărul T de secunde în care apa ajunge să acopere coloana numărul P?
  • Care este poziția D a celei mai din dreapta coloane acoperită de apă după S secunde?
  • Care este poziția R a celei mai din stânga coloane pe care o putem reduce cu o unitate astfel încât apa să ajungă cât mai repede la coloana P?

Date de intrare

Fișierul de intrare inundatie.in conține pe prima linie un număr natural C, reprezentând cerința ce trebuie rezolvată (1,2,3, sau 4).
Pe a doua linie numerele N, P și S despărțite prin câte un spațiu cu semnificația din enunț.
Pe a treia linie se găsesc N numere naturale separate prin câte un spațiu ce reprezintă înălțimile coloanelor.

Date de ieșire

În fișierul de ieșire inundatie.out va conține un singur număr, astfel:

  • Dacă C = 1: înălțimea H cu semnificația de mai sus.
  • Dacă C = 2: timpul T cu semnificația de mai sus.
  • Dacă C = 3: poziția D cu semnificația de mai sus.
  • Dacă C = 4: poziția R cu semnificația de mai sus.

Restricții

  • C ∈ {1,2,3,4};
  • 3N100.000
  • 1 ≤ înălțimea oricărei coloane din șir ≤ 20.000
  • 1 ≤ PN
  • 1 ≤ S ≤ 100.000
  • O coloană de înălțime h este acoperită de apă dacă apa a ajuns la înălțimea h.

Observații legate de distribuția punctelor:

  • Pentru cerința C = 1 se pot obține 11 puncte;
  • Pentru cerința C = 2 se pot obține 25 puncte;
  • Pentru cerința C = 3 se pot obține 33 puncte;
  • Pentru cerința C = 4 se pot obține 31 puncte;

Exemple

inundatie.in inundatie.out
1
32 15 45
8 5 5 4 3 3 7 5 4 3 3 5 4 3 4 5 6 5 4 4 3 4 5 4 3 2 1 2 3 4 5 9
8
2
32 15 45
8 5 5 4 3 3 7 5 4 3 3 5 4 3 4 5 6 5 4 4 3 4 5 4 3 2 1 2 3 4 5 9
21
3
32 15 45
8 5 5 4 3 3 7 5 4 3 3 5 4 3 4 5 6 5 4 4 3 4 5 4 3 2 1 2 3 4 5 9
29
4
32 15 45
8 5 5 4 3 3 7 5 4 3 3 5 4 3 4 5 6 5 4 4 3 4 5 4 3 2 1 2 3 4 5 9
7

Explicații

Toate exemplele se referă la figura de mai sus, diferă doar numărul cerinței. În toate N = 32, P = 15 și S = 45.
Primul exemplu: Linia portocalie de înălțime 9 este nivelul apei la momentul când toate coloanele devin acoperite de apă. Cea mai înaltă coloană de apă este cea cu numărul 27, având 8 pătrățele de apă.
Al doilea exemplu: În imaginea de mai sus, liniile roșii arată nivelurile apei la momentul când apa acoperă coloana de la poziția P = 15. Observăm că sunt 21 de pătrățele de apă sub linie, deci este nevoie de 21 de secunde pentru a acoperi coloana 15.
Al treilea exemplu: Linia verde arată nivelul apei după 42 de secunde. Ea acoperă coloana numărul 29. Lăsând apa să curgă încă 3 secunde (până la cele S = 45 secunde) nivelul nu se ridică suficient pentru a ajunge la coloana 30 deoarece ar mai fi nevoie de 5 pătrățele de apă, adică încă 5 secunde.
Al patrulea exemplu: Cea mai din stânga coloană pe care o vom reduce cu unu este coloana numărul 7. Astfel apa va ajunge cu 5 secunde mai devreme în coloana P = 15. Linia maro (linia de apă de înălțime 6 care se întinde de la coloana 2 la coloana 6) arată cele 5 pătrățele cu care reducem timpul. Orice altă coloană am reduce nu va ajunge așa repede.

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 5 categorii