Informatică, întrebare adresată de iidodovette63, 8 ani în urmă

de ce primesc 90 de puncte din 100?

Problema este de pe pbinfo, si se numeste sir_munte.
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 ≤ 1000
0 ≤ elementele şirului ≤ 1 000 000 000.

Multumesc anticipat!

Anexe:

Răspunsuri la întrebare

Răspuns de Utilizator anonim
2

Salut! Uite solutia oficiala, poate te ajuta:

#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 munte

           return 0;

       }

       else

           if (a[i]>a[i+1])

               if (cr)

                   de=true;  // am gasit elemente descrescatoare

               else

               {

                   cout<<"NU";// elemente descrescatoare si nu a fost parte crescatoare

                   return 0;  // nu poate fi munte

               }

           else

               if (a[i]<a[i+1])

                   if (!de)

                       cr=true;   // am gasit elemente crescatoare

                   else

                   {

                       cout<<"NU";// elemente crescatoare dupa parte descrescatoare

                       return 0;  // nu poate fi munte

                   }

   if (cr and de)

       cout<<"DA";  // sirul contine atat parte crescatoare cat si descrescatoare

   else

       cout<<"NU";  // nu are parte descrescatoare

   return 0;

}

Alte întrebări interesante