Cod sursa(job #1504041)

Utilizator vLaDy198Bocean Vlad vLaDy198 Data 17 octombrie 2015 11:35:15
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
void afisare(int k,int t[],int v[])
{   if(t[t[k]]!=-1)
    afisare(t[k],t,v);
    fo<<v[t[k]]<<" ";
}

int main()
{ int i,j,v[100005],n,dp[100005],t[100005],max=0;
    fi>>n;
    for(i=1;i<=n;i++)
    {dp[i]=1;t[i]=-1;
        fi>>v[i];
    }
    for(i=1;i<=n;i++)
        {
            for(j=1;j<i;j++)
                if(v[j]<v[i])
                    if(dp[i]<dp[j]+1)
                     {
                        dp[i]=dp[j]+1;
                        t[i]=j;
                     }
        }
    for(i=1;i<=n;i++)
        if(dp[i]>max)
        {max=dp[i];j=i;}
        fo<<max<<endl;
    afisare(j,t,v);
    fo<<v[j];
}