포럼
문제 ICPC00001

A. 더하거나 곱하거나

설명

Industrial Computer Processor Company는 고객의 요구에 맞춘 매우 빠른 특수 목적 처리 장치를 제공한다. \(a-C-m\) 계열의 프로세서(\(1-C-2\)\(5-C-3\) 등)는 서로 다른 두 가지 연산만으로 이루어진 명령어 집합을 가진다. A \(a\)를 더한다 M \(m\)을 곱한다 프로세서는 정수 하나를 입력받아 A와 M 연산의 나열(프로그램)을 실행하여 입력을 변형한 뒤 결과를 출력한다. 예를 들어 \(1-C-2\) 프로세서가 입력 2로 프로그램 AAAM을 실행하면 출력은 10이 되고(계산 과정은 2 →3 →4 →5 →10), \(5-C-3\) 프로세서가 같은 프로그램과 입력으로 실행하면 51이 된다(2 →7 →12 →17 →51). 당신은 일급 기밀 프로젝트에 배정된 \(a-C-m\) 프로그래머이다. 즉, 프로그램이 수행해야 할 정확한 계산은 알려 주지 않는다. 대신 특정한 값 \(p\), \(q\), \(r\), \(s\)와 다음 조건이 주어진다. 1. 입력은 \(p\) 이상 \(q\) 이하의 수임이 보장된다. 2. 출력은 \(r\) 이상 \(s\) 이하의 어떤 수여야 한다. \(a-C-m\) 프로세서와 수 \(p\), \(q\), \(r\), \(s\)가 주어질 때, \(p \le x \le q\)인 모든 입력 \(x\)에 대해 \(r \le y \le s\)인 어떤 출력 \(y\)를 내는 가장 짧은 \(a-C-m\) 프로그램을 만드는 것이 당신의 일이다. 최소 길이의 프로그램이 여러 개라면, 각 프로그램을 A와 M으로 이루어진 문자열로 보았을 때 사전순으로 가장 앞서는 것을 선택한다.

제약
입력 형식

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 위에서 설명한 여섯 정수 \(a\), \(m\), \(p\), \(q\), \(r\), \(s\)가 있는 한 줄로 주어진다 (\(1 \le a\), m, p, q, r, \(s \le 10^{9}\), \(p \le q\), \(r \le s\)). 마지막 테스트 케이스 다음에는 0 여섯 개가 있는 한 줄이 주어진다.

출력 형식

각 테스트 케이스마다 케이스 번호와 함께 위에서 설명한 최선의 프로그램을 출력한다. 최선의 프로그램이 아무 연산도 사용하지 않으면 “empty”를 출력한다. 조건을 만족하는 프로그램이 없으면 “impossible”을 출력한다. 프로그램은 공백으로 구분된(spa\(ce-se\)parated) 문자열들의 나열로 출력하며, “\(n\)A” 형태의 문자열과 “\(n\)M” 형태의 문자열이 번갈아 나온다. 여기서 \(n > 0\)이다. 전자는 연속한 \(n\)번의 A 연산을, 후자는 연속한 \(n\)번의 M 연산을 나타낸다. 샘플 출력의 형식을 따른다.

예제 1
입력
1 2 2 3 10 20
1 3 2 3 22 33
3 2 2 3 4 5
5 3 2 3 2 3
0 0 0 0 0 0
ICPC 2011 World Finals Problem A: To Add or to Multiply
출력
Case 1: 1A 2M
Case 2: 1M 2A 1M
Case 3: impossible
Case 4: empty
문제 정보

생성자가 기록되지 않았습니다.

출처 ICPC World Finals 2011

평가 및 의견

A. To Add or to Multiply

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

A. To Add or to Multiply

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8