문제1671--사과 나눠주기

1671: 사과 나눠주기

[만든사람 : ]
시간제한 : 1.000 sec  메모리제한 : 128 MB  제출 : 60  맞은 사람 : 9

제출  

문제 설명

충근이는 R개의 빨간 사과와 G개 초록 사과를 자신의 친구들에게 나눠 주려고 한다. 친구들이 서로 같은 개수의 사과를 받지 못하면 사이가 안 좋아질 수 있어서 모든 친구에게 같은 개수를 주고 싶다. 
충근이는 사과를 좋아하지 않기 때문에 사과를 남기지 않고 모두 나눠 주려한다.
예를 들어, 충근이가 4개의 빨간 사과와 8개의 초록 사과를 가지고 있다면, 다음과 같이 세가지 방법으로 나누어 줄 수 있다.
  1. 친구 1명이 4개의 빨간 사과와 8개의 초록 사과를 모두 받는다.
  2. 친구 2명이 각각 2개의 빨간 사과와 4개의 초록 사과를 받는다.
  3. 친구 4명이 각각 1개의 빨간 사과와 2개의 초록 사과를 받는다.
충근이가 사과를 나누어 줄 수 있는 모든 방법을 구하는 프로그램을 작성하시오. 충근이가 나눠 줄 수 있는 친구는 무한하다고 가정하자.

입력 설명

첫째 줄에 빨간 사과 개수 R과 초록 사과 개수 G가 주어진다. (1 ≤ R, G ≤ 1,000,000,000)
R과 G가 같은 경우는 없다.

출력 설명

충근이가 사과를 나누어 주는 방법을 출력한다. 방법을 출력할 때, 사과를 받는 친구의 수 N, 빨간 사과의 수 X, 초록 사과의 수 Y 순서로 출력한다.
각 방법은 정확히 한 번만 출력해야 한다. 나누어 주는 방법은 친구의 수 N이 작은 경우부터 출력한다.

입력 예시1 Copy

4 8

출력 예시1 Copy

1 4 8
2 2 4
4 1 2

입력 예시2 Copy

15 12

출력 예시2 Copy

1 15 12
3 5 4

입력 예시3 Copy

42 105

출력 예시3 Copy

1 42 105
3 14 35
7 6 15
21 2 5

출처/분류

COCI