Cod sursa(job #2493345)
| Utilizator | Data | 16 noiembrie 2019 11:46:24 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
using namespace std;
int v[10001],lg[10001],maxx;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int main()
{int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>v[i];
}
lg[n]=1;
for(int i=n-1;i>=1;--i){
maxx=0;
for(int j=i+1;j<=n;++j)
if(v[i]<v[j]&&lg[j]>maxx)
maxx=lg[j];
lg[i]=maxx+1;
}
int poz;
maxx=0;
for(int i=1;i<=n;++i)
if(maxx<lg[i]){
maxx=lg[i];poz=i;
}
cout<<v[poz]<<" ";
for(int i=poz+1;i<=n&&maxx;++i)
if(lg[i]==maxx - 1&&v[i]>v[poz]){
cout<<v[i]<<" ";poz=i;maxx--;
}
}
