Informática - Nível Avançado - Semana 38

André, o Linguista

André, um jovem estudante de linguística, está analisando uma obra escrita em uma linguagem desconhecida. Ele suspeita que o texto está escrito em Linguaugnil, uma antiga língua falada no continente europeu. Tal idioma possui uma marcante característica: todas as palavras de seu léxico, quando escritas no alfabeto latino, formam palíndromos, assim como todo palíndromo forma uma palavra válida.

Em busca de confirmar sua hipótese, o estudante lhe fornece o texto, representado por uma string S. Além disso, ele faz Q perguntas, as quais você deve responder com o número de palavras válidas (na língua Linguaugnil) formadas por um sub-intervalo do trecho de L_i a R_i (1 \le i \le Q) do texto.

Palíndromo - Definição

Uma palavra é chamada de palíndromo se, e somente se, tiver a mesma leitura da esquerda para a direita e da direita para a esquerda. A palavra “arara”, por exemplo, forma um palíndromo, enquanto “acaba” não constitui um palíndromo.

[collapse]

Entrada

A primeira linha contém a string S (1 \le |S| \le 5 \times 10^3) A segunda linha contém um único inteiro Q (1 \le Q \le 10^6) - o número de perguntas. As próximas Q linhas contêm as perguntas. A i-ésima dessas linhas contém dois inteiros L_i e R_i (1 \le L_i \le R_i \le |S|) a descrição da i-ésima pergunta.

Saída

Imprima Q inteiros - as respostas às perguntas. Imprima as respostas na ordem em que as consultas são fornecidas na entrada, separando os números impressos por espaços.

 

Entrada Saída
caaaba
5
1 1
1 4
2 3
4 6
4 5
 
1 
7
3
4
2
‏‎ ‎

Para submeter sua solução use esse link