Codeforces Round 555 (Div. 3) |
---|
Закончено |
Поликарп хочет решить ровно $$$n$$$ задач, чтобы прокачать свое умение программировать перед важным соревнованием по программированию. Но это соревнование начнется очень скоро, более точно, оно начнется через $$$k$$$ дней. Это означает, что у Поликарпа есть ровно $$$k$$$ дней на тренировки!
Поликарп не хочет прокрастинировать, поэтому он хочет решать хотя бы по одной задаче в течение каждого из $$$k$$$ дней. Он также не хочет переутомляться, поэтому если он решает $$$x$$$ задач в течение какого-то дня, он должен решать не более, чем $$$2x$$$ задач в течение следующего дня. И, наконец, он хочет прокачивать свое умение программировать, поэтому если он решает $$$x$$$ задач в течение какого-либо дня, он должен решать хотя бы $$$x+1$$$ задачу в течение следующего дня.
Более формально: пусть $$$[a_1, a_2, \dots, a_k]$$$ — массив количеств решенных Поликарпом задач. $$$i$$$-й элемент этого массива равен количеству задач, которые Поликарп решает в течение $$$i$$$-го дня его тренировок. Тогда должны быть соблюдены следующие условия:
Ваша задача — найти любой массив $$$a$$$ длины $$$k$$$, удовлетворяющий условиям выше, или сказать, что это невозможно сделать.
Первая строка входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 10^9, 1 \le k \le 10^5$$$) — количество задач, которые Поликарп хочет решить и количество дней, которые Поликарп хочет тренироваться.
Если невозможно найти никакой массив $$$a$$$ длины $$$k$$$, удовлетворяющий правилам тренировок Поликарпа, выведите «NO» в первой строке.
Иначе выведите «YES» в первой строке, затем выведите $$$k$$$ целых чисел $$$a_1, a_2, \dots, a_k$$$ во второй строке, где $$$a_i$$$ должно быть равно количеству задач, которые Поликарп должен решать в течение $$$i$$$-го дня. Если существует несколько возможных ответов, вы можете вывести любой из них.
26 6
YES 1 2 4 5 6 8
8 3
NO
1 1
YES 1
9 4
NO
Название |
---|