162182025-04-14 17:28:41Error42Növekvő Ödön és a Másoló Varázslócpp17Wrong answer 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";
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Wrong answer64ms820 KiB
subtask25/5
3Accepted48ms1076 KiB
4Accepted48ms1076 KiB
5Accepted48ms1076 KiB
subtask310/10
6Accepted1ms316 KiB
7Accepted1ms316 KiB
8Accepted1ms316 KiB
subtask40/15
9Wrong answer1ms316 KiB
10Wrong answer1ms316 KiB
11Wrong answer1ms316 KiB
12Accepted1ms316 KiB
subtask55/5
13Accepted3ms316 KiB
14Accepted3ms316 KiB
15Accepted3ms316 KiB
subtask60/5
16Accepted3ms508 KiB
17Wrong answer3ms500 KiB
18Wrong answer3ms316 KiB
19Accepted3ms316 KiB
subtask70/10
20Wrong answer4ms468 KiB
21Wrong answer6ms316 KiB
22Accepted4ms316 KiB
23Wrong answer4ms316 KiB
24Wrong answer7ms480 KiB
subtask80/25
25Accepted46ms1204 KiB
26Accepted46ms1208 KiB
27Accepted46ms1204 KiB
28Accepted1ms316 KiB
29Accepted123ms1204 KiB
30Wrong answer150ms1196 KiB
31Wrong answer136ms1200 KiB
32Wrong answer141ms1200 KiB
33Wrong answer159ms1196 KiB
34Wrong answer136ms1212 KiB
35Wrong answer163ms1196 KiB
36Wrong answer138ms1216 KiB
37Wrong answer150ms1196 KiB
38Wrong answer150ms1208 KiB
39Accepted116ms1200 KiB
40Accepted72ms1220 KiB
41Wrong answer159ms1200 KiB
42Wrong answer98ms1236 KiB
43Wrong answer122ms1196 KiB
44Wrong answer150ms1204 KiB
45Wrong answer127ms1196 KiB
subtask90/25
46Wrong answer284ms2084 KiB
47Wrong answer328ms2008 KiB
48Wrong answer254ms1988 KiB
49Accepted252ms2004 KiB
50Accepted261ms1844 KiB
51Wrong answer254ms1844 KiB
52Wrong answer338ms2536 KiB
53Wrong answer374ms2688 KiB
54Wrong answer363ms1972 KiB
55Accepted130ms1972 KiB