Cerința
Suntem în anul 2050. Resursele de apă de pe planeta noastră sunt limitate din cauza schimbărilor climatice. Sistemul de stocare a apei al unui oraș a evoluat în timp, ajungându-se la o configurație flexibilă formată din n
pereţi verticali paraleli p1,p2,⋯pn. Fiecare perete pi are forma unui dreptunghi cu înălțimea ai şi lăţimea de 1 km
, iar oricare doi pereţi alăturaţi pi,pi+1 se află la distanţa de 1 km
, faţă în faţă. Fiecare dintre acești pereți poate fi coborât complet, prin culisare pe verticală, iar un bazin poate fi format din oricare doi pereți pi,pj (rămaşi după coborârea tuturor celorlalți) şi din pereţi laterali, care întregesc conturul de bazin. Capacitatea unui bazin este dată de produsul dintre înălţimea peretelui celui mai mic dintre cei doi pi,pj din care este format bazinul şi distanța dintre aceşti doi pereți. Sistemul de stocare poate fi descris de un șir de numere naturale a1,a2,…..anstrict pozitive, unde a1reprezintă înălțimea în kilometri a peretelui p1, a2 reprezintă înălțimea în kilometri a peretelui p2 și așa mai departe.
Scrieți un program care primește la intrare numărul de pereți n≥2
și înălțimile acestora a1,a2,⋯an , iar apoi determină și scrie capacitatea maximă de apă care poate fi stocată în acel oraș.
Date de intrare
Fișierul de intrare fmi_orase1.in
conține pe prima linie numărul n
, iar pe a doua linie n
numere naturale separate prin spații.
Date de ieșire
Fișierul de ieșire fmi_orase1.out
va conține pe prima linie numărul rez
, reprezentând capacitatea maximă de apă care poate fi stocată în acel oraș.
Restricții și precizări
2 ≤ n ≤ 100
- numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât
100
de apă..
#include <bits/stdc++.h> using namespace std; ifstream cin("fmi_orase1.in"); ofstream cout("fmi_orase1.out"); int n , maxi , a[101]; int main() { cin >> n; for(int i = 1 ; i <= n ; i++) cin >> a[i]; for(int i = 1 ; i <= n ; i++) for(int j = i + 1 ; j <= n ; j++) if(min(a[i] , a[j]) * (j - i) > maxi) maxi = min(a[i] , a[j]) * (j - i); cout << maxi; }