Cod sursa(job #1643134)

Utilizator delta_wolfAndrei Stoica delta_wolf Data 9 martie 2016 17:47:42
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
using namespace std;
int n,i,j,k,v[100010],pz[100010],a[100010];
int main()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    v[1]=n;
    k=1;
    for(i=n-1;i>=1;i--)
      {
          for(j=k;j>=1;j--)
        if(a[i]<a[v[j]])
        {
            pz[i]=v[j];
            j++;
            v[j]=i;

            if(j>k)k=j;
            break;

        }
        if(j==0)
            v[1]=i;
      }

    printf("%d\n",k);
    printf("%d ",a[v[k]]);
   k=v[k];
    while(pz[k])
    {
       printf("%d ",a[pz[k]]);
       k=pz[k];
    }
    return 0;
}