[C10_QT_25] Chia kẹo

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
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Tý có ~A~ cái kẹo chanh, ~B~ cái kẹo dừa và muốn chia tất cả cho vài người bạn. Tý nhẩm tính: nếu mỗi bạn nhận được số kẹo bằng nhau với mỗi loại thì sẽ có bao nhiêu cách để chia.

Ví dụ: Với ~A = 4~, ~B = 12~ có ba cách chia:

  1. Nếu chia cho một bạn thì bạn đó sẽ nhận ~4~ cái kẹo chanh và ~12~ cái kẹo dừa;
  2. Nếu chia cho hai bạn thì mỗi bạn sẽ nhận ~2~ cái kẹo chanh và ~6~ cái kẹo dừa;
  3. Và nếu chia cho bốn bạn thì mỗi bạn sẽ nhận ~1~ cái kẹo chanh và ~3~ cái kẹo dừa.

Yêu cầu

Hãy giúp Tý tìm và ghi ra tất cả các cách có thể chia hết số kẹo cho các bạn sao cho mỗi bạn luôn nhận được số kẹo bằng nhau mỗi loại. Giả sử Tý có vô số bạn bè để chia kẹo.

Dữ liệu đầu vào

Gồm một dòng chứa hai số nguyên ~A~, ~B~ cách nhau dấu cách ~(1 \le A, B \le 10^{17})~.

Dữ liệu đầu ra

Gồm nhiều dòng, mỗi dòng ghi ba số nguyên ~n~, ~x~, ~y~ cách nhau dấu cách. Số ~n~ là số bạn mà Tý có thể chia kẹo. Số ~x~ và ~y~ là số kẹo chanh và kẹo dừa mà mỗi bạn nhận được trong cách chia đó. Mỗi cách chia ghi ra đúng một lần và theo thứ tự tăng của ~n~.

Ràng buộc dữ liệu

  • 30% số tests tương ứng với 30% số điểm của bài có ~A, B \le 10^7~.
  • 30% số tests khác tương ứng với 30% số điểm của bài có ~A, B \le 10^{12}~.
  • 40% số tests còn lại tương ứng với 40% số điểm của bài không có ràng buộc gì thêm.

Ví dụ

Ví dụ 1
INPUT
4 12
OUTPUT
1 4 12
2 2 6
4 1 3

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.