Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- using namespace std;
- int N; //Number of ints
- bool palindrome(int X[], int low, int high)
- {
- if(high == low)
- return 1;
- int mid = (high - low)/2;
- for(int i = 0; i <= mid; i++)
- {
- if(X[low + i] != X[high - i])
- return 0;
- }
- return 1;
- }
- int main()
- {
- ios::sync_with_stdio(0);
- cin >> N;
- int a[N];
- int bestpal[N + 1];
- for(int i = 0; i < N; i++){
- cin >> a[i];
- bestpal[i] = N + 1;
- }
- bestpal[N] = 0;
- for(int i = N - 1; i >= 0 ; i--)
- {
- for(int j = i; j < N; j++)
- {
- if(a[i] == a[j])
- {
- if(palindrome(a, i, j))
- bestpal[i] = min(1 + bestpal[j+1],bestpal[i]);
- }
- }
- }
- cout << bestpal[0];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement