Cerința
Un şir se numeşte şir vale
, dacă are un singur minim pe poziţia v
şi respectă următoarele proprietăţi:
Cerința
Un şir se numeşte şir vale
, dacă are un singur minim pe poziţia v
şi respectă următoarele proprietăţi:
- În stânga şi în dreapta minimului există cel puţin câte un element.
- Secvenţa
a[1], a[2], ... , a[v]
este strict descrescătoare. - Secvenţa
a[v], a[v+1], ... , a[n]
este strict crescătoare.
Se citeşte un şir cu n
elemente. Să se verifice dacă este şir vale.
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 vale 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 4 3 2 1 2
Ieșire
DA
Explicație
Primul exemplu NU este şir vale, pe când al doilea exemplu este şir vale.
#include <bits/stdc++.h> using namespace std; int main() { int v,n,i,ok=1; cin>>n; int a[n+1]; a[n+1]=-1; cin>>a[1]; for(i=2;i<=n;i++) cin>>a[i]; for(i=2;i<=n;i++) if(a[i-1]>a[i] && a[i+1]>a[i]) v=i; for(i=1;i<v;i++) if(a[i+1]>=a[i]) { cout<<"NU"; ok=0; break; } if(ok) for(i=v;i<n;i++) if(a[i]>=a[i+1]) { cout<<"NU"; ok=0; break; } if(ok) cout<<"DA"; return 0; }