Pagini recente » Cod sursa (job #2836184) | Cod sursa (job #392813) | Monitorul de evaluare | Cod sursa (job #1936400) | Cod sursa (job #2544200)
#include <fstream>
using namespace std;
const int NMAX = 100005;
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,x[NMAX],rez[NMAX],poz[NMAX],maxi,p;
f>>n;
for(int i=1;i<=n;i++){
f>>x[i];
rez[i]=1;
poz[i]=-1;
}
maxi=1;
p=1;
for(int i=2;i<=n;i++){
for(int j=1;j<i;j++){
if(x[i]>x[j] && rez[i]<rez[j]+1){
rez[i]=rez[j]+1;
poz[i]=j;
if(rez[i]>maxi){
maxi=rez[i];
p=i;
}
}
}
}
g<<maxi<<'\n';
int i=p,k=0,ind[NMAX];
while(i!=-1){
ind[++k]=i;
i=poz[i];
}
for(int i=k;i>=1;i--){
g<<x[ind[i]]<<" ";
}
return 0;
}