#include #include #include #include #include #include #include int max (int x, int y) { return (x > y)? x : y; } int lps(char *seq, int i, int j) { if (i == j) return 1; if (seq[i] == seq[j] && i + 1 == j) return 2; if (seq[i] == seq[j]) return lps (seq, i+1, j-1) + 2; return max( lps(seq, i, j-1), lps(seq, i+1, j) ); } int main() { char* s = (char *)malloc(512000 * sizeof(char)); scanf("%s", s); int q; scanf("%i", &q); for(int a0 = 0; a0 < q; a0++){ int l; int r; scanf("%i %i", &l, &r); int result = lps(s,l, r); printf("%d\n", result); } return 0; }