Выведите k-е наименьшее число на этой доске
Ввод:
- 1-я строка: n
- 2-я строка: m
- 3-я строка: k
Вывод: - k-е число в этом доска при сортировке
Ввод:
2
3
4
Вывод:
8
Объясните:
Доска 2 * 3:
| 2 | 5 | 10 |
| 5 | 8 | 13 |
Ячейка (1, 1) = 1**2 + 1**2 = 2
Ячейка (1, 2) = 1** 2 + 2**2 = 5
Ячейка (1, 3) = 1**2 + 3**2 = 10
Ячейка (2, 1) = 2**2 + 1**2 = 5
Ячейка (2, 2) = 2**2 + 2**2 = 8
Ячейка ( 2, 3) = 2**2 + 3**2 = 13
Когда список отсортирован, получается следующее: 2, 5, 5, 8, 10, 13
Четвертый число — 8.
Я пробовал сделать так, но это слишком медленно. Ограничение по времени — 500 мс, 0 < a,b,c < 10^9
def kth_smallest_number(n, m, k):
values = []
for x in range(1, n + 1):
for y in range(1, m + 1):
values.append(x**2 + y**2)
values.sort()
return values[k - 1]
Подробнее здесь: https://stackoverflow.com/questions/793 ... tion-table
Мобильная версия