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

Envío 3431

Problema 0xde - Ordenar un arreglo grande

  • Autor: jocarmp08
  • Fecha: 2021-03-13 18:42:31 UTC (Hace alrededor de 3 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.041 s 3 KBi
#2
Correcto
0.028 s 3 KBi
#3
Correcto
0.033 s 3 KBi
#4
Correcto
0.036 s 3 KBi
#5
Correcto
0.031 s 3 KBi
#6
Correcto
0.033 s 3 KBi
#7
Correcto
0.217 s 5 KBi
#8
Correcto
0.238 s 7 KBi
#9
Correcto
0.25 s 5 KBi
#10
Correcto
0.402 s 9 KBi
#11
Esperando resultado...
#12
Correcto
0.292 s 14 KBi
#13
Esperando resultado...
#14
Tiempo límite excedido
1.056 s 15 KBi
#15
Esperando resultado...
#16
Tiempo límite excedido
1.068 s 14 KBi
#17
Tiempo límite excedido
1.069 s 14 KBi
#18
Esperando resultado...
#19
Esperando resultado...
#20
Correcto
0.24 s 5 KBi
#21
Tiempo límite excedido
1.022 s 15 KBi
#22
Tiempo límite excedido
1.063 s 14 KBi
#23
Tiempo límite excedido
1.042 s 15 KBi
#24
Esperando resultado...
#25
Correcto
0.985 s 15 KBi
#26
Esperando resultado...
#27
Esperando resultado...
Puntos totales: 49 / 100

Código

import random

def three_way_part(a, lo, hi):
    if hi <= lo:
        return

    lt = lo
    i = lo + 1
    gt = hi
    item = a[lo]

    while i <= gt:
        if a[i] < item:
            a[lt], a[i] = a[i], a[lt]
            lt += 1
            i += 1
        elif a[i] > item:
            a[i], a[gt] = a[gt], a[i]
            gt -= 1
        else:
            i += 1

    three_way_part(a, lo, lt - 1)
    three_way_part(a, gt + 1, hi) 



def qs(a, n):
    random.shuffle(a)
    three_way_part(a, 0, n - 1)

n = int(input())
a = [int(x) for x in input().split()]

if n > 1:
    qs(a, n)
print(*a)