Pagini recente » Cod sursa (job #2311054) | Cod sursa (job #2038292) | Cod sursa (job #1320859) | Cod sursa (job #3157611) | Cod sursa (job #497451)
Cod sursa(job #497451)
#include<iostream>
#include<fstream>
#include <vector>
using namespace std;
ifstream p("scmax.in");
ofstream v("scmax.out");
const int MAX_N = 10005;
int n, a[MAX_N], c[MAX_N],max2=0,k;
vector <int> vect;
int main(){
p>>n;
for(int i=1;i<=n;i++)
p>>a[i];
for(int i=1;i<=n;i++) {
c[i] = 1;
for(int j=i-1;j>=1;j--)
if(a[i] > a[j])
if (c[i] < c[j] + 1)
c[i] = c[j] + 1;
}
for(int i=1;i<=n;i++)
if(c[i]>max2){
max2=c[i];
k=i;
}
vect.push_back(a[k]);
// cout<<a[k]<<" ";
for(int i=k;i>1;i--)
for(int j=k-1;j>=1;j--)
if(c[i]>c[j] && a[i]>a[j]){
vect.push_back(a[j]);
// cout<<a[j]<<" ";
i--;
}
v<<vect.size()<<endl;
for (int i = (int)vect.size() - 1; i >= 0; -- i)
v << vect[i] << " ";
return 0;
}