162182025-04-14 17:28:41Error42Növekvő Ödön és a Másoló Varázslócpp17Hibás válasz 20/100374ms2688 KiB
#include <algorithm>
#include <cassert>
#include <iostream>
#include <variant>
#include <vector>

using namespace std;

int const INF = 2e9;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, m;
    cin >> n >> m;

    vector<int> a(n);
    for (int& x : a)
        cin >> x;

    a.insert(a.begin(), 0);
    a.push_back(INF);

    vector<int> b(m);
    for (int& x : b)
        cin >> x;

    sort(b.begin(), b.end());

    int lis_max_len = 0;
    vector<int> lis = { 0 };

    for (int j = 1; j < a.size(); j++) {
        auto const it = upper_bound(lis.begin(), lis.end(), monostate(), [&](monostate _, int const& i) {
            return a[i] >= a[j] // not increasing
                || lower_bound(b.begin(), b.end(), a[j]) - lower_bound(b.begin(), b.end(), a[i]) + 1 < j - i; // not enough elements to put between
        });

        if (it == lis.begin())
            continue;

        if (it == lis.end())
            lis.push_back(j);
        else
            *it = j;
    }

#ifdef _DEBUG
    assert(count(lis.begin(), lis.end(), n + 1));
#endif

    cout << n - (find(lis.begin(), lis.end(), n + 1) - lis.begin() - 1) << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Hibás válasz64ms820 KiB
subtask25/5
3Elfogadva48ms1076 KiB
4Elfogadva48ms1076 KiB
5Elfogadva48ms1076 KiB
subtask310/10
6Elfogadva1ms316 KiB
7Elfogadva1ms316 KiB
8Elfogadva1ms316 KiB
subtask40/15
9Hibás válasz1ms316 KiB
10Hibás válasz1ms316 KiB
11Hibás válasz1ms316 KiB
12Elfogadva1ms316 KiB
subtask55/5
13Elfogadva3ms316 KiB
14Elfogadva3ms316 KiB
15Elfogadva3ms316 KiB
subtask60/5
16Elfogadva3ms508 KiB
17Hibás válasz3ms500 KiB
18Hibás válasz3ms316 KiB
19Elfogadva3ms316 KiB
subtask70/10
20Hibás válasz4ms468 KiB
21Hibás válasz6ms316 KiB
22Elfogadva4ms316 KiB
23Hibás válasz4ms316 KiB
24Hibás válasz7ms480 KiB
subtask80/25
25Elfogadva46ms1204 KiB
26Elfogadva46ms1208 KiB
27Elfogadva46ms1204 KiB
28Elfogadva1ms316 KiB
29Elfogadva123ms1204 KiB
30Hibás válasz150ms1196 KiB
31Hibás válasz136ms1200 KiB
32Hibás válasz141ms1200 KiB
33Hibás válasz159ms1196 KiB
34Hibás válasz136ms1212 KiB
35Hibás válasz163ms1196 KiB
36Hibás válasz138ms1216 KiB
37Hibás válasz150ms1196 KiB
38Hibás válasz150ms1208 KiB
39Elfogadva116ms1200 KiB
40Elfogadva72ms1220 KiB
41Hibás válasz159ms1200 KiB
42Hibás válasz98ms1236 KiB
43Hibás válasz122ms1196 KiB
44Hibás válasz150ms1204 KiB
45Hibás válasz127ms1196 KiB
subtask90/25
46Hibás válasz284ms2084 KiB
47Hibás válasz328ms2008 KiB
48Hibás válasz254ms1988 KiB
49Elfogadva252ms2004 KiB
50Elfogadva261ms1844 KiB
51Hibás válasz254ms1844 KiB
52Hibás válasz338ms2536 KiB
53Hibás válasz374ms2688 KiB
54Hibás válasz363ms1972 KiB
55Elfogadva130ms1972 KiB