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
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;
}
#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
Franceza,
8 ani în urmă
Geografie,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
9 ani în urmă
Fizică,
9 ani în urmă