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

Cerință
George este fan al drumețiilor pe munte. El crede că o excursie pe munte ii conferă o experiență adevărată dacă acesta are un singur vârf și mai mult, măsurând altitudinea din kilometru în kilometru și construind un șir cu aceste valori, șirul respectiv este un șir munte.

Un șir munte este un șir în care există un singur indice i ce verifică proprietațiile:

2 ≤ i ≤ N - 1, unde N reprezintă numarul de elemente din șir
toate elementele de la 1 pană la i sunt în ordine strict crescătoare
toate elementele de la i până la N sunt în ordine strict descrescătoare
Se dă un șir format din N numere. Să se verifice dacă șirul dat reprezintă sau nu un șir munte.

Date de intrare
Pe prima linie se află N, dimensiunea șirului. Pe următoarea linie sunt N numere naturale, elementele șirului reprezentând măsurătorile lui George.

Date de ieșire
Se va afișa un singur număr: 1 dacă șirul dat este munte, sau 0 în caz contrar.

Restricții
3 ≤ N ≤ 500
Elementele șirului sunt numere naturale mai mici decât 1.000.000
Exemplu
Date de intrare Date de ieșire
7
1 4 6 7 8 5 2 ..............1
7
1 4 6 10 8 9 2 ................0

Răspunsuri la întrebare

Răspuns de andrei750238
0

#include <iostream>

using namespace std;

int main(){

   int n,i,x,mod=1,ante;

   cin >> n;

   cin >> ante;

   for(i=1;i<=n-1 && mod!=3;i++){

       cin >> x;

       if(x==ante)mod=3;

       if(mod==1){

           if(x<ante)mod=2;

       }

       if(mod==2){

           if(x>ante)mod=3;

       }

       ante=x;

   }

   if(mod==2) cout << 1;

   else cout << 0;

}


andrei750238: Explicatie : memoram altitudinea anterioara in ante.
De fiecare daca comparam altitudinea noua cu cea anterioara.
andrei750238: In mod tinem minte modul in care sirul trebuie sa se comporte.
Initial el trebuie sa fie crescator (1), apoi descrescator(2). In momentul in care sirul e constant sau devine iar crescator suntem siguri ca sirul dat nu e munte (mod=3)

Pentru ca sirul sa fie munte trebuie ca la final mod sa fie 2
andrei170865: ma poți ajuta te rog și pe mine??
Alte întrebări interesante