fbpx

Problema #1326 – sir_vale – Rezolvari PBInfo

de Mihai-Alexandru

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;
}
Comentarii

S-ar putea sa iti placa