Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 300;
- int rangeDP[N][N], A[N];
- int main () {
- freopen ("248.in", "r", stdin);
- freopen ("248.out", "w", stdout);
- int n, res = 0;
- cin >> n;
- for (int i = 1; i <= n; i++)
- cin >> A[i];
- for (int i = 1; i <= n; i++)
- rangeDP[i][i] = A[i];
- for (int len = 2; len <= n; len++) {
- for (int i = 1; i + len - 1 <= n; i++) {
- int j = i + len - 1;
- for (int k = i; k < j; k++) {
- if (rangeDP[i][k] == rangeDP[k + 1][j])
- rangeDP[i][j] = max (rangeDP[i][j], rangeDP[i][k] + 1);
- }
- res = max (res, rangeDP[i][j]);
- }
- }
- cout << res << "\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement