Cod sursa(job #868345)

Utilizator varga13VarGaz13 varga13 Data 30 ianuarie 2013 22:14:45
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <fstream>
//#define Open ifstream f("scmx.in"); ofstream g("scmx.out");
#define Open ifstream f("scmax.in"); ofstream g("scmax.out");
#define CLose f.close(); g.close();
const int elvis=100005;
using namespace std;
int a[elvis],aux[elvis],n,maxi,p;
void Rez();
void Read();
void PrintR();
void PrintEx();
Open
int main()
{
    f>>n;
    Read();
    Rez();
    PrintR();
   // PrintEx();

    return 0;
}

void Read()
{
for(int i=1;i<=n;i++)
    f>>a[i];
}
void PrintR()
{
    g<<maxi;
    g<<'\n';
for(int i=p;maxi;i++)
    if(aux[i]==maxi)
        {
            maxi--;
            g<<a[i]<<' ';
        }
    g<<'\n';
}

void PrintEx()
{
    g<<'\n';
    for(int i=1;i<=n;i++)
        g<<a[i]<<' '<<aux[i]<<'\n';
    g<<'\n';
}

void Rez()
{int mx=0;
    aux[n]=1;
    for(int i=n-1;i>=1;i--)
    {maxi=0;
        for(int j=i+1;j<=n;j++)
                if(a[i]<a[j]&&aux[j]>maxi)
                    maxi=aux[j];

        if(maxi!=0)
            aux[i]=maxi+1;
        else
            aux[i]=1;
        if(maxi>mx)
            mx=maxi;

    }
  maxi=++mx;

}