Cod sursa(job #1229744)

Utilizator afkidStancioiu Nicu Razvan afkid Data 18 septembrie 2014 00:23:59
Problema Subsir crescator maximal Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <cstdio>
#define Nmax 100001


using namespace std;
int N,a[Nmax];

int main()
{
    int i,cnt,head,tail,aux,cnt_best,aux_best;

    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);

    scanf("%d",&N);
    for(i=0;i<N;i++)
        scanf("%d",&a[i]);

    cnt=cnt_best=0;
    head=tail=0;
    aux=aux_best=0;
    for(i=1;i<N;i++)
    {
        if(a[i-1]<a[i])
            ++cnt,++aux;
        else if(a[i-1]>a[i])
        {
            ++cnt;
            if(cnt>cnt_best)
            {
                tail=i-1;
                head=i-aux-1;
                cnt_best=cnt;
                aux_best=aux;
                cnt=0;
                aux=0;
            }
        }
        else aux++;
    }
    ++cnt;
    if(cnt>cnt_best)
        {
          tail=i-1;
          head=i-aux-1;
          cnt_best=cnt;
          aux_best=aux;
          cnt=0;
        }
    printf("%d\n",cnt_best);
    for(i=head;i<tail;i++)
    {
        if(a[i]!=a[i+1])
            printf("%d ",a[i]);
    }
    if(a[tail]>a[tail-1])
        printf("%d",a[tail]);
    return 0;
}