Pagini recente » Cod sursa (job #1446784) | Cod sursa (job #2536124) | Cod sursa (job #2954791) | Cod sursa (job #3137943) | Cod sursa (job #1785969)
#include <iostream>
#include <fstream>
using namespace std;
int a[100005],n,c[100005],p=0;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void citire()
{
fin>>n;
for(int i=0; i<n; i++)
fin>>a[i];
}
void generare()
{
int b[100005];
b[n-1]=1;
int contor;
int maxi=0,m;
for(int i=n-2; i>=0; i--)
{
if(a[i]<a[i+1])
{
b[i]=2;
contor=a[i+1];
for(int j=i+2; j<n; j++)
if (a[j]>contor)
{
b[i]++;
contor=a[j];
}
if(b[i]>maxi) {maxi=b[i];m=i;}
}
else
{
b[i]=1;
for(int j=i+1; j<n; j++)
if(a[j]>a[i]) b[i]++;
if(b[i]>maxi) {maxi=b[i];m=i;}
}
}
c[p++]=a[m];
int l=1;
for(int i=m+1; i<n; i++)
{
if(b[i]<maxi)
{
maxi=b[i];l++;
c[p++]=a[i];
}
}
fout<<l<<endl;
for(int i=0;i<p;i++)
fout<<c[i]<<" ";
}
int main()
{
citire();
generare();
return 0;
}