Pagini recente » Cod sursa (job #2723999) | Cod sursa (job #2541222) | Cod sursa (job #499942) | Cod sursa (job #623453) | Cod sursa (job #1515923)
#include<fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,v[100001],a[100001];
void citire(){
f>>n;
for(int i=1;i<=n;++i){
f>>v[i];
a[i]=1;
}
}
void pd(){
int pmax=n,lmax=1;
for(int i=n-1;i>=1;--i){
int k=0;
for(int j=i+1;j<=n;++j)
if(v[j]>v[i]&&a[j]>k)k=a[j];
a[i]+=k;
if(a[i]>lmax){
lmax=a[i];
pmax=i;
}
}
g<<lmax<<'\n';int x=v[pmax];
for(int i=pmax;lmax>0;i++){
if(a[i]==lmax&&v[i]>=x){
g<<v[i]<<' ';
x=v[i];
lmax--;
}
}
for(int i=1;i<=n;++i){
f>>v[i];
a[i]=1;
}
}
int main(){
citire();
pd();
g.close();
return 0;
}