Ты же хочешь вместо массивов векторы использовать, так и начни оттуда где у тебя сами массивы обрабатываются
#include <stdio.h>
#include <iostream>
#include <iostream>
using namespace std;
// функция поиска палиндрома
int isPalindromic(int* p, int* q) {
while (p < q) {
if (*p++ != *q--)
return 0;
}
return 1;
}
//int max(int n, int* x, int max_len, int max_pos) {
// return(max_pos, max_len);
// ввод массива
int main() {
setlocale(LC_ALL, "russian");
int n, *x;
cout << "Введите кол-во элементов массива\n";
cin >> n;
x = new int[n];
cout << "Введите элементы массива\n";
for (int i = 0; i < n; i++) cin >> x[i];
int max_pos = 0, max_len = 1;
// поиск максимального палиндрома из найденных
for (int i = 0; i < n; i++) {
for (int j = i + max_len; j < n; j++) {
if (isPalindromic(x + i, x + j)) {
max_pos = i;
max_len = j - i + 1;
}
}
}
// вывод массива, вывод индексов найденного палиндрома, вывод самого палиндрома
printf("Вид изначального массива:\n");
for (int i = 0; i < n; i++) cout << x[i] << " ";
cout << "\n";
printf("Самый длинный палиндром начинается с индекса: %d, его длина: %d\n", max_pos, max_len);
printf("Вид полученного палиндрома:\n");
for (int i = max_pos; i < max_pos + max_len; i++) cout << x[i] << " ";
return 0;
}