Advertisement
Arrias

Untitled

Dec 11th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6.  
  7. ll dp[2500][2500], sum[2500][2500];
  8.  
  9. ll const md = 1e9 + 7;
  10.  
  11. int main() {
  12. ios::sync_with_stdio(0);
  13. cin.tie(0);
  14. ll n;
  15. cin >> n;
  16. vector <ll> a(n);
  17. for (int i = 0; i < n; ++i) {
  18. cin >> a[i];
  19. dp[i][i] = 1;
  20. }
  21. for (int i = 0; i < n; ++i) {
  22. for (int j = i - 1; j > -1; --j) {
  23. if (a[i] == a[j]) {
  24. ll add = 0;
  25. for (int k = j + 1; k < i; ++k)
  26. for (int h = k; h > j; --h)
  27. add += dp[h][k], add %= md;
  28. dp[j][i] += add;
  29. dp[j][i] %= md;
  30. dp[j][i]++;
  31. dp[j][i] %= md;
  32. }
  33. }
  34. }
  35. ll ans = 0;
  36. for (int i = 0; i < n; ++i) {
  37. for (int j = i; j > -1; --j) {
  38. ans += dp[j][i];
  39. ans %= md;
  40. }
  41. }
  42. cout << ans << "\n";
  43. return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement