Untitled

 avatar
unknown
plain_text
5 months ago
542 B
3
Indexable
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> disks(n);
    
    for (int i = 0; i < n; i++) {
        cin >> disks[i];
    }

    vector<int> towers;

    for (int i = 0; i < n; i++) {
        auto it = upper_bound(towers.begin(), towers.end(), disks[i]);
        
        if (it == towers.end()) {
            towers.push_back(disks[i]);
        } else {
            *it = disks[i];
        }
    }

    cout << towers.size() << endl;

    return 0;
}
Editor is loading...
Leave a Comment