Cod sursa(job #2647859)

Utilizator DinuRares201Dinu Rares Mihai DinuRares201 Data 6 septembrie 2020 19:21:07
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;

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

vector<int> seq;

int valueSearch(int l, int r, int x)
{
    int pos = -1;
    while(l <= r)
    {
        int m = (l+r)/2;
        if(seq[m] < x)
            l = m+1;
        else
            pos = m, r = m-1;
    }
    return pos;
}

int main()
{
    int n, x, seqSize = 0;
    fin>>n;
    for(int i = 0; i < n; i++)
    {
        seq.push_back(INT_MAX);
        fin>>x;
        int pos = valueSearch(0, i, x);
        seq[pos] = x;
        seqSize = max(seqSize, pos);
    }
    fout<<++seqSize<<'\n';
    for(int i = 0; i < seqSize; i++)
        fout<<seq[i]<<" ";
    return 0;
}