Advertisement
tepyotin2

248

Jul 8th, 2025
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #include <cstdio>
  2. #include <ios>
  3. #include <iostream>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. const int MAXN = 250;
  9. int a[MAXN];
  10. int memo[MAXN][MAXN];
  11.  
  12. int solve(int l, int r) {
  13.     if (l == r) return a[l];
  14.     if (memo[l][r] != 0) return memo[l][r];
  15.  
  16.     int res = 0;
  17.  
  18.     for (int k = l; k < r; ++k) {
  19.         int left = solve(l, k);
  20.         int right = solve(k + 1, r);
  21.         if (left == right && left != 0) {
  22.             res = max(res, left + 1);
  23.         }
  24.     }
  25.  
  26.     memo[l][r] = res;
  27.     return res;
  28. }
  29.  
  30. int main() {
  31.     ios_base::sync_with_stdio(0), cin.tie(0);
  32.  
  33.     freopen("248.in", "r", stdin);
  34.     freopen("248.out", "w", stdout);
  35.  
  36.     int N;
  37.     cin >> N;
  38.  
  39.     for (int i = 0; i < N; ++i) {
  40.         cin >> a[i];
  41.     }
  42.  
  43.     int ans = 0;
  44.     for (int i = 0; i < N; ++i) {
  45.         for (int j = i; j < N; ++j) {
  46.             ans = max(ans, solve(i, j));
  47.         }
  48.     }
  49.  
  50.     cout << ans << endl;
  51.     return 0;
  52. }
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement