Cerința
Un şir se numeşte şir munte
, dacă are un singur maxim pe poziţia v
, numit vârf
şi respectă următoarele proprietăţi:
- În stânga şi în dreapta vârfului există cel puţin câte un element.
- Secvenţa
a[1], a[2], ... , a[v]
este strict crescătoare. - Secvenţa
a[v], a[v+1], ... , a[n]
este strict descrescătoare.
Se citeşe un şir cu n
elemente. Să se verifice dacă este şir munte.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi n
numere naturale, separate prin spații.
Date de ieșire
Programul va afișa pe ecran unul dintre mesajele DA
sau NU
în funcţie că este şir munte sau nu.
Restricții și precizări
3 ≤ n ≤ 1000
0 ≤ elementele şirului ≤ 1.000.000.000
Exemplu 1:
Intrare
5 1 2 3 4 5
Ieșire
NU
Exemplu 2:
Intrare
5 1 2 3 4 3
Ieșire
DA
Explicație
Primul exemplu nu este şir munte, pe când al doilea exemplu este şir munte.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema sir_munte:
#include <iostream>
using namespace std;
int main()
{
int a[1001],n,i;
bool cr,de;
cin>>n;
for(i=0;i<n;++i)
cin>>a[i];
cr=de=false;
for(i=0;i<n-1;++i)
if (a[i]==a[i+1])
{
cout<<"NU"; // daca gasim doua elementele egale, nu poate fi munte
return 0;
}
else
if (a[i]>a[i+1])
if (cr)
de=true; // am gasit elemente descrescatoare
else
{
cout<<"NU";// elemente descrescatoare si nu a fost parte crescatoare
return 0; // nu poate fi munte
}
else
if (a[i]<a[i+1])
if (!de)
cr=true; // am gasit elemente crescatoare
else
{
cout<<"NU";// elemente crescatoare dupa parte descrescatoare
return 0; // nu poate fi munte
}
if (cr and de)
cout<<"DA"; // sirul contine atat parte crescatoare cat si descrescatoare
else
cout<<"NU"; // nu are parte descrescatoare
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1321 sir_munte
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1321 sir_munte de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!