394
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 ≤ 10000 ≤ 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;
}
Comentarii