1285 2022. 03. 30 09:41:50 Valaki2 Maximum felosztás cpp14 Futási hiba 40/100 1.077s 497700 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second

const int mod = 1e9 + 7;
const int maxn = 1e5;

void solve() {
    int n, m;
    cin >> n >> m;
    // mistaking n, m ?
    vector<int> a(1 + n, 0);
    vector<int> b(1 + m, 0);
    vector<int> v(1, 0);
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
        v.pb(a[i]);
    }
    for(int i = 1; i <= m; i++) {
        cin >> b[i];
        v.pb(b[i]);
    }
    sort(v.begin(), v.end());
    v.resize(unique(v.begin(), v.end()) - v.begin());
    for(int i = 1; i <= n; i++) {
        a[i] = (int) (lower_bound(v.begin(), v.end(), a[i]) - v.begin());
    }
    for(int i = 1; i <= m; i++) {
        b[i] = (int) (lower_bound(v.begin(), v.end(), b[i]) - v.begin());
    }
    // all elements between 1 and n+m<=2e5
    /*for(int i = 1; i <= n; i++) {
        cout << a[i] << " ";
    }
    cout << "\n";
    for(int i = 1; i <= m; i++) {
        cout << b[i] << " ";
    }
    cout << "\n";*/
    vector<vector<pair<int, int> > > intervals(1 + 2 * maxn);
    for(int l = 1; l <= n; l++) {
        int maxi = 0;
        for(int r = l; r <= n; r++) {
            maxi = max(maxi, a[r]);
            intervals[maxi].pb(mp(l, r));
        }
    }
    vector<int> dp;
    dp.assign(1 + n, 0);
    dp[0] = 1;
    for(int i = 1; i <= m; i++) {
        vector<int> new_dp(1 + n, 0);
        for(pair<int, int> p : intervals[b[i]]) {
            new_dp[p.se] = (new_dp[p.se] + dp[p.fi - 1]) % mod;
        }
        dp = new_dp;
    }
    cout << dp[n] << "\n";
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 7ms 11000 KiB
2 Elfogadva 81ms 83348 KiB
subtask2 10/10
3 Elfogadva 9ms 16204 KiB
4 Elfogadva 9ms 15832 KiB
5 Elfogadva 9ms 15984 KiB
6 Elfogadva 8ms 15716 KiB
7 Elfogadva 9ms 15708 KiB
8 Elfogadva 8ms 15584 KiB
subtask3 15/15
9 Elfogadva 9ms 16412 KiB
10 Elfogadva 8ms 15604 KiB
11 Elfogadva 10ms 15996 KiB
12 Elfogadva 10ms 16136 KiB
13 Elfogadva 10ms 15688 KiB
14 Elfogadva 8ms 15776 KiB
15 Elfogadva 10ms 16792 KiB
16 Elfogadva 8ms 16488 KiB
17 Elfogadva 9ms 16628 KiB
18 Elfogadva 8ms 16324 KiB
subtask4 15/15
19 Elfogadva 90ms 91648 KiB
20 Elfogadva 85ms 109772 KiB
21 Elfogadva 75ms 96996 KiB
22 Elfogadva 82ms 96804 KiB
23 Elfogadva 101ms 101692 KiB
24 Elfogadva 79ms 84900 KiB
25 Elfogadva 68ms 86732 KiB
26 Elfogadva 65ms 80580 KiB
27 Elfogadva 59ms 88708 KiB
28 Elfogadva 150ms 91596 KiB
29 Elfogadva 57ms 77388 KiB
30 Elfogadva 82ms 83288 KiB
31 Elfogadva 54ms 80664 KiB
32 Elfogadva 98ms 87832 KiB
33 Elfogadva 59ms 82560 KiB
34 Elfogadva 107ms 89896 KiB
35 Elfogadva 54ms 84088 KiB
36 Elfogadva 116ms 90992 KiB
37 Elfogadva 57ms 80388 KiB
38 Elfogadva 86ms 89392 KiB
subtask5 0/60
39 Futási hiba 426ms 322032 KiB
40 Futási hiba 414ms 384804 KiB
41 Időlimit túllépés 367ms 190440 KiB
42 Időlimit túllépés 458ms 208360 KiB
43 Futási hiba 298ms 333632 KiB
44 Időlimit túllépés 363ms 178048 KiB
45 Futási hiba 363ms 330372 KiB
46 Futási hiba 337ms 319856 KiB
47 Időlimit túllépés 446ms 215864 KiB
48 Időlimit túllépés 449ms 198900 KiB
49 Futási hiba 340ms 340616 KiB
50 Futási hiba 314ms 298048 KiB
51 Időlimit túllépés 400ms 204028 KiB
52 Időlimit túllépés 437ms 209568 KiB
53 Időlimit túllépés 402ms 201276 KiB
54 Futási hiba 375ms 449204 KiB
55 Időlimit túllépés 354ms 201144 KiB
56 Időlimit túllépés 518ms 224656 KiB
57 Időlimit túllépés 411ms 223912 KiB
58 Időlimit túllépés 375ms 205136 KiB
59 Időlimit túllépés 1.026s 198588 KiB
60 Futási hiba 282ms 278040 KiB
61 Időlimit túllépés 398ms 230896 KiB
62 Futási hiba 294ms 398780 KiB
63 Futási hiba 898ms 497556 KiB
64 Időlimit túllépés 293ms 213064 KiB
65 Futási hiba 917ms 497700 KiB
66 Futási hiba 312ms 407020 KiB
67 Időlimit túllépés 1.047s 216184 KiB
68 Futási hiba 314ms 393484 KiB
69 Időlimit túllépés 1.077s 228940 KiB
70 Futási hiba 356ms 328544 KiB
71 Időlimit túllépés 819ms 231040 KiB