Cod sursa(job #974378)

Utilizator savulescustefanSavulescu Stefan savulescustefan Data 16 iulie 2013 23:35:45
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>

using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int a[100004],b[100004],n,i,j,Max,h;
int main()
{
    f>>n;
    for (i=1;i<=n;i++)
    f>>a[i];
    b[n]=1;
    Max=1;
    for(i=n-1;i>=1;i--)
    {
        for (j=i;j<=n;j++)
        {
            if (a[i]<a[j] && b[i]<b[j]+1)
            b[i]=b[j]+1;
            if (b[i]==Max+1)
            break;
        }
        if (b[i]==0)
            b[i]=1;
        if (Max<b[i])
        Max=b[i];
    }
    g<<Max<<'\n';
    h=1;
    for (i=Max;i>=1;i--)
    {
         for (j=h;j<=n;j++)
         {
             if (b[j]==i)
             {
                 g<<a[j]<<" ";
                 break;
             }
         }
         h=j+1;
    }
    return 0;
}