Перестановка
Обмеження: 2 сек., 256 МіБ
Тепер коли Зеник із сімдесят четвертої спроби вгадав свій пароль до алготестера, то можна й розв’язати нескладну задачку перед сном, дарма що з телефону.
Задача: знайти будь-яку перестановку \((p_1, p_2, \ldots, p_n)\) послідовності \((1, 2, \ldots, n)\) таку, що \[\sum_{i=1}^n |p_i - i|=|p_1-1|+|p_2-2|+\dots+|p_n-n|=k,\] або сказати, що такої не існує.
Вхідні дані
У єдиному рядку задано два цілих числа \(n\) і \(k\).
Вихідні дані
У першому рядку виведіть YES
або NO
— існує
така перестановка чи ні.
Якщо така перестановка існує, тоді в другому рядку виведіть \(n\) цілих чисел \(p_i\) — елементи перестановки, яка задовольняє умову.
Обмеження
\(1 \le n \le 10^5\),
\(0 \le k \le 10^9\).
5 балів: \(n \le 10\);
20 балів: без додаткових обмежень.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
4 4 | YES 1 4 2 3 |
Примітки
Перестановка — упорядкований набір без повторів чисел \(1, 2, \ldots, n\).
У прикладі \(|p_1-1|+|p_2-2|+|p_3-3|+|p_4-4|=|1-1|+|4-2|+|2-3|+|3-4|=0+2+1+1=4\).
Надіслати розв'язок
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|