👤

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!


De Ce Primesc 90 De Puncte Din 100 Problema Este De Pe Pbinfo Si Se Numeste Sirmunte Cerința Un Şir Se Numeşte Şir Munte Dacă Are Un Singur Maxim Pe Poziţia V N class=

Răspuns :

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;

}

Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.


Wix Learning: Alte intrebari