Gửi bài giải
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, ObjC, OCaml, Pascal, Perl, PHP, Pike, Prolog, PyPy, Python, Racket, Ruby, Rust, Scala, Scheme, Scratch, Sed, Swift, TCL, Turing, VB, Zig
Điểm:
800 (OI)
Giới hạn thời gian:
1.5s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
Một chiếc cân đĩa đang lệch về phía bên trái bởi một quả nặng có khối lượng là ~x~, quả nặng này gọi là quả nặng thứ 101. Bạn được cho 100 quả nặng khác ~w_1,w_2,⋯,w_{100},~ trong đó:
- ~w_1=1~ (g)
- ~w_2=2~ (g)
- ~w_i=w_{i-1}+w_{i-2}, \forall i \in [3,100]~
Hãy sử dụng các quả nặng trên để đưa chiếc cân đĩa cân bằng trở lại. Nếu có nhiều phương án, hãy in ra phương án sử dụng ít quả nặng nhất.
Input
Dữ liệu vào gồm hai số nguyên dương ~L~ và ~R~ (~L \le R~, ~R-L \le 100~). Bạn sẽ giải bài toán với mọi số nguyên dương ~x~ trong đoạn ~[L,R]~.
Output
Xuất ra ~R-L+1~ nhóm dòng, mỗi nhóm gồm 3 dòng:
- Dòng ~1~: Một số nguyên dương ~k~ (~k \ge 1~) là số quả nặng cần dùng (bao gồm quả nặng ban đầu).
- Dòng ~2~: Một số nguyên dương ~k_0~ (~k_0 \ge 1~), kế tiếp là ~k_0~ số nguyên dương mô tả các quả nặng ở đĩa cân bên trái. Các quả nặng được in ra theo thứ tự giảm dần về khối lượng, và bắt buộc phải có quả cân thứ 101.
- Dòng ~3~: Một số nguyên dương ~k_1~ (~k_1\ge 1~, ~k_0+k_1=k~), kế tiếp là ~k_1~ số nguyên dương mô tả các quả nặng ở đĩa cân bên phải. Các quả nặng được in ra theo thứ tự giảm dần về khối lượng.
Ví dụ
Sample Input
25 27
Sample Output
4
3 25 8 1
1 34
3
1 26
2 21 5
4
2 27 8
2 34 1
Giải thích
- ~25 + 8 + 1 = 34~
- ~26 = 21 + 5~
- ~27 + 8 = 34 + 1~
Subtasks
- Subtask 1 (20%): ~1 \le L \le R \le 5^1~
- Subtask 2 (20%): ~1 \le L \le R \le 5^2~
- Subtask 3 (20%): ~1 \le L \le R \le 5^4~
- Subtask 4 (20%): ~1 \le L \le R \le 5^8~
- Subtask 5 (20%): ~1 \le L \le R \le 5^{16}~
Bình luận