Cerința
Un şir se numeşte şir zigzag
, dacă monotonia elementelor pe poziții succesive alternează între strict crescător și strict descrescător, adică a[1]>a[2]<a[3]>a[4] ...
sau a[1]<a[2]>a[3]<a[4]...
.
Se citeşe un şir cu n
elemente. Să se verifice dacă este şir zigzag.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi n
numere naturale, reprezentând elementele șirului.
Date de ieșire
Programul va afișa pe ecran unul dintre mesajele DA
sau NU
după cum șirul dat este şir zigzag sau nu.
Restricții și precizări
3 ≤ n ≤ 1000
0 ≤
elementele şirului≤ 1 000 000 000
Exemplu 1:
Intrare
5 1 5 3 7 5
Ieșire
DA
Explicație
Avem relațiile 1 < 5 > 3 < 7 > 5
, deci e vorba de un șir zigzag.
Exemplu 2:
Intrare
5 4 3 5 1 2
Ieșire
DA
Explicație
Avem relațiile 4 > 3 < 5 > 1 < 2
, deci e vorba de un șir zigzag.
Exemplu 3:
Intrare
5 4 3 2 1 2
Ieșire
NU
Explicație
Primele trei elemente ale șirului nu își schimbă monotonia, deci nu e șir zigzag.
#include <bits/stdc++.h> using namespace std; int n,ok,i; int main() { cin>>n; int a[n]; for (i=0;i<n;i++) { cin>>a[i]; } ok=1; for (i=0;i<n-2;i++) { if (a[i]<a[i+1]) { if (a[i+1]<a[i+2]) ok=0; } else { if (a[i]>a[i+1]) { if (a[i+1]>a[i+2]) ok=0; } } if (a[i]==a[i+1]) ok=0; } if (ok==0) cout<<"NU"; else cout<<"DA"; return 0; }