문제 3322 · 비트 II
공연장 두 구역의 묶음표
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 공연장의 좌석은 앞 구역과 뒤 구역으로 나뉘어 있다. 이번 공연에서 판매할 수 있는 좌석은 앞 구역에 A개, 뒤 구역에 B개가 남아 있다. 운영자는 단체 관객에게 판매할 묶음표를 만들려고 한다. 묶음표 한 장에는 앞 구역 좌석 몇 개와 뒤 구역 좌석 몇 개를 함께 넣는다. 모든 묶음표의 구성은 완전히 같아야 한다. 즉, 어떤 묶음표에 앞 구역 좌석 x개와 뒤 구역 좌석 y개를 넣었다면 다른 모든 묶음표에도 앞 구역 좌석 x개와 뒤 구역 좌석 y개를 넣어야 한다. x와 y는 각각 1 이상의 정수여야 한다. 두 구역의 좌석 수가 서로 같을 필요는 없으므로 x와 y는 달라도 된다. 남아 있는 좌석은 모두 묶음표에 넣어야 한다. 좌석을 남기거나, 하나의 좌석을 여러 묶음표에 중복해서 넣거나, 묶음표 밖에서 따로 판매할 수 없다. 좌석의 구체적인 번호나 위치는 고려하지 않으며 각 구역에서 몇 개를 넣는지만 결정한다. 운영자는 가능한 한 많은 단체가 묶음표를 살 수 있도록 묶음표 수를 최대로 만들려고 한다. 묶음표를 k장 만든다면 앞 구역 좌석 A개를 k장에 똑같이 나누고, 뒤 구역 좌석 B개도 같은 k장에 똑같이 나누어야 한다. 어느 한 구역이라도 나누어떨어지지 않으면 그 수의 묶음표를 만들 수 없다. 예를 들어 앞 구역 좌석 12개와 뒤 구역 좌석 18개로 묶음표를 3장 만든다면 한 장에 앞 구역 좌석 4개와 뒤 구역 좌석 6개를 넣을 수 있다. 다만 이 구성이 최대 장수를 만든다는 뜻은 아니며, 더 많은 장수를 만들 수 있는지 따로 확인해야 한다. 만들 수 있는 묶음표의 최대 장수와 그때 한 장에 들어가는 두 구역의 좌석 수를 구한다. A와 B가 모두 양수이므로 적어도 한 장은 항상 만들 수 있다. 최대 장수가 정해지면 한 장의 구성도 하나로 정해진다.
입력
첫째 줄에 앞 구역의 좌석 수 A와 뒤 구역의 좌석 수 B가 공백으로 구분되어 주어진다. A와 B는 정수이며 1 ≤ A ≤ 1,000, 1 ≤ B ≤ 1,000이다.
출력
묶음표의 최대 장수 k, 한 장에 들어가는 앞 구역 좌석 수 x, 뒤 구역 좌석 수 y를 이 순서대로 공백으로 구분하여 한 줄에 출력한다.
예제 입력 1
24 36
예제 출력 1
12 2 3
예제 입력 2
7 20
예제 출력 2
1 7 20
예제 입력 3
1 1
예제 출력 3
1 1 1
힌트 펼치기
- 가능한 묶음표 수는 A와 B를 모두 나누어떨어지게 하는 수이다.
- 1부터 두 좌석 수 중 작은 값까지 차례로 확인해도 충분하다.
관련 서재 장
알고리즘 분류
정수론약수최대공약수풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |