Pagini recente » Cod sursa (job #979064) | Cod sursa (job #841854) | Cod sursa (job #1372341) | Cod sursa (job #3176162) | Cod sursa (job #1333925)
#include <fstream>
#include <stdio.h>
using namespace std;
const int N=100002;
ofstream out("scmax.out");
int v[N],l[N],urm[N],n;
void afisare(int x){
if(x!=0){
afisare(urm[x]);
out<<v[x]<<' ';
}
}
int main()
{
FILE *in;
in=fopen("scmax.in","r");
fscanf(in,"%d",&n);
for(int i=1;i<=n;i++)
fscanf(in,"%d",&v[i]);
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
if(v[j]>v[i]&&l[j]<l[i]+1){
l[j]=l[i]+1;
urm[j]=i;
}
}
}
int maxim=-1,nrmax;
for(int i=1;i<=n;i++)
if(maxim<l[i]) {
maxim=l[i];
nrmax=i;
}
out<<maxim+1<<"\n";
afisare(nrmax);
return 0;
}