Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

KPASS - Mật mã

Hiện tại, bài tập này đã có trên online judge chính thức của VNOI, bạn có thể truy cập ở đây: https://oj.vnoi.info/problem/kpass


Hôm nay, Pirate sẽ truyền dạy một kinh nghiệm quý báu cho các anh chàng có nhiều bạn gái...

Tất nhiên là việc lưu số điện thoại vào danh bạ có nhiều lợi ích, nhưng khi bạn gái trả bài: "Anh có nhớ số em không?", trong thâm tâm các nàng luôn muốn câu trả lời bạn là "Anh chỉ nhớ mỗi số em thôi!". Khi số lượng bạn gái tăng lên cũng đồng nghĩa với số lượng số điện thoại bạn cần phải ghi nhớ cũng tăng lên một cách chóng mặt, nhất là với các nàng thích xài SIM khuyến mãi.

Một sự cố thường gặp nhất đó là bạn nhầm số của bé X sang bé Y. Thế là bé X móc ngay điện thoại ra bấm số và có một cuộc "nội chiến" xảy ra. 

Vậy làm sao để ghi nhớ các số điện thoại một cách nhanh chóng và an toàn? 

Pirate đã nghĩ ra một quy trình mã hóa số điện thoại như sau:

  • Giả sử số điện thoại của bạn được biểu diễn bằng dãy số a1, a2,..., aN (0 ≤ ai ≤ 9 với 1 ≤ i ≤ N).
  • Đặt s1 = a1, si = si - 1 + ai (với 1 < i ≤ N).
  • Tìm số thứ tự từ điển của dãy {sN} trong tập các dãy được sinh ra từ tất cả các số điện thoại theo nguyên tắc trên. Trừ số đó đi một đơn vị.
  • Trong dãy số N bit biểu diễn nhị phân của số vừa nhận được, gọi K là dãy bit 0 liên tiếp nhau dài nhất. Tìm thứ tự từ điển của dãy N bit trên trong tập các dãy nhị phân N bit có không quá K bit 0 liên tiếp, gọi số đó là X.

Nhiệm vụ của bạn là giúp Pirate viết một chương trình giúp tìm ra một số điện thoại nếu biết được N, X và K.

Lưu ý: dãy số {aN} được gọi là lớn hơn dãy số {bN} khi và chỉ khi tồn tại một chỉ số i sao cho aj = bj (với mọi 1 ≤ j < i) và ai > bi. Trong một tập hợp các dãy số có cùng tính chất nào đó, thứ tự từ điển của một dãy số là số lượng dãy số trong tập không lớn nó (bao gồm cả chính nó).

 

Input

  • Ghi ba số nguyên N, X và K.

Output

  • Gồm một dòng duy nhất ghi ra dãy số {aN} ban đầu, các số cách nhau bởi dấu cách.

Giới hạn

  • 1 ≤ N, K ≤ 30; 1 ≤ X ≤ 109.
  • 30% số test có 1 ≤ N, K ≤ 10.
  • Dữ liệu vào đảm bảo có kết quả.

Example

Input:
4 3 2

Output:
0 0 0 4

Giải thích: dãy nhị phân 4 bit thứ 3 có không quá 2 bit 0 liên tiếp là 0100. Đây là biểu diễn của số 4. Từ đó suy ra được dãy {sN} là (0, 0, 0, 4). Vậy dãy {aN} là (0, 0, 0, 4).

Input:
4 5 1

Output:
0 0 1 1

Giải thích: dãy nhị phân 4 bit thứ 5 có không quá 1 bit 0 liên tiếp là 1011. Đây là biểu diễn của số 11. Từ đó suy ra được dãy {sN} là (0, 0, 1, 2). Vậy dãy {aN} là (0, 0, 1, 1).


Được gửi lên bởi:khanhptnk
Ngày:2011-08-20
Thời gian chạy:0.400s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ASM64 GOSU PERL6 PYPY RUST SED

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.