Pagini recente » Cod sursa (job #2349038) | Cod sursa (job #540670) | Cod sursa (job #2478461) | Cod sursa (job #1376265) | Cod sursa (job #387386)
Cod sursa(job #387386)
#include <fstream>
#define MAX 100000
using namespace std;
int vec[MAX],vP[MAX],v[MAX],res[MAX];
int main(){
fstream fin("scmax.in",ios::in);
fstream fout("scmax.out",ios::out);
int n,imax=0,k,p=0;
fin>>n;
for(int i=0;i<n;i++){
fin>>vec[i];
}
vP[0]=-1;
v[0]=1;
for(int i=1;i<n;i++){
vP[i]=-1;
v[i]=1;
for(int j=0;j<i;j++){
if(vec[j]<vec[i]&&v[j]+1>v[i]){
v[i]=v[j]+1;
vP[i]=j;
}
}
if(v[i]>v[imax]){
imax=i;
}
}
k=imax;
while(vP[k]+1){
res[p++]=vec[k];
k=vP[k];
}
res[p++]=vec[k];
fout<<v[imax]<<endl;
for(int i=p-1;i>=0;i--){
fout<<res[i]<<" ";
}
fin.close();
fout.close();
}