Pagini recente » Cod sursa (job #131116) | Cod sursa (job #2438815) | Cod sursa (job #316519) | Cod sursa (job #2749801) | Cod sursa (job #497462)
Cod sursa(job #497462)
#include<iostream>
#include<fstream>
#include <vector>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
const int MAX_N = 10005;
int n, a[MAX_N], c[MAX_N],max2=0,k, p[MAX_N];
vector <int> vect;
int main(){
in>>n;
for(int i=1;i<=n;i++)
in>>a[i];
in.close();
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;
p[i] = j;
}
}
for(int i=1;i<=n;i++)
if(c[i]>max2){
max2=c[i];
k=i;
}
while (c[k] != 1) {
vect.push_back(a[k]);
k = p[k];
}
vect.push_back(a[k]);
out<<vect.size()<<endl;
for (int i = (int)vect.size() - 1; i >= 0; -- i)
out << vect[i] << " ";
out.close();
return 0;
}