Submission #973057

# Submission time Handle Problem Language Result Execution time Memory
973057 2024-05-01T12:59:11 Z TAhmed33 Žarulje (COI15_zarulje) C++
0 / 100
1000 ms 149596 KB
#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
int add (int a, int b) {
	a += b; if (a >= MOD) a -= MOD;
	return a;
}
int n, k, a[200001];
map <pair <int, int>, int> dp;
int ans (int l, int r) {
	if (l == 1 || r == n) {
		return 1;
	}
	if (dp.count({l, r})) return dp[{l, r}];
	int sum = 0;
	int x = max(a[l - 1], a[r + 1]);
	if (a[l - 1] == x) sum = add(sum, ans(l - 1, r));
	if (a[r + 1] == x) sum = add(sum, ans(l, r + 1));
	return dp[{l, r}] = sum;
}
void solve () {
	cin >> n >> k;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	while (k--) {
		int x; cin >> x;
		dp.clear();
		cout << ans(x, x) << '\n';
	}
}
signed main () {
	ios::sync_with_stdio(0); cin.tie(0);
	int t = 1; //cin >> t;
	while (t--) solve();
}
# Verdict Execution time Memory Grader output
1 Correct 6 ms 348 KB Output is correct
2 Correct 24 ms 792 KB Output is correct
3 Execution timed out 1039 ms 5412 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1065 ms 149596 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 348 KB Output is correct
2 Correct 24 ms 792 KB Output is correct
3 Execution timed out 1039 ms 5412 KB Time limit exceeded
4 Halted 0 ms 0 KB -