listings
Auteur du problème : | Imran AKKI |
Préparé par : | Imran AKKI |
Édité par : | Hasan Saleh (MathModel) |
Solution On sait que pour tous x,y \ge 0, il est vrai que x \& y \le \min(x,y) car au meilleur des cas ils partagent tous les bits.
On veut montrer que réaliser l'opération séquentiellement est optimal, car chaque fois la réponse restera soit la même, soit diminuera à cause de la définition de l'opérateur AND, c'est-à-dire que la réponse est
Simulons le processus pour n=3 :
Il est évident que nous ne pouvons plus effectuer d'opérations sur le tableau et que c'est la valeur minimale possible, donc la réponse optimale est [\underbrace{x,x,...,x}_{n\text{ fois}}], ce qui équivaut à effectuer l'opération un nombre infini de fois.
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)Complexité .