Se dă un șir de n numere naturale. Șirul poate fi partiționat în mai multe moduri într-un număr de subșiruri strict crescătoare. De exemplu, șirul 4 6 2 5 8 1 3 7 poate fi partiționat astfel: 4 6 8 (primul subșir), 2 5 7 (al doilea) și 1 3 (al treilea). O altă modalitate este formând patru subșiruri: 4 5 7, 6 8, 2 3 și 1.
Cerința
Să se determine numărul minim de subșiruri strict crescătoare în care se poate partiționa șirul.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi șirul de n numere naturale, separate prin spații.
Date de ieșire
Programul va afișa pe ecran numărul minim de subșiruri strict crescătoare în care se poate partiționa șirul.
Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 50.000
Un subșir se obține dintr-un șir prin eliminarea a zero, unul, sau mai multe elemente.
Exemplu
Intrare
8
4 6 2 5 8 1 3 7
Ieșire
3
Răspunsuri la întrebare
Răspuns de
3
#include <iostream>
using namespace std;
int main()
{
int v[1001], n, i, j, subsiruri=0, x;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
while(n){
subsiruri++;
x=v[1];
for(j=1;j<n;j++)
v[j]=v[j+1];
n--;
for(i=1;i<=n;i++)
if(x<v[i]){
x=v[i];
for(j=i;j<n;j++)
v[j]=v[j+1];
n--;
i--;
}
}
cout<<'\n';
cout<<subsiruri;
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Istorie,
8 ani în urmă
Limba română,
8 ani în urmă
Informatică,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă