Cod sursa(job #2518337)

Utilizator tavi255Varzaru Octavian Stefan tavi255 Data 5 ianuarie 2020 15:45:13
Problema Subsir crescator maximal Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
//#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int Max=100005;
ifstream in("scmax.in");
ofstream out("scmax.out");
vector <int>v; int n,sir[Max],nr,ind[Max],sol[Max],q;
int main()
{
    in>>n;
    for(int i=1;i<=n;i++)
    {
        int x; in>>x;
        if(binary_search(v.begin(),v.end(),x)==0)
        {
                int poz=upper_bound(v.begin(),v.end(),x)-v.begin();
               if(poz==v.size())
                  v.push_back(x);
                else
                   v[poz]=x;

             sir[++nr]=x;
             ind[nr]=poz;
        }


    }
    out<<v.size()<<"\n";
    int num=v.size()-1;
    for(int i=nr;i>=0;i--)
        if(ind[i]==num)
    {
         sol[++q]=sir[i]; num--;
    }
    for(int i=q;i>=1;i--)
        out<<sol[i]<<" ";
    return 0;
}