Dãy nhị phân của Jamie

Đề bài

Mô tả

Cho hai số nguyên nk. Hãy tìm một dãy gồm đúng k số nguyên a1,a2,,ak (mỗi ai có thể âm, bằng 0 hoặc dương) sao cho:

2a1+2a2++2ak=n.

Trong tất cả các dãy thỏa mãn, hãy chọn dãy có giá trị lớn nhất max(a1,a2,,ak) nhỏ nhất có thể. Nếu vẫn còn nhiều dãy như vậy, hãy in ra dãy lớn nhất theo thứ tự từ điển.

Với hai dãy khác nhau cùng độ dài, dãy (a1,,ak) nhỏ hơn (b1,,bk) theo thứ tự từ điển nếu tại vị trí i đầu tiên mà chúng khác nhau thì ai<bi.

Dữ liệu vào

Một dòng chứa hai số nguyên nk.

Dữ liệu ra

Nếu không tồn tại dãy thỏa mãn, in ra một dòng chứa xâu No.

Ngược lại, in ra Yes ở dòng thứ nhất, và ở dòng thứ hai in k số của dãy tìm được, cách nhau bởi dấu cách.

Dữ liệu bảo đảm các số trong dãy đáp án nằm trong đoạn [1018,1018].

Ràng buộc

  • 1n1018
  • 1k105

Ví dụ

Input Output Giải thích
23 5 Yes
3 3 2 1 0
23+23+22+21+20=8+8+4+2+1=23. Các dãy như (4,1,1,1,0) có giá trị lớn nhất là 4>3 nên không tối ưu; (3,3,2,0,1) có cùng đa tập nhưng không lớn nhất theo thứ tự từ điển.
13 2 No Không tồn tại dãy độ dài 2 có tổng các lũy thừa bằng 13.
1 2 Yes
-1 -1
21+21=12+12=1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0