Подходит к концу игровой сезон, и команды уже изучили стратегии своих соперников. Чтобы запутать соперников, главный тренер команды «Воины золотого штата» придумал интересную схему атак: анализируя будущий матч, он высчитывал число n — количество возможных атак команды, а затем на предматчевой тренировке сообщал команде волшебное число x, неизвестное сопернику.
Пронумеровав все свои атаки от 1 до n, команда выбирала максимальное их количество так, чтобы порядковые номера никаких двух из них не отличались ровно на x, и именно в этих атаках совершали трёхочковые броски.
Помогите команде и напишите программу, делающую это максимально быстро, чтобы соперники не успевали просчитать, в каких атаках их кольцу будет угрожать Стеф.
Формат входных данных
В первой строке даётся число n (1≤n≤10000).
Во второй строке даётся число x (1≤x≤10000).
Формат выходных данных
Выведите выбранные номера атак, в которых будет совершен трёхочковый бросок. Номера разделяйте пробелами или переводами строк.
Система оценки
Решения, работающие при x=1, будут набирать не менее 10 баллов.
Пояснение
Можно заметить, что из группы чисел 1,2, 3,4,5 возможно взять только три числа, удовлетворяющих условию. Ведь разница всех возможных пар 4−1, 5−1 и 5−4 не равна 2.
Ввод
Вывод
5
2
1
2
5
1 Ответ
Ответ: Надо создать массив из чисел от 1 до n, пробежаться циклом array(n)+x, выписать подходящие по условию числа.
n = int(input())
x = int(input())
s = [i for i in range(1, n + 1)]
k = 0
if n < 2:
print(1)
elif n == 2:
print(1, 2)
else:
s = []
k = 0
while True:
i = 1
while i <= x:
if k * x + i <= n:
s.append(k * x + i)
i += 1
else:
break
if k * x + i > n:
break
k += 2
for el in s:
print(el)