Pagini recente » Cod sursa (job #1232238) | Cod sursa (job #3282721) | Cod sursa (job #193209) | Cod sursa (job #2790941) | Cod sursa (job #892439)
Cod sursa(job #892439)
#include <fstream>
#include <stdio.h>
using namespace std;
#define MAX_N 100000
int V[MAX_N+5],S[MAX_N+5];
int N,Max,F;
void Read(){
freopen("scmax.in","r",stdin);
scanf("%d\n",&N);
int i,n=N;
for(i=1;i<=n;i++){
scanf("%d ",&V[i]);
}
fclose(stdin);
}
void PD(){
int max,i,j,n=N;
S[n]=1;
for(i=n-1;i>0;i--){
max=0;
for(j=i+1;j<=n;j++){
if(V[i]<V[j]&&max<S[j]){
max=S[j];
}
}
S[i]=max+1;
if(Max<S[i]){
F=i;
Max=S[i];
}
// printf("%d %d\n",i,S[i]);
}
}
void Write(){
int i;
ofstream fout("scmax.out");
fout<<Max<<'\n';
for(i=F;i<=N;i++){
if(S[i]==Max){
fout<<V[i]<<' ';
Max--;
if(Max==0)
return;
}
}
fout.close();
}
int main()
{
Read();
PD();
Write();
return 0;
}