Cod sursa(job #2043945)

Utilizator horea4Cenan Horea horea4 Data 20 octombrie 2017 19:32:55
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int A[100001],B[100001],U[100001];
int n,pmax;
int vfc;

int main()
{
    fi>>n;
    for(int i=1;i<=n;i++)
        fi>>A[i];
    for(int i=n;i>=1;i--)
    {
        int v=0;
        U[i]=0;
        for(int j=i+1;j<=n;j++)
            if(A[i]<A[j])
                if (B[j]>v)
                {
                    v=B[j];
                    U[i]=j;
                }
        B[i]=v+1;
    }
    pmax=1;
    for (int i=2;i<=n;i++)
        if (B[i]>B[pmax])
            pmax=i;
    fo<<B[pmax]<<"\n";
    /// se reconstituie sirul
    vfc=pmax;
    while (vfc!=0)
    {
        fo<<A[vfc]<<" ";
        vfc=U[vfc];
    }
    fi.close();
    fo.close();
    return 0;
}