Caso # | Resultado | Tiempo | Memoria |
---|---|---|---|
#1 |
Correcto
|
0.021 s | 3 KBi |
#2 |
Correcto
|
0.024 s | 3 KBi |
#3 |
Correcto
|
0.023 s | 3 KBi |
#4 |
Correcto
|
0.022 s | 3 KBi |
#5 |
Correcto
|
0.023 s | 3 KBi |
#6 |
Correcto
|
0.026 s | 3 KBi |
#7 |
Correcto
|
0.022 s | 3 KBi |
#8 |
Correcto
|
0.022 s | 3 KBi |
#9 |
Correcto
|
0.023 s | 3 KBi |
#10 |
Correcto
|
0.028 s | 4 KBi |
from bisect import bisect N = int(input()) arreglo = [int(x) for x in input().split()] c = int(input()) qs = [] for i in range(c): qs.append(int(input())) # arreglo = [3, 4, 1, 2, 2,6] def contar_mayores_x(arreglo, qs): arreglo.sort() # print(arreglo) reversed_arreglo = sorted(arreglo, reverse=True) # print(reversed_arreglo) respuestas = [] for q in qs: # casos base: si el elemento es <min o elem > max: if q<min(arreglo): respuestas.append(len(arreglo)) continue if q>=max(arreglo): respuestas.append(0) continue index_primer_menor = bisect(arreglo, q)-1 # print("index_primer_menor", index_primer_menor) primer_menor = arreglo[index_primer_menor] # print("primer_menor",primer_menor) respuesta = reversed_arreglo.index(primer_menor) # print(respuesta) respuestas.append(respuesta) return respuestas for r in contar_mayores_x(arreglo,qs): print(r)