Pagini recente » Cod sursa (job #184648) | Cod sursa (job #167319) | Cod sursa (job #161803) | Cod sursa (job #401229) | Cod sursa (job #1182355)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main(){
ifstream ifs("scmax.in");
ofstream ofs("scmax.out");
int N; ifs>>N;
vector<int> a(N);
for(int i=0;i<N;i++) ifs>>a[i];
vector<int> best(N,0),pre(N);
int max=0,imax;
for(int i=0;i<N;i++){
for(int j=0;j<i;j++)
if((a[i]>a[j])&&(best[i]<=best[j])){
best[i]=best[j]+1;
pre[i]=j;
}
if(best[i]>max) {max=best[i]; imax=i;}
}
ofs<<max+1<<'\n';
vector<int> ans(max+1,0);
for(int i=max;i>=0;i--){
ans[i]=a[imax];
imax=pre[imax];
}
for(int i=0;i<max+1;i++)
ofs<<ans[i]<<" ";
}