Trường đua

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Trường đua ngựa có ~k~ đường đua. Lần đua này có ~n~ chú ngựa tham gia và cần chia vào ~k~ đường đua sao cho đường đua thứ ~i~ có đúng ~a_i~ chú ngựa. Khi đó:

~a_1 + a_2 + \cdots + a_k = n~, và ~a_i > 0~ với mọi ~i~.

Để hiện đại hóa cách chia nhóm, ban tổ chức yêu cầu thêm điều kiện:

~a_1 \oplus a_2 \oplus \cdots \oplus a_k = 0~,

trong đó ~\oplus~ là phép ~\text{xor}~ (toán tử ^ trong C/C++).

http://chuyenvinhphuc.edu.vn/static/imgs/00153.png

Yêu cầu

Cho ~n~ và ~k~, hãy tìm một dãy ~k~ số nguyên dương ~a_1, a_2, \ldots, a_k~ thỏa mãn đồng thời:

  • ~a_1 + a_2 + \cdots + a_k = n~
  • ~a_1 \oplus a_2 \oplus \cdots \oplus a_k = 0~

Nếu không tồn tại cách chia phù hợp, in ra ~-1~.

Dữ liệu

Một dòng chứa hai số nguyên ~n~ và ~k~.

Kết quả

  • Nếu không tồn tại đáp án, in ra một dòng chứa ~-1~.
  • Ngược lại, in ra một dòng gồm ~k~ số nguyên ~a_1, a_2, \ldots, a_k~ mô tả một cách chia thỏa mãn yêu cầu. Nếu có nhiều cách, in ra bất kỳ.

Ví dụ

Ví dụ 1

Input

8 2

Output

4 4

Giải thích

Ví dụ 1

Ta có ~4 + 4 = 8~ và ~4 \oplus 4 = 0~, đồng thời mọi ~a_i > 0~ nên cách chia là hợp lệ.

Ràng buộc và chấm điểm

Ràng buộc
  • ~1 \le n, k \le 10^5~

Bình luận

Hãy đọc nội quy trước khi bình luận.


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