Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- ll dp[2500][2500], sum[2500][2500];
- ll const md = 1e9 + 7;
- int main() {
- ios::sync_with_stdio(0);
- cin.tie(0);
- ll n;
- cin >> n;
- vector <ll> a(n);
- for (int i = 0; i < n; ++i) {
- cin >> a[i];
- dp[i][i] = 1;
- }
- for (int i = 0; i < n; ++i) {
- for (int j = i - 1; j > -1; --j) {
- if (a[i] == a[j]) {
- ll add = 0;
- for (int k = j + 1; k < i; ++k)
- for (int h = k; h > j; --h)
- add += dp[h][k], add %= md;
- dp[j][i] += add;
- dp[j][i] %= md;
- dp[j][i]++;
- dp[j][i] %= md;
- }
- }
- }
- ll ans = 0;
- for (int i = 0; i < n; ++i) {
- for (int j = i; j > -1; --j) {
- ans += dp[j][i];
- ans %= md;
- }
- }
- cout << ans << "\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement