Pagini recente » Cod sursa (job #1044708) | Cod sursa (job #1721188) | Cod sursa (job #2080272) | Cod sursa (job #2296508) | Cod sursa (job #697261)
Cod sursa(job #697261)
#include<cstdio>
#include<vector>
using namespace std;
vector<int>v,s;
int main()
{
int i,k,n,max;
FILE *in=fopen("scmax.in","r"),*out=fopen("scmax.out","w");
fscanf(in,"%d",&n);
s.resize(n);
for(i=1;i<=n;++i)
fscanf(in,"%d",&k),v.push_back(k);
s[n-1]=1;
for(i=n-2;i>=0;--i)
{
max=0;
for(k=i+1;k<=n-1;++k)
if(v[k]>v[i] && s[k]>max)
max=s[k];
s[i]=1+max;
}
max=0;
for(i=0;i<n;++i)
if(s[i]>=max)
max=s[i],k=i;
fprintf(out,"%d\n%d ",max,v[k]);
for(i=k+1;i<n;++i)
if(s[i]==max-1)
fprintf(out,"%d ",v[i]),--max;
return 0;
}