def qs(letras, edades):
if len(letras) < 2:return letras, edades
letrasME = []
edadesME = []
letrasMA = []
edadesMA = []
for i in range(1, len(letras)):
if edades[i] < edades[0] or (edades[i] == edades[0] and letras[i] > letras[0]):
letrasME.append(letras[i])
edadesME.append(edades[i])
else:
letrasMA.append(letras[i])
edadesMA.append(edades[i])
return qs(letrasMA, edadesMA)[0] + [letras[0]] + qs(letrasME, edadesME)[0], qs(letrasMA, edadesMA)[1] + [edades[0]] + qs(letrasME, edadesME)[1]
# Ejemplo de uso
letras = ["A", "B", "C", "D"]
edades = [21, 37, 17, 21]
print(qs(letras,edades))
ZGVmIHFzKGxldHJhcywgZWRhZGVzKToKICAgIGlmIGxlbihsZXRyYXMpIDwgMjpyZXR1cm4gbGV0cmFzLCBlZGFkZXMKICAgIAogICAgbGV0cmFzTUUgPSBbXQogICAgZWRhZGVzTUUgPSBbXQogICAgbGV0cmFzTUEgPSBbXQogICAgZWRhZGVzTUEgPSBbXQogICAgCiAgICBmb3IgaSBpbiByYW5nZSgxLCBsZW4obGV0cmFzKSk6CiAgICAgICAgaWYgZWRhZGVzW2ldIDwgZWRhZGVzWzBdIG9yIChlZGFkZXNbaV0gPT0gZWRhZGVzWzBdIGFuZCBsZXRyYXNbaV0gPiBsZXRyYXNbMF0pOgogICAgICAgICAgICBsZXRyYXNNRS5hcHBlbmQobGV0cmFzW2ldKQogICAgICAgICAgICBlZGFkZXNNRS5hcHBlbmQoZWRhZGVzW2ldKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGxldHJhc01BLmFwcGVuZChsZXRyYXNbaV0pCiAgICAgICAgICAgIGVkYWRlc01BLmFwcGVuZChlZGFkZXNbaV0pCiAgICAKICAgIHJldHVybiBxcyhsZXRyYXNNQSwgZWRhZGVzTUEpWzBdICsgW2xldHJhc1swXV0gKyBxcyhsZXRyYXNNRSwgZWRhZGVzTUUpWzBdLCBxcyhsZXRyYXNNQSwgZWRhZGVzTUEpWzFdICsgW2VkYWRlc1swXV0gKyBxcyhsZXRyYXNNRSwgZWRhZGVzTUUpWzFdCgojIEVqZW1wbG8gZGUgdXNvCmxldHJhcyA9IFsiQSIsICJCIiwgIkMiLCAiRCJdCmVkYWRlcyA9IFsyMSwgMzcsIDE3LCAyMV0KCnByaW50KHFzKGxldHJhcyxlZGFkZXMpKQ==