Pagini recente » Cod sursa (job #2861130) | Cod sursa (job #1746971) | Cod sursa (job #163638) | Cod sursa (job #3186141) | Cod sursa (job #1325876)
#include <fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int dp[100001],i,maxx,vmax,n,j,poz,s=0,v[100001],l;
void nrm(int v[], int n)
{
dp[1]=1;
maxx=dp[1];
vmax=v[1];
for(i=2; i<=n; i++)
if(v[i]>vmax)
{
dp[i]=maxx+1;
vmax=v[i];
poz=i;
}
else
{
dp[i]=1;
for(j=1; j<i; j++)
if(v[i]>v[j]) dp[i]++;
if(dp[i]>maxx)
{
maxx=dp[i];
vmax=v[i];
poz=i;
}
}
}
int main()
{
in>>n;
for(i=1; i<=n; i++)
in>>v[i];
nrm(v,n);
for(i=poz;i>=1;i--)
if(v[i]>=v[i-1]) s++;
else {l=i; break;}
out<<s<<endl;
for(i=l;i<=poz;i++)
if(i!=poz){
if(v[i]!=v[i+1])
out<<v[i]<<" ";}
else
out<<v[i]<<" ";
return 0;
}