162242025-04-14 18:07:14gortomiNövekvő Ödön és a Másoló Varázslócpp17Accepted 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";
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted35ms820 KiB
subtask25/5
3Accepted48ms1076 KiB
4Accepted48ms1076 KiB
5Accepted48ms1076 KiB
subtask310/10
6Accepted1ms508 KiB
7Accepted1ms316 KiB
8Accepted1ms316 KiB
subtask415/15
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms316 KiB
12Accepted1ms316 KiB
subtask55/5
13Accepted3ms316 KiB
14Accepted3ms352 KiB
15Accepted3ms316 KiB
subtask65/5
16Accepted3ms316 KiB
17Accepted3ms316 KiB
18Accepted3ms508 KiB
19Accepted3ms316 KiB
subtask710/10
20Accepted4ms316 KiB
21Accepted4ms316 KiB
22Accepted4ms316 KiB
23Accepted3ms316 KiB
24Accepted4ms464 KiB
subtask825/25
25Accepted48ms1472 KiB
26Accepted48ms1468 KiB
27Accepted48ms1468 KiB
28Accepted1ms316 KiB
29Accepted78ms1476 KiB
30Accepted70ms1476 KiB
31Accepted70ms1484 KiB
32Accepted71ms1588 KiB
33Accepted71ms1588 KiB
34Accepted71ms1488 KiB
35Accepted72ms1632 KiB
36Accepted70ms1772 KiB
37Accepted71ms1472 KiB
38Accepted70ms1588 KiB
39Accepted78ms1588 KiB
40Accepted57ms1592 KiB
41Accepted71ms1588 KiB
42Accepted46ms1844 KiB
43Accepted70ms1624 KiB
44Accepted68ms1588 KiB
45Accepted71ms1476 KiB
subtask925/25
46Accepted138ms2612 KiB
47Accepted143ms2776 KiB
48Accepted138ms2612 KiB
49Accepted162ms2776 KiB
50Accepted162ms2772 KiB
51Accepted162ms2768 KiB
52Accepted136ms4404 KiB
53Accepted149ms3704 KiB
54Accepted150ms2868 KiB
55Accepted109ms2612 KiB