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:
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.
#include <bits/stdc++.h> using namespace std; int main() { int i , n , nr_varfuri=0; cin>>n; int v[n+1]; cin>>v[1]>>v[2]; if(v[1]>v[2]||v[1]==v[2]) { cout<<"NU"; return 0; } for(i=3;i<n;i++) { cin>>v[i]; if(v[i]==v[i-1]) { cout<<"NU"; return 0; } else if(nr_varfuri==0 && v[i-1]>v[i]) { nr_varfuri++; } else if(nr_varfuri==1 && v[i-1]<v[i]) { cout<<"NU"; return 0; } } cin>>v[n]; if(v[n-1]==v[n] || v[n-1]<v[n]) { cout<<"NU"; return 0; } cout<<"DA"; return 0; }