Nguồn: Big-O
Có n con cừu và n con sói đang ở bờ bên phải của con sông. Chúng muốn di chuyển sang bờ bên trái. Trên sông có 1 con thuyền.
Mỗi lượt đi qua lại giữa hai bờ sông, người lái thuyền chỉ được chở tối đa 2 con vật, và mỗi lượt di chuyển bắt buộc phải có ít nhất 1 con vật ở trên thuyền cùng ông. Lũ sói sẽ không ăn thịt cừu nếu thỏa mãn một trong 2 trường hợp sau:
Là một người lái đò tận tâm, ông muốn tìm phương án đưa toàn bộ sói và cừu qua sông sao cho không có con cừu nào bị ăn thịt.
Đầu vào:
Gồm một dòng duy nhất chứa số nguyên n (1≤n≤100) — số lượng cá thể của mỗi loài.
Đầu ra:
Dòng đầu tiên in ra số nguyên k — số lượt đi thuyền.
k dòng tiếp theo, mỗi dòng in thông tin theo dạng "x y", cho biết ở lượt đi đó người lái thuyền sẽ chở x con sói và y con cừu.
Đáp án được chấp nhận nếu số lượt di chuyển không vượt quá 5×n và không có con cừu nào bị ăn thịt.
Lưu ý: Lượt đầu tiên là đi từ phải qua trái, lượt thứ hai đi từ trái qua phải, và cứ luân phiên như vậy. Nếu có nhiều đáp án hợp lệ, có thể đưa ra một kết quả bất kỳ.
Giải thích:
Ví dụ 1:
Đầu vào:
3
Đầu ra:
9
1 1
1 0
0 2
0 1
1 1
1 0
2 0
1 0
2 0