BACTERIA - Vi khuẩn
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: admin

Steve đang nghiên cứu một chủng loại vi khuẩn mới. Số vi khuẩn trên đĩa Petry (đĩa nuôi cấy vi khuẩn) hiện đang có n cá thể (1 ≤ n ≤ 1000). Với mỗi số nguyên tố p, Steve có thể điều chế chất CpH2p+1OH. Khi cho chất này vào đĩa Petry, nếu n chia hết cho p thì số vi khuẩn sẽ giảm đi đúng p lần. Nếu n không chia hết cho p – kết quả sẽ là bất định và điều này sẽ cản trở các nghiên cứu tiếp theo. Trong phòng thí nghiệm, Steve có một số lượng không hạn chế Acid điatilamid lizergin (C20H25N3O). Nếu cho acid này vào đĩa cấy vi khuẩn, sau một thời gian ngắn số vi khuẩn sẽ tăng thành bình phương của số lượng trước khi cho. Tuy nhiên do diện tích đĩa Petry có giới hạn nên không thể chứa được số lượng vi khuẩn quá C cá thể (1 ≤ C ≤ 10000).

Ví dụ, ban đầu, trong đĩa Petry có 12 cá thể vi khuẩn. Nếu cho C2H5OH vào, số vi khuẩn rút xuống còn 6, cho tiếp C20H25N3O, số vi khuẩn trở thành 36, bây giờ nếu cho vào C2H5OH số vi khuẩn trong đĩa sẽ là 18.

Yêu cầu: Cho các số nguyên nm (1 ≤ m ≤ 10000). Hãy xác định quy trình cho hóa chất với ít bước nhất để có được đúng m vi khuẩn hoặc đưa ra thông báo Impossible nếu không thể nhận được số vi khuẩn cần thiết.

Dữ liệu vào: gồm một dòng chứa 3 số nguyên n và  C.

Kết quả ra: thông báo Impossible nếu không thể nhận được số vi khuẩn cần thiết, nếu có cách làm:

- Dòng 1 đưa ra số k là số bước ít nhất.

- Dòng 2 đưa ra dãy k số nguyên, mỗi số tương ứng với một lần cho hóa chất vào đĩa cấy, số nguyên thứ i là 0 nếu cho C20H25N3O và là p nếu cho CpH2p+1OH. Các số cách nhau ít nhất một dấu cách.

Ví dụ

  • input
    12 18 100
    output
    3
    2 0 2
Back to Top