162242025-04-14 18:07:14gortomiNövekvő Ödön és a Másoló Varázslócpp17Elfogadva 100/100162ms4404 KiB
#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    const int inf = 1e9 + 5;
    int n, m;
    cin >> n >> m;
    vector<int> a(n + 2), b(m);
    for(int i = 1; i <= n; i++) cin >> a[i];
    a[n + 1] = inf;
    for(int j = 0; j < m; j++) cin >> b[j];
    sort(b.begin(), b.end());
    vector<int> dp(n + 2);
    set<array<int, 3> > s;
    s.insert({0, 0});
    for(int i = 1; i <= n + 1; i++)
    {
        int ind = lower_bound(b.begin(), b.end(), a[i]) - b.begin();
        int val = ind - i + 1;
        auto it = s.lower_bound({val, a[i], -inf});
        if(it == s.begin())
        {
            dp[i] = n + 1;
            continue;
        }
        it--;
        dp[i] = (*it)[2] + i - 1;
        //cout << i << " " << dp[i] << " " << val << " " << it -> first << " " << it -> second << "\n";
        int ins = ind - i, ival = dp[i] - i;
        while(1)
        {
            auto it2 = s.lower_bound({ins, a[i], -inf});
            if(it2 != s.end() && (*it2)[2] >= ival) s.erase(it2);
            else break;
        }
        s.insert({ins, a[i], ival});

    }
    cout << dp[n + 1] << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva35ms820 KiB
subtask25/5
3Elfogadva48ms1076 KiB
4Elfogadva48ms1076 KiB
5Elfogadva48ms1076 KiB
subtask310/10
6Elfogadva1ms508 KiB
7Elfogadva1ms316 KiB
8Elfogadva1ms316 KiB
subtask415/15
9Elfogadva1ms316 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms316 KiB
12Elfogadva1ms316 KiB
subtask55/5
13Elfogadva3ms316 KiB
14Elfogadva3ms352 KiB
15Elfogadva3ms316 KiB
subtask65/5
16Elfogadva3ms316 KiB
17Elfogadva3ms316 KiB
18Elfogadva3ms508 KiB
19Elfogadva3ms316 KiB
subtask710/10
20Elfogadva4ms316 KiB
21Elfogadva4ms316 KiB
22Elfogadva4ms316 KiB
23Elfogadva3ms316 KiB
24Elfogadva4ms464 KiB
subtask825/25
25Elfogadva48ms1472 KiB
26Elfogadva48ms1468 KiB
27Elfogadva48ms1468 KiB
28Elfogadva1ms316 KiB
29Elfogadva78ms1476 KiB
30Elfogadva70ms1476 KiB
31Elfogadva70ms1484 KiB
32Elfogadva71ms1588 KiB
33Elfogadva71ms1588 KiB
34Elfogadva71ms1488 KiB
35Elfogadva72ms1632 KiB
36Elfogadva70ms1772 KiB
37Elfogadva71ms1472 KiB
38Elfogadva70ms1588 KiB
39Elfogadva78ms1588 KiB
40Elfogadva57ms1592 KiB
41Elfogadva71ms1588 KiB
42Elfogadva46ms1844 KiB
43Elfogadva70ms1624 KiB
44Elfogadva68ms1588 KiB
45Elfogadva71ms1476 KiB
subtask925/25
46Elfogadva138ms2612 KiB
47Elfogadva143ms2776 KiB
48Elfogadva138ms2612 KiB
49Elfogadva162ms2776 KiB
50Elfogadva162ms2772 KiB
51Elfogadva162ms2768 KiB
52Elfogadva136ms4404 KiB
53Elfogadva149ms3704 KiB
54Elfogadva150ms2868 KiB
55Elfogadva109ms2612 KiB