Pagini recente » Cod sursa (job #2610916) | Cod sursa (job #525278) | Cod sursa (job #2872474) | Cod sursa (job #8716) | Cod sursa (job #822954)
Cod sursa(job #822954)
#include<cstdio>
#define MAX 100001
using namespace std;
FILE *fin,*fout;
int v[MAX],l[MAX];
int main(){
fin=fopen("scmax.in","r");
fout=fopen("scmax.out","w");
int n;
fscanf(fin,"%d",&n);
int i;
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
int max;
l[n]=1;
max=v[n];
int j,maxm=-1;
for(i=n-1;i>=1;i--){
max=-1;
for(j=i+1;j<=n;j++)
if((v[j]>v[i])&&(l[j]>max))
max=l[j];
if(max==-1)
l[i]=1;
else
l[i]=max+1;
if(l[i]>maxm)
maxm=l[i];
}
fprintf(fout,"%d\n",maxm);
i=1;
while(maxm>0){
if(l[i]==maxm){
fprintf(fout,"%d ",v[i]);
maxm--;
}
i++;
}
fclose(fin);
fclose(fout);
return 0;
}