Cod sursa(job #2536825)

Utilizator Constantin.Dragancea Constantin Constantin. Data 2 februarie 2020 18:20:07
Problema Statistici de ordine Scor 50
Compilator py Status done
Runda Arhiva educationala Marime 0.53 kb
import random
f = open('sdo.in', 'r')
g = open('sdo.out', 'w')

def kth_element(a, k):
    x = random.choice(a)
    small = [y for y in a if y < x]
    big = [y for y in a if y > x]
    eq = [y for y in a if y == x]
    if len(small) >= k:
        return kth_element(small, k)
    k -= len(small)
    if len(eq) >= k:
        return x
    return kth_element(big, k - len(eq))

n, k = [int(x) for x in f.readline().split()]
v = [int(x) for x in f.readline().split()]

g.write(str(kth_element(v, k)))

f.close()
g.close()