listings
Autor del Problema: | Imran AKKI |
Preparado por: | Imran AKKI |
Editado por: | Hasan Saleh (MathModel) |
Solución Sabemos que para cualquier x,y \ge 0 se cumple que x \& y \le \min(x,y) porque en el mejor de los casos comparten todos los bits.
Queremos mostrar que realizar la operación secuencialmente es óptimo, porque cada vez la respuesta permanecerá igual o disminuirá debido a la definición de AND, es decir, la respuesta es
Simulemos el proceso para n=3
Es obvio que no podemos hacer más operaciones sobre el arreglo y ese es el valor mínimo posible, así que la respuesta óptima es [\underbrace{x,x,...,x}_{n\text{ veces}}], lo cual es equivalente a realizar la operación un número infinito de veces.
for _ in range(int(input())):
n=int(input())
a=list(map(int,input().split()))
A=a[0]
for i in a:
A&=i
print(A)Complejidad .