Функция:
Проверка на наличие ближайшего наибольшего элемента в 'list a' для каждого элемента 'list b'
если элемент найден, удалите этот элемент из исходного списка
, чтобы можно было сравнить следующий элемент
list a = [2,3,4], список b = [0,0 , 7] => 2,3, -1
, если элемент не найден, вернуть: -1
и, наконец, вывести счетчик -1
любой предложения по оптимизации этого кода для огромных списков
import sys
def next(arr, target): #method returns index of nex greater element or -1
start = 0
end = len(arr) - 1
ans = -1
while (start <= end):
mid = (start + end) // 2
if (arr[mid] <= target):
start = mid + 1
else:
ans = mid
end = mid - 1
return ans
def main():
q=list(map(int,sys.stdin.readline().split())) #list1
r=list(map(int,sys.stdin.readline().split())) #list2
q.sort()
r.sort()
var,count=0,0
for tst in r:
var=next(q,tst)
q.pop(var)
if var == -1:
count+=1
print(count)
main()