Cod sursa(job #3151657)

Utilizator BOSSSTEFANPetrescu Ioan Stefan BOSSSTEFAN Data 22 septembrie 2023 12:46:00
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int dp[100001];
int main()
{
    int st,dr,mij,poz,n,i,k=0,nr;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>nr;
        st=1;
        dr=k;
        poz=0;
        while(st<=dr)
        {
            mij=(st+dr)/2;
            if(dp[mij]<nr)
            {
                poz=mij;
                st=mij+1;
            }
            else
                dr=mij-1;
        }
        dp[poz+1]=nr;
        k=max(poz+1,k);
    }
    cout<<k<<'\n';
    for(i=1;i<=k;i++)
        cout<<dp[i]<<" ";
    return 0;
}