fbpx

Problema #358 – Plopi – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

De-a lungul principalei străzi din orașul nostru există n plopi, pentru fiecare cunoscându-se înălțimea. Primarul orașului dorește să știe care este diferența de înălțime maximă între doi plopi învecinați, și câte perechi de plopi învecinați au această diferență de înălțime.

Ajutați-l pe primar să afle răspunsul la întrebare.

Date de intrare

Programul citește de la tastatură numărul de plopi n, iar apoi n numere naturale nenule, separate prin spaţii, reprezentând înălțimile plopilor.

Date de ieşire

Programul afișează pe ecran numerele D și nrp, separate prin exact un spațiu, reprezentând diferența de înălțime maximă între doi plopi învecinați, și câte perechi de plopi învecinați au această diferență de înălțime.

Restricţii şi precizări

  • 2 ≤ n ≤ 1000
  • înălțimile plopilor vor fi mai mici decât 5000

Exemplu

Date de intrare

7
5 3 7 4 6 2 6

Date de ieșire

4 3

Explicație

S-au citit înălțimile a 7 plopi. Diferența maximă de înălțime este 4, și sunt 3 perechi de plopi învecinați care au această diferență de înălțime, și anume cei cu înălțimile 3 7, 6 2 și 2 6.

#include <bits/stdc++.h>
using namespace std;

int main ()
{
    int n,max=0,cnt=0;
    cin >> n;
    int a[1002];
    for (int i = 1 ; i <= n; ++i)
    {
        cin >> a[i];
        a[0]=a[1];
        if (a[i]-a[i-1] < 0)
        {
            if (a[i-1]-a[i]> max)
            max=a[i-1]-a[i];
        }
        else
        {
            if (a[i]-a[i-1]>max)
            max=a[i]-a[i-1];
        }
    }
    for (int i = 1 ; i <= n; ++i)
    {
        if (a[i]-a[i-1] < 0)
        {
            if (a[i-1]-a[i]== max)
            cnt++;
        }
        else
        {
            if (a[i]-a[i-1]==max)
            cnt++;
        }
    }
    cout << max << ' ' << cnt;
}
Comentarii

S-ar putea sa iti placa