Cod sursa(job #1807250)

Utilizator andreicontorandrei contor andreicontor Data 16 noiembrie 2016 11:33:01
Problema Subsir crescator maximal Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include<cstdio>
using namespace std;
int ok,p,k,n,i,ma,j,a[1001],b[1001];
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]);
    for(i=n;i>=1;i--)
    {
        ma=0;
        for(j=i+1;j<=n;j++)
        {
            if(a[i]<a[j])
            if(b[j]>ma)
                ma=b[j];
        }
        b[i]=ma+1;
    }
    ma=0;
    for(i=1;i<=n;i++)
        if(b[i]>ma)
        {
            ma=b[i];
            p=i;
        }
    printf("%d\n",ma);
    k=ma;
    ok=1;
    while(ok<=ma)
    {
        for(i=p;i<=n;i++)
            if(b[i]==k)
            {
                printf("%d ",a[i]);
                p=i;
                k--;
                ok++;
                break;
            }
    }
return 0;
}