Cod sursa(job #2596037)

Utilizator blackmanta45Andrei blackmanta45 Data 9 aprilie 2020 05:11:45
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int sol[100010], i, n, j,x;
const int INF = 1e9;
vector<int>a;
struct {
	int val;
	int prev;
}A[100010];

void lis(vector<int> const& a) {
    int n = a.size();
    vector<int> d(n + 1, INF);
    d[0] = -INF;

    for (int i = 0; i < n; i++) {
        int j = upper_bound(d.begin(), d.end(), a[i]) - d.begin();
        if(a[i]!=d[j-1])d[j] = a[i];
    }
    for (i = 1; i <= n, d[i] < INF; i++)
        cout << d[i] << " ";
}

int main() {
    cin >> n;
    for (i = 1; i <= n; i++)
        cin >> x, a.push_back(x);
    lis(a);
    
}