Informatică, întrebare adresată de Adinag14, 9 ani în urmă

URGENT!
Se da un vector cu n componente numere naturale. Se cere sa se determine toate secventele de lungime maxima formate cu numere strict crescatoare.
Ex: 8
5 7 10 4 6 9 1 2
=> 5 7 10
4 6 9

Răspunsuri la întrebare

Răspuns de uleiaalex
0
Am rezolvat problema in C++. Sper ca te-am ajutat. Daca se uita cineva de la brainly va rog sa deblocati sa se poata uploada si fisiere text.

#include <iostream>
using namespace std;
struct sirl
{
  int pi;
  int pf;
};
int main()
{
  //Citesc pe n
  cout<<"n= ";
  cin>>n;
  //declar vectorul de elemente
  int v[n];
  //Acesta va fi vectorul cu marginile subsirurilor sirului ' '
  sirl m[n];
  //Citesc elementele vectorului initial
  for (int i = 0; i < n; i++)
  {
       cout<<"v["<<i<<"]=";
       cin>>v[i];
  }
  //Aflu cea mai mare lungime si salvez intervalele sirurilor de elemente max
  int pi = 0;int pf = 0;int max = 0;int c = 0;
  while (pf < n)
  {
       pi = pf;
       while (pf + 1 < n && v[pf] < v[pf + 1])
            pf++;

       if (pf - pi > max)
            {
                c = 0;
                max = pf - pi;
                m[c].pi = pi;
                m[c].pf = pf;
            }
       else if (pf - pi == max)
            {
                c++;
                max = pf - pi;
                m[c].pi = pi;
                m[c].pf = pf;
            }
       pf++;
   }
   //Afisez subsirurile din sirul x de marime max
   for (int i = 0; i < max; i++)
   {
       for (int j = m[i].pi; j <= m[i].pf; j++)
       {
            cout<<v[j]<<" ";
       }
       cout<<endl;
   }
   cout<<"Sir de lungime maxima "<<max;
   return 0;
}

Alte întrebări interesante