Descripción
Un vector creaciente es aquel que cumple con la siguiente propiedad:
Es decir, el elemento i
-ésimo es mayor a la suma de los i-1
anteriores. Por ejemplo, el vector [1, 2, 4]
es un vector creciente porque
El problema ahora se simplifica mucho viendo un vector creciente como una serie geométrica.
Pensemos en un ejemplo base, es decir, un vector sencillo que cumpla, este es
[1, 2, 4, 8, 16, 32]
(Puedes comprobarlo). Fijandose en los elementos,
notar que son los valores de son potencias de 2, es decir,
Cambio en código
En el código se vera que se usa
A_k = 2^(k-1)
, esto es porque las listas en Python empiezan en 0, por lo que el primer elemento esA[0] = 2^0 = 1
.
Pasos
- Leer el número de casos de prueba
T
- Para cada caso de prueba, leer los valores
N
,k
yx
- Calcular el valor de
A_k = 2^(k-1)
- Si
x
es mayor o igual aA_k
, imprimir “SI”, en caso contrario, imprimir “NO”
Código
T = int(input())
for _ in range(T):
N, k, x = map(int, input().split())
# A[k] = 2^(k-1)
A_k = 2 ** (k - 1)
if x >= A_k:
print("SI")
else:
print("NO")