| 16644 | 2025-05-07 18:04:14 | algopro | Maximum felosztás | cpp17 | Time limit exceeded 25/100 | 1.1s | 24108 KiB |
// UUID: f25383c4-c4b3-461c-abcd-06a49a357bee
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAXN = 2001;
const ll INF = 1e15;
const ll MOD = 1e9+7;
ll a[MAXN], b[MAXN], dp[MAXN][MAXN], pref[MAXN][MAXN];
map<ll, int> 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<int> st;
st.emplace_back(0);
pref[0][0] = dp[0][0] = 1;
for (int i = 1; i <= n; i++) {
while (!st.empty() && a[st.back()] <= a[i]) st.pop_back();
st.emplace_back(i);
for (int a = 1; a <= n; a++) {
for (int b = 0; b <= m; b++) {
pref[b][a] = pref[b][a-1] + dp[b][a];
}
}
for (int j = st.size()-1; j >= 1; j--) {
if (value_to_bidx.count(a[st[j]])) {
int idx = value_to_bidx[a[st[j]]];
int l = st[j-1]+1, r = st[j];
dp[idx][i] += pref[idx-1][r-1] - (l >= 2 ? pref[idx-1][l-2] : 0);
dp[idx][i] %= MOD;
}
}
}
cout << dp[m][n] << "\n";
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int t = 1;
// cin >> t;
while (t--) solve();
return 0;
}| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 1ms | 316 KiB | ||||
| 2 | Time limit exceeded | 1.093s | 8348 KiB | ||||
| subtask2 | 10/10 | ||||||
| 3 | Accepted | 2ms | 316 KiB | ||||
| 4 | Accepted | 2ms | 316 KiB | ||||
| 5 | Accepted | 2ms | 316 KiB | ||||
| 6 | Accepted | 2ms | 328 KiB | ||||
| 7 | Accepted | 2ms | 316 KiB | ||||
| 8 | Accepted | 2ms | 316 KiB | ||||
| subtask3 | 15/15 | ||||||
| 9 | Accepted | 78ms | 2884 KiB | ||||
| 10 | Accepted | 37ms | 1464 KiB | ||||
| 11 | Accepted | 37ms | 1756 KiB | ||||
| 12 | Accepted | 14ms | 1180 KiB | ||||
| 13 | Accepted | 6ms | 564 KiB | ||||
| 14 | Accepted | 2ms | 316 KiB | ||||
| 15 | Accepted | 190ms | 4660 KiB | ||||
| 16 | Accepted | 212ms | 5252 KiB | ||||
| 17 | Accepted | 56ms | 2112 KiB | ||||
| 18 | Accepted | 57ms | 2356 KiB | ||||
| subtask4 | 0/15 | ||||||
| 19 | Time limit exceeded | 1.077s | 16232 KiB | ||||
| 20 | Time limit exceeded | 1.077s | 8500 KiB | ||||
| 21 | Accepted | 630ms | 2612 KiB | ||||
| 22 | Accepted | 43ms | 748 KiB | ||||
| 23 | Accepted | 43ms | 564 KiB | ||||
| 24 | Accepted | 24ms | 564 KiB | ||||
| 25 | Time limit exceeded | 1.082s | 8560 KiB | ||||
| 26 | Time limit exceeded | 1.082s | 8600 KiB | ||||
| 27 | Time limit exceeded | 1.082s | 24108 KiB | ||||
| 28 | Time limit exceeded | 1.083s | 24040 KiB | ||||
| 29 | Accepted | 82ms | 844 KiB | ||||
| 30 | Accepted | 82ms | 820 KiB | ||||
| 31 | Time limit exceeded | 1.085s | 5288 KiB | ||||
| 32 | Time limit exceeded | 1.083s | 4148 KiB | ||||
| 33 | Time limit exceeded | 1.092s | 12340 KiB | ||||
| 34 | Time limit exceeded | 1.092s | 12308 KiB | ||||
| 35 | Time limit exceeded | 1.085s | 8432 KiB | ||||
| 36 | Time limit exceeded | 1.083s | 8244 KiB | ||||
| 37 | Accepted | 651ms | 3368 KiB | ||||
| 38 | Accepted | 634ms | 2612 KiB | ||||
| subtask5 | 0/60 | ||||||
| 39 | Runtime error | 2ms | 316 KiB | ||||
| 40 | Runtime error | 2ms | 316 KiB | ||||
| 41 | Runtime error | 1ms | 316 KiB | ||||
| 42 | Runtime error | 1ms | 564 KiB | ||||
| 43 | Runtime error | 2ms | 316 KiB | ||||
| 44 | Runtime error | 1ms | 316 KiB | ||||
| 45 | Runtime error | 1ms | 316 KiB | ||||
| 46 | Runtime error | 1ms | 316 KiB | ||||
| 47 | Runtime error | 1ms | 316 KiB | ||||
| 48 | Runtime error | 1ms | 508 KiB | ||||
| 49 | Runtime error | 1ms | 316 KiB | ||||
| 50 | Runtime error | 1ms | 316 KiB | ||||
| 51 | Runtime error | 2ms | 316 KiB | ||||
| 52 | Runtime error | 2ms | 508 KiB | ||||
| 53 | Runtime error | 2ms | 316 KiB | ||||
| 54 | Runtime error | 2ms | 316 KiB | ||||
| 55 | Time limit exceeded | 1.082s | 1332 KiB | ||||
| 56 | Runtime error | 1ms | 316 KiB | ||||
| 57 | Runtime error | 1ms | 316 KiB | ||||
| 58 | Runtime error | 1ms | 316 KiB | ||||
| 59 | Runtime error | 3ms | 568 KiB | ||||
| 60 | Runtime error | 1ms | 316 KiB | ||||
| 61 | Time limit exceeded | 1.1s | 2612 KiB | ||||
| 62 | Runtime error | 1ms | 316 KiB | ||||
| 63 | Runtime error | 3ms | 568 KiB | ||||
| 64 | Runtime error | 1ms | 508 KiB | ||||
| 65 | Runtime error | 3ms | 564 KiB | ||||
| 66 | Runtime error | 1ms | 316 KiB | ||||
| 67 | Runtime error | 3ms | 568 KiB | ||||
| 68 | Runtime error | 1ms | 316 KiB | ||||
| 69 | Runtime error | 3ms | 564 KiB | ||||
| 70 | Runtime error | 1ms | 316 KiB | ||||
| 71 | Runtime error | 12ms | 8500 KiB | ||||