Cod sursa(job #2906348)

Utilizator bucketlover413Sodinca Iulia Cristiana bucketlover413 Data 25 mai 2022 19:02:07
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("scmax.in");
ofstream fout("scmax.out");

void afis_sir(int nr[], int dp[], int pre[], int p)
{
    if(pre[p]!=-1)
    {   afis_sir(nr, dp, pre, pre[p]);
        fout<<nr[pre[p]]<<" ";

    }

}

int main()
{
    int n, nr[100001], dp[100001], pre[100001], dpmax=0, st;
    fin>>n;
    fin>>nr[1];
    dp[1]=1;
    pre[1]=-1;
    st=1;
    for(int i=2; i<=n; i++)
        {
            pre[i]=-1;
            fin>>nr[i];
            dp[i]=1;
            for(int j=1; j<i; j++)
            {
             if(dp[i]<dp[j]+1&& nr[j]<nr[i])
                {
                    dp[i]=dp[j]+1;
                    pre[i]=j;
                }
            }
            if(dp[i]>dpmax)
                {
                dpmax=dp[i];
                st=i;}

        }
        fout<<dpmax<<endl;
        afis_sir(nr, dp, pre, st);
        fout<<nr[st];

    return 0;
}