Pagini recente » Cod sursa (job #548957) | Cod sursa (job #1169946) | Cod sursa (job #1332467) | Cod sursa (job #1743087) | Cod sursa (job #2399940)
import random
def order_stat(vec, k):
left, right = 0, len(vec)
found = False
while not found:
pivot = random.randrange(left, right)
vec[pivot], vec[right - 1] = vec[right - 1], vec[pivot]
i = left
for j in range(left, right - 1):
if vec[j] < vec[right - 1]:
vec[i], vec[j] = vec[j], vec[i]
i += 1
vec[right-1], vec[i] = vec[i], vec[right-1]
if i == k:
found = True
elif k < i:
right = i
else:
left = i + 1
return vec[i]
with open('sdo.in', 'r') as f:
n, k = [ int(x) for x in f.readline().split(' ')]
vec = [ int(x) for x in f.readline().split(' ')]
with open('sdo.out', 'w') as f:
f.write(str(order_stat(vec, k - 1)))