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.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema sir_vale:
#include <iostream>
using namespace std;
int main()
{
int a[1001],n,i;
bool cr,de;
cin>>n;
for(i=0;i<n;++i)
cin>>a[i];
cr=de=false;
for(i=0;i<n-1;++i)
if (a[i]==a[i+1])
{
cout<<"NU"; // daca gasim doua elementele egale, nu poate fi vale
return 0;
}
else
if (a[i]<a[i+1])
if (de)
cr=true; // am gasit elemente crescatoare se accepta numai daca avem deja parte descrescatoare
else
{
cout<<"NU";// elemente crescatoare si nu a fost parte descrescatoare
return 0; // nu poate fi vale
}
else
if (a[i]>a[i+1])
if (!cr)
de=true; // am gasit elemente descrescatoare
else
{
cout<<"NU";// elemente descrescatoare dupa parte crescatoare
return 0; // nu poate fi vale
}
if (cr and de)
cout<<"DA"; // sirul contine atat parte crescatoare cat si descrescatoare
else
cout<<"NU"; // nu are parte crescatoare
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1326 sir_vale
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1326 sir_vale de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!