162192025-04-14 17:53:09Error42Növekvő Ödön és a Másoló Varázslócpp17Futási hiba 5/100680ms1992 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 it = find_if_not(lis.rbegin(), lis.rend(), [&](int const& i) {
#ifdef _DEBUG
            cerr << i << " " << j
                << " : " << a[i] << ">=" << a[j]
                << " | " << lower_bound(b.begin(), b.end(), a[j]) - lower_bound(b.begin(), b.end(), a[i]) + 1 << "<" << j - i << endl;
#endif

            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.rend())
            continue;

        if (it == lis.rbegin())
            lis.push_back(j);
        else
            *(it + 1) = 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
2Futási hiba32ms880 KiB
subtask20/5
3Elfogadva50ms1076 KiB
4Elfogadva50ms1076 KiB
5Futási hiba50ms1220 KiB
subtask30/10
6Futási hiba1ms316 KiB
7Futási hiba1ms316 KiB
8Futási hiba1ms316 KiB
subtask40/15
9Futási hiba1ms508 KiB
10Futási hiba1ms320 KiB
11Futási hiba1ms316 KiB
12Futási hiba1ms316 KiB
subtask55/5
13Elfogadva3ms316 KiB
14Elfogadva3ms500 KiB
15Elfogadva3ms316 KiB
subtask60/5
16Futási hiba3ms316 KiB
17Hibás válasz4ms316 KiB
18Hibás válasz3ms316 KiB
19Futási hiba3ms316 KiB
subtask70/10
20Hibás válasz16ms508 KiB
21Futási hiba3ms316 KiB
22Futási hiba3ms448 KiB
23Futási hiba2ms316 KiB
24Futási hiba3ms316 KiB
subtask80/25
25Futási hiba50ms1388 KiB
26Futási hiba48ms1196 KiB
27Futási hiba48ms1192 KiB
28Elfogadva1ms316 KiB
29Futási hiba46ms1204 KiB
30Hibás válasz393ms1220 KiB
31Futási hiba529ms1216 KiB
32Futási hiba41ms1192 KiB
33Futási hiba68ms1196 KiB
34Futási hiba45ms1196 KiB
35Futási hiba39ms1196 KiB
36Időlimit túllépés671ms1208 KiB
37Futási hiba148ms1200 KiB
38Futási hiba39ms1196 KiB
39Futási hiba41ms1196 KiB
40Hibás válasz48ms1204 KiB
41Futási hiba72ms1200 KiB
42Hibás válasz37ms1060 KiB
43Időlimit túllépés680ms1204 KiB
44Futási hiba71ms1196 KiB
45Futási hiba39ms1200 KiB
subtask90/25
46Időlimit túllépés674ms1844 KiB
47Futási hiba81ms1992 KiB
48Időlimit túllépés674ms1848 KiB
49Futási hiba82ms1984 KiB
50Futási hiba81ms1992 KiB
51Futási hiba79ms1984 KiB
52Futási hiba98ms1712 KiB
53Futási hiba119ms1920 KiB
54Futási hiba128ms1988 KiB
55Futási hiba101ms1976 KiB