| 16656 | 2025-05-07 18:29:09 | szil | Maximum felosztás | cpp17 | Időlimit túllépés 40/100 | 1.095s | 85376 KiB |
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAXN = 100'001;
const ll INF = 1e15;
const ll MOD = 1e9+7;
ll a[MAXN], b[MAXN];
vector<pair<ll, ll>> pref[MAXN];
map<ll, ll> value_to_bidx;
void solve() {
int n, m; cin >> n >> m;
a[0] = INF;
for (int i = 1; i <= n; i++) cin >> a[i];
for (int i = 1; i <= m; i++) cin >> b[i];
for (int i = 1; i <= m; i++) {
value_to_bidx[b[i]] = i;
}
vector<ll> st;
vector<pair<ll, ll>> todo;
st.emplace_back(0);
pref[0].emplace_back(0, 1);
for (int i = 1; i <= m; i++) {
pref[i].emplace_back(0, 0);
}
for (int i = 1; i <= n; i++) {
vector<ll> dp(m+1);
while (!st.empty() && a[st.back()] <= a[i]) {
if (!todo.empty() && todo.back().second == st.back()) todo.pop_back();
st.pop_back();
}
if (value_to_bidx.count(a[i])) todo.emplace_back(st.back()+1, i);
st.emplace_back(i);
for (auto [l, r] : todo) {
ll idx = value_to_bidx[a[r]];
auto it1 = upper_bound(pref[idx-1].begin(), pref[idx-1].end(), make_pair(r-1, INF));
auto it2 = lower_bound(pref[idx-1].begin(), pref[idx-1].end(), make_pair(l-1, 0ll));
ll val1 = 0;
ll val2 = 0;
if (it1 != pref[idx-1].begin()) {
it1--;
val1 = it1->second;
}
if (it2 != pref[idx-1].begin()) {
it2--;
val2 = it2->second;
}
ll res = val1 - val2;
res %= MOD;
if (i == n && idx == m) {
cout << res << "\n";
return;
} else {
pref[idx].emplace_back(i, pref[idx].back().second + res);
}
}
}
cout << "0\n";
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int t = 1;
// cin >> t;
while (t--) solve();
return 0;
}| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 3ms | 2704 KiB | ||||
| 2 | Elfogadva | 6ms | 3128 KiB | ||||
| subtask2 | 10/10 | ||||||
| 3 | Elfogadva | 3ms | 2616 KiB | ||||
| 4 | Elfogadva | 3ms | 2612 KiB | ||||
| 5 | Elfogadva | 3ms | 2796 KiB | ||||
| 6 | Elfogadva | 3ms | 2612 KiB | ||||
| 7 | Elfogadva | 3ms | 2612 KiB | ||||
| 8 | Elfogadva | 3ms | 2612 KiB | ||||
| subtask3 | 15/15 | ||||||
| 9 | Elfogadva | 4ms | 2868 KiB | ||||
| 10 | Elfogadva | 3ms | 2696 KiB | ||||
| 11 | Elfogadva | 3ms | 2868 KiB | ||||
| 12 | Elfogadva | 4ms | 2828 KiB | ||||
| 13 | Elfogadva | 3ms | 2752 KiB | ||||
| 14 | Elfogadva | 3ms | 2612 KiB | ||||
| 15 | Elfogadva | 3ms | 2612 KiB | ||||
| 16 | Elfogadva | 12ms | 4612 KiB | ||||
| 17 | Elfogadva | 3ms | 2612 KiB | ||||
| 18 | Elfogadva | 7ms | 3608 KiB | ||||
| subtask4 | 15/15 | ||||||
| 19 | Elfogadva | 4ms | 3064 KiB | ||||
| 20 | Elfogadva | 6ms | 3124 KiB | ||||
| 21 | Elfogadva | 6ms | 2904 KiB | ||||
| 22 | Elfogadva | 4ms | 2868 KiB | ||||
| 23 | Elfogadva | 3ms | 2868 KiB | ||||
| 24 | Elfogadva | 4ms | 3052 KiB | ||||
| 25 | Elfogadva | 4ms | 2868 KiB | ||||
| 26 | Elfogadva | 4ms | 2868 KiB | ||||
| 27 | Elfogadva | 240ms | 31844 KiB | ||||
| 28 | Elfogadva | 4ms | 2868 KiB | ||||
| 29 | Elfogadva | 6ms | 3124 KiB | ||||
| 30 | Elfogadva | 4ms | 2620 KiB | ||||
| 31 | Elfogadva | 26ms | 6528 KiB | ||||
| 32 | Elfogadva | 3ms | 2868 KiB | ||||
| 33 | Elfogadva | 122ms | 16876 KiB | ||||
| 34 | Elfogadva | 4ms | 2868 KiB | ||||
| 35 | Elfogadva | 75ms | 12416 KiB | ||||
| 36 | Elfogadva | 4ms | 2876 KiB | ||||
| 37 | Elfogadva | 17ms | 4728 KiB | ||||
| 38 | Elfogadva | 4ms | 2872 KiB | ||||
| subtask5 | 0/60 | ||||||
| 39 | Időlimit túllépés | 1.082s | 21660 KiB | ||||
| 40 | Elfogadva | 458ms | 33936 KiB | ||||
| 41 | Elfogadva | 483ms | 39712 KiB | ||||
| 42 | Elfogadva | 384ms | 42472 KiB | ||||
| 43 | Elfogadva | 379ms | 41360 KiB | ||||
| 44 | Elfogadva | 245ms | 18080 KiB | ||||
| 45 | Elfogadva | 144ms | 28980 KiB | ||||
| 46 | Elfogadva | 919ms | 32068 KiB | ||||
| 47 | Elfogadva | 893ms | 29020 KiB | ||||
| 48 | Időlimit túllépés | 1.003s | 37288 KiB | ||||
| 49 | Időlimit túllépés | 1.011s | 32592 KiB | ||||
| 50 | Elfogadva | 966ms | 39080 KiB | ||||
| 51 | Elfogadva | 104ms | 21148 KiB | ||||
| 52 | Elfogadva | 64ms | 12560 KiB | ||||
| 53 | Elfogadva | 64ms | 11164 KiB | ||||
| 54 | Elfogadva | 54ms | 11940 KiB | ||||
| 55 | Elfogadva | 50ms | 8848 KiB | ||||
| 56 | Elfogadva | 811ms | 18020 KiB | ||||
| 57 | Elfogadva | 880ms | 20960 KiB | ||||
| 58 | Időlimit túllépés | 1.093s | 84836 KiB | ||||
| 59 | Elfogadva | 705ms | 6756 KiB | ||||
| 60 | Időlimit túllépés | 1.09s | 85376 KiB | ||||
| 61 | Elfogadva | 32ms | 5172 KiB | ||||
| 62 | Időlimit túllépés | 1.09s | 78692 KiB | ||||
| 63 | Elfogadva | 757ms | 8948 KiB | ||||
| 64 | Időlimit túllépés | 1.095s | 76384 KiB | ||||
| 65 | Elfogadva | 751ms | 9320 KiB | ||||
| 66 | Időlimit túllépés | 1.093s | 78692 KiB | ||||
| 67 | Elfogadva | 699ms | 7008 KiB | ||||
| 68 | Időlimit túllépés | 1.092s | 81516 KiB | ||||
| 69 | Elfogadva | 736ms | 7780 KiB | ||||
| 70 | Időlimit túllépés | 1.093s | 67088 KiB | ||||
| 71 | Elfogadva | 199ms | 9268 KiB | ||||