Cod sursa(job #861583)

Utilizator rares_adrianRares Adrian rares_adrian Data 21 ianuarie 2013 18:57:52
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <cstdio>
using namespace std;

int a[100002],lg[100002],n,maxi,poz;

void citire()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            {
                scanf("%d",&a[i]);
                lg[i]=1;
            }
    }

int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
citire();
for(int i=n-1;i>0;i--)
    for(int j=i+1;j<=n;j++)
        if(a[j]>a[i] && lg[i]<=lg[j])
            lg[i]=lg[j]+1;
maxi=lg[1],poz=1;
for(int i=2;i<=n;i++)
    if(maxi<lg[i])
        {
            maxi=lg[i];
            poz=i;
        }
printf("%d\n",maxi);
printf("%d ",a[poz]);
poz++;
maxi--;
while(maxi)
    {
        if(lg[poz]==maxi)
            {
                printf("%d ",a[poz]);
                poz++;
                maxi--;
            }
          else
            poz++;
    }
    return 0;
}