Pagini recente » Cod sursa (job #791074) | Cod sursa (job #3201881) | Cod sursa (job #3030515) | Cod sursa (job #3212059) | Cod sursa (job #2335955)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in("scmax1.in");
ofstream out("scmax.out");
int v[100],l[100]={0},i,j,n,m,p=0;
in>>n;
for(i=1;i<=n;i++)in>>v[i];
l[n]=1;//merg de la ultimul element spre primul
for(i=n-1;i>=1;i--){m=0;
for(j=i+1;j<=n;j++){
if(v[j]>v[i]&&l[j]>m)m=l[j];}
l[i]=m+1;}
m=0;p=0;
for(i=1;i<=n;i++)if(l[i]>m){m=l[i];p=i;}out<<m<<endl;
out<<v[p]<<" ";
for(i=p+1;i<=n;i++){
if(v[i]>v[p]&&m-1==l[i]){out<<v[i]<<" ";m--;}
}
in.close();
out.close();
return 0;
}