Как мне упорядочить список A так, чтобы максимальное количество элементов списка A было больше, чем у другого списка B?
ПРИМЕР:
A='3 6 7 5 3 5 6 2 9 1'
B='2 7 0 9 3 6 0 6 2 6'
answer = 7 ... ............... Если я сортирую списки,
sListA = [1, 2, 3, 3, 5, 5, 6, 6, 7, 9]
sListB = [0, 0, 2, 2, 3, 6, 6, 6, 7, 9]
#if sListA[i]>sListB[j]: count +=1
В 5 случаях sListA[i] > sListB[j]
, но нам нужно максимизировать экземпляры где sListA[i] > sListB[j]
.., ie, 7
Если sListA был [1, 2, 3, 3, 5, 7, 9, 5, 6, 6]
, а slistB был [0, 0, 2, 2, 3, 6, 6, 6, 7, 9]
, то 7 экземпляров sListA[i] > sListB[j]
будут быть возможным ..
Вот мой код:
def main():
listA=list(map(int,A.rstrip().split()))
listB=list(map(int,B.rstrip().split()))
sListA=sorted(listA)
sListB=sorted(listB)
count=0
for (i,j) in map(sListA,sListB):
if sListA[i]>sListB[j]:
count+=1
print(count)
main()
Но это учитывается только в отсортированных списках, мне нужно найти способ поменять элементы со следующим по величине элементом в sListA когда sListA[i]<sListB[j]
, чтобы максимизировать случаи, когда sListA [i]> sListB [j]