Produto Escalar Cíclico
Você recebe dois vetores de inteiros $A$ e $B$, ambos de tamanho $N$.
O vetor $B$ é cíclico, ou seja, você pode rotacioná-lo qualquer número de posições para a esquerda ou para a direita. Uma rotação move os elementos circularmente, mantendo o tamanho do vetor.
Para cada possível rotação de $B$, calcule o dot product entre $A$ e o vetor rotacionado.
O dot product entre dois vetores $A$ e $B$ é definido como:
$$ A \cdot B = \sum_{i=0}^{N-1} A_i \times B_i $$
Seu objetivo é determinar:
- o menor valor possível
- o maior valor possível
que podem ser obtidos ao rotacionar o vetor $B$.
Input
A primeira linha contém um inteiro N $(1 \le N \le 2 \times 10^5)$.
A segunda linha contém N inteiros $A_i$ $( 0 \le A_i \le 10^5 )$.
A terceira linha contém N inteiros $B_i$ $( 0 \le B_i \le 10^5 )$.
Output
Imprima dois inteiros:
min max
onde:
- min é o menor dot product possível
- max é o maior dot product possível
considerando todas as rotações cíclicas de (B).
3 1 2 3 3 2 1
10 13
4 7 1 4 0 0 7 8 6
39 81
4 1 2 3 4 5 6 7 8
62 70
Explanation 3:
As rotações possíveis de (B) são:
[5 6 7 8]
[8 5 6 7]
[7 8 5 6]
[6 7 8 5]
Os dot products correspondentes são:
1*5 + 2*6 + 3*7 + 4*8 = 70
1*8 + 2*5 + 3*6 + 4*7 = 64
1*7 + 2*8 + 3*5 + 4*6 = 62
1*6 + 2*7 + 3*8 + 4*5 = 64