Cod sursa(job #2262669)

Utilizator HaesteinnSabau Florin Vlad Haesteinn Data 17 octombrie 2018 18:18:31
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

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

vector <int> v,a;

int main()
{
    int n;
    fin>>n;
    for(int i=0;i<n;i++)
    {
        int x;
        fin>>x;
        v.push_back(x);
    }
    a.push_back(v[0]);
    for(int i=1;i<n;i++)
    {
        if(v[i]>a.back())
        {
            a.push_back(v[i]);
        }
        else
        {
            auto it=upper_bound(a.begin(),a.end(),v[i]);
            if(it!=a.begin()&&*(it-1)!=v[i])
                *it=v[i];
            else if(it==a.begin())
                *it=v[i];
        }
    }
    fout<<a.size()<<"\n";
    for(auto x:a)
        fout<<x<<" ";
    return 0;

}