█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 3601

Problema 0x62 - Contar elementos mayores a X en un arreglo pequeño

  • Autor: jocarmp08
  • Fecha: 2021-04-03 21:03:07 UTC (Hace alrededor de 3 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.021 s 3 KBi
#2
Incorrecto
0.016 s 3 KBi
#3
Correcto
0.017 s 3 KBi
#4
Correcto
0.021 s 3 KBi
#5
Incorrecto
0.023 s 4 KBi
#6
Incorrecto
0.029 s 6 KBi
#7
Incorrecto
0.027 s 8 KBi
#8
Incorrecto
0.023 s 3 KBi
#9
Incorrecto
0.021 s 3 KBi
#10
Incorrecto
0.036 s 4 KBi
Puntos totales: 30 / 100

Código

def binary_search(array, element):
    lo = 0
    hi = len(array) - 1
    while lo <= hi:
        mid = lo + (hi - lo) // 2
        if element < array[mid]:
            hi = mid - 1
        elif element > array[mid]:
            lo = mid + 1
        else:
            return mid
    return -1


def count_elements_greather_than_x(array, queries):
    array.sort()
    for x in queries:
        x_index = binary_search(array, x)
        if queries != -1:
            print(len(array) - x_index - 1)
        else:
            if x < array[0]:
                print(len(array))
            else:
                print(0)


array_size = int(input())
array = [int(x) for x in input().split()]
number_of_queries = int(input())
queries = [0 for _ in range(number_of_queries)]

for i in range(number_of_queries):
    queries[i] = int(input())

count_elements_greather_than_x(array, queries)