Cod sursa(job #2537097)

Utilizator stelian2000Stelian Chichirim stelian2000 Data 3 februarie 2020 00:28:55
Problema Statistici de ordine Scor 50
Compilator py Status done
Runda Arhiva educationala Marime 0.6 kb
import random

def nth_element(k, st, dr):
    if st>=dr:
        return
    i = st
    j = dr
    a = random.choice(v[st:dr+1])
    while i<=j:
        while v[i]<a:
            i += 1
        while v[j]>a:
            j -= 1
        if i<=j:
            v[i], v[j] = v[j], v[i]
            i += 1
            j -= 1
    if k<=j-st+1:
        nth_element(k, st, j)
    else:
        nth_element(k-(j-st+1),j+1,dr)


f = open("sdo.in", "r")
g = open("sdo.out", "w")
n, k = map(int,f.readline().split())
v = list(map(int,f.readline().split()))
nth_element(k, 0, len(v)-1)
g.write(str(v[k-1]))