Cod sursa(job #3174462)

Utilizator AlexDavid26Alex Bleotu AlexDavid26 Data 24 noiembrie 2023 19:46:22
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, arr[100005];
int l[100005], len = 1;
int pos[100005];

int binarySearch(int low, int high, int key) {
    while (low <= high) {
        int mid = (low + high) / 2;
        if (l[mid] < key)
            low = mid + 1;
        else
            high = mid - 1;
    }

    return low;
}

void los() {
    l[1] = arr[1];
    pos[1] = 1;

    for (int i = 1; i <= n; i++) {
        int low = 1, high = len;
        while (low <= high) {
            int mid = low + (high - low) / 2;
            if (arr[i] > l[mid])
                low = mid + 1;
            else
                high = mid - 1;
        }

        l[low] = arr[i];
        len = max(low, len);
        pos[i] = low;
    }

    fout << len << "\n";
    for (int i = 1; i <= len; i++)
        fout << l[i] << " ";
}

int main() {
    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> arr[i];

    los();
}