Pagini recente » Cod sursa (job #2072148) | Cod sursa (job #2631933) | Cod sursa (job #2546046) | Cod sursa (job #2418515) | Cod sursa (job #677090)
Cod sursa(job #677090)
#include <iostream>
#include <fstream>
#define maxN 100005
#define minus_inf -2000000005
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,L[maxN];
long v[maxN];
void read()
{
int i;
f>>n;
for(i=1; i<=n ;i++)
{
f>>v[i];
L[i]=0;
}
}
void det_lmax()
{
int i,k;
L[n]=1;
for(k=n-1; k>=1 ;k--)
{
L[k]=1;
i=k;
do
{
i++;
}while(v[k]>v[i] && i<n);
if(v[k]<=v[i])
L[k]=L[i]+1;
}
}
void print()
{
int i,max,imax;
max=minus_inf;
for(i=1; i<=n ;i++)
if(L[i]>max)
{
max=L[i];
imax=i;
}
g<<max<<"\n";
max=v[imax];
for(i=imax; i<=n ;i++)
if(v[i]>=max)
{
max=v[i];
g<<max<<" ";
}
}
int main()
{
read();
det_lmax();
print();
return 0;
}