Перестановка
Limits: 2 sec., 256 MiB
Тепер коли Зеник із сімдесят четвертої спроби вгадав свій пароль до алготестера, то можна й розв’язати нескладну задачку перед сном, дарма що з телефону.
Задача: знайти будь-яку перестановку \((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,\] або сказати, що такої не існує.
Input
У єдиному рядку задано два цілих числа \(n\) і \(k\).
Output
У першому рядку виведіть YES
або NO
— існує
така перестановка чи ні.
Якщо така перестановка існує, тоді в другому рядку виведіть \(n\) цілих чисел \(p_i\) — елементи перестановки, яка задовольняє умову.
Constraints
\(1 \le n \le 10^5\),
\(0 \le k \le 10^9\).
5 балів: \(n \le 10\);
20 балів: без додаткових обмежень.
Samples
Input (stdin) | Output (stdout) |
---|---|
4 4 | YES 1 4 2 3 |
Notes
Перестановка — упорядкований набір без повторів чисел \(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\).
Submit a solution
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|