Caso # | Resultado | Tiempo | Memoria |
---|---|---|---|
#1 |
Correcto
|
0.023 s | 3 KBi |
#2 |
Correcto
|
0.021 s | 3 KBi |
#3 |
Correcto
|
0.023 s | 3 KBi |
#4 |
Correcto
|
0.029 s | 3 KBi |
#5 |
Correcto
|
0.024 s | 3 KBi |
#6 |
Correcto
|
0.024 s | 3 KBi |
#7 |
Correcto
|
0.032 s | 3 KBi |
#8 |
Correcto
|
0.024 s | 3 KBi |
#9 |
Correcto
|
0.025 s | 3 KBi |
#10 |
Correcto
|
0.025 s | 3 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())) def contar_mayores_x(arreglo, qs): arreglo.sort() reversed_arreglo = sorted(arreglo, reverse=True) 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 primer_menor = arreglo[index_primer_menor] respuesta = reversed_arreglo.index(primer_menor) respuestas.append(respuesta) return respuestas for r in contar_mayores_x(arreglo,qs): print(r)