Pagini recente » Cod sursa (job #1376772) | Cod sursa (job #1709656) | Cod sursa (job #671818) | Cod sursa (job #1502607) | Cod sursa (job #1260469)
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100001],d[100001],t[100001],i,j,p,maxim,n;
void drum(int p){
if(p!=0){
drum(t[p]);
fout<<v[p]<<" ";
}
}
int main(){
fin>>n;
for(i=1;i<=n;i++){
fin>>v[i];
}
d[1]=1;
t[1]=0;
for(i=2;i<=n;i++){
maxim=0;
for(j=1;j<i;j++){
if(v[i]>v[j] && d[j]>maxim){
maxim=d[j];
p=j;
}
}
if(maxim!=0){
t[i]=p;
}else{
t[i]=0;
}
d[i]=maxim+1;
}
maxim=-1;
for(i=1;i<=n;i++){
if(maxim<d[i]){
maxim=d[i];
p=i;
}
}
fout<<maxim<<"\n";
drum(p);
return 0;
}