Cod sursa(job #3038407)

Utilizator DomnulMilandruMilandru Nicon-David DomnulMilandru Data 27 martie 2023 12:39:45
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb

#include <fstream>

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