Đườ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. Trong lần đua này có ~n~ chú ngựa tham gia. Ban tổ chức cần phân nhóm ngựa vào các đường đua: đường đua thứ ~i~ sẽ có ~a_i~ chú ngựa.

Việc phân nhóm phải thỏa mãn:

  • ~a_1 + a_2 + \cdots + a_k = n~,
  • ~a_i > 0~ với mọi ~i~ (đường đua nào cũng phải có ngựa),
  • ~a_1 \oplus a_2 \oplus \cdots \oplus a_k = 0~, trong đó ~\oplus~ là phép XOR (toán tử ^ trong C/C++).

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

Yêu cầu

Hãy đưa ra một cách chọn dãy ~a_1, a_2, \dots, a_k~ thỏa mãn tất cả điều kiện trên, hoặc in ra ~-1~ nếu không tồn tại.

Dữ liệu

Một dòng chứa hai số nguyên ~n~ và ~k~ (~1 \le n, k \le 10^5~).

Kết quả

  • Nếu không tồn tại cách phân nhóm phù hợp, in ra một số ~-1~.
  • Ngược lại, in ra trên một dòng ~k~ số nguyên ~a_1, a_2, \dots, a_k~ mô tả một cách phân nhóm thỏa mãn yêu cầu.

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 phân nhóm là hợp lệ.

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

Ràng buộc
  • ~1 \le n, k \le 10^5~
  • ~a_i~ là số nguyên dương
  • ~a_1 + a_2 + \cdots + a_k = n~
  • ~a_1 \oplus a_2 \oplus \cdots \oplus a_k = 0~

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.