Pagini recente » Cod sursa (job #1124809) | Cod sursa (job #1840644) | Cod sursa (job #2217616) | Cod sursa (job #1235798) | Cod sursa (job #2217630)
#include <iostream>
#include <fstream>
#define MAX 100001
using namespace std;
int main()
{
ifstream in;
in.open("scmax.in");
ofstream out;
out.open("scmax.out");
int nr,i,j, arr[MAX],best[MAX];
in >> nr;
for(i = 0 ; i != nr ; i++){
in >> arr[i];
}
for(i = 0; i != nr ; i++){
int temp = -1;
for (j = 0 ; j < i; j++){
if(temp == -1){
if(arr[j]< arr[i]) temp =j;
}
else{
if(arr[j] > arr[temp] && arr[j]< arr[i]) {
temp = j;
}
}
}
if( temp == -1)best[i] = 1;
else best[i]=best[temp]+1;
}
int maxx = 0,k = 0;
for(i = 0; i != nr; i++){
if(best[i] > maxx){
maxx = best[i];
k = i;
}
}
int ans[MAX],t=1;
ans[0]=arr[k];
for (i = k; i >= 0; i--){
if(best[i]==best[k] - 1){
k = i;
ans[t] = arr[k];
t++;
}
}
out<<t<<endl;
for(i = t - 1; i >= 0;i--){
out << ans[i]<<" ";
}
return 0;
}