Salvens

A

Jul 29th, 2023
1,081
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #include <array>
  2. #include <algorithm>
  3. #include <numeric>
  4. #include <iostream>
  5. #include <vector>
  6. #include <map>
  7. #include <stack>
  8. #include <cassert>
  9. #include <iomanip>
  10.  
  11. using namespace std;
  12.  
  13. #define int long long
  14.  
  15. const long long INF = 1e18 + 7;
  16. const int MAXN = 1e2 + 100;
  17. const int N = 1e5 + 10;
  18.  
  19. array<array<int, MAXN>, MAXN> dp;
  20.  
  21. signed main() {
  22.     ios_base::sync_with_stdio(false);
  23.     cin.tie(nullptr);
  24.     cout.tie(nullptr);
  25.     string s;
  26.     cin >> s;
  27.     int n = s.size();
  28.     for (int i = 0; i < n; ++i) {
  29.         dp[i][i] = 1;
  30.     }
  31.     for (int len = 1; len < n; ++len) {
  32.         for (int l = 0; l + len < n; ++l) {
  33.             int r = l + len;
  34.             dp[l][r] = max({dp[l + 1][r], dp[l][r - 1], dp[l + 1][r - 1] + (s[l] == s[r] ? 2: 0)});
  35.         }
  36.     }
  37.     cout << dp[0][n - 1] << '\n';
  38. }
  39.  
Advertisement
Add Comment
Please, Sign In to add comment