Solução por Thiago Mota
Primeiramente, uma rotação para a esquerda é a mesma coisa de rotações para a direita e vice-versa. Então só precisamos fazer rotações de um tipo, vamos fazer para a direita.
Ainda mais, uma rotação para a direita em é a mesma coisa que uma rotação para a esquerda em e vice-versa. Logo não precisamos fazer rotações em .
Agora o problema foi reduzido a achar o número de máximo de pares que combinam olhando apenas rotações em . Como rotações em resulta em novamente, temos apenas rotações para a direita possíveis.
Como ambos os vetores são permutações, cada elemento só vai combinar com o seu correspondente em em apenas uma rotação possível. Por exemplo, se é e é , o número em vai combinar com o número em em apenas uma rotação para a direita possível. Então para cada elemento em temos que achar o número de rotações para ele encontrar seu correspondente em e olhar quantos outros pares também combinam. O maior entre eles é a resposta, segue o código.