페이지를 불러오는 중…
해결한 사람
1
명
정답률
33.33
%
시간 제한
1000
ms
메모리 제한
256
MB
Adam은 Bob에게 선물하기 위해 수제 목걸이를 만들고 있다. 목걸이는 왼쪽부터 오른쪽까지 에서 까지 번호가 매겨진 개의 구슬로 이루어진다. 각 구슬의 색은 빨간색 또는 파란색 중 하나이다. Bob은 Adam에게 목걸이에 대한 개의 요구 사항 목록을 보냈다. 번째 요구 사항()은 위치 부터 까지의 구슬에 서로 다른 색이 개 있어야 한다는 뜻이다.
Adam이 Bob의 모든 요구 사항을 만족하는 구슬 배치를 찾도록 돕거나, 그러한 배치가 불가능한지 판별하라.
다음 프로시저를 구현해야 한다.
int construct(int n, int r, int[] a, int[] b, int[] x)
craft를 정확히 한 번 호출한 뒤 을 반환해야 한다.craft를 한 번도 호출하지 않고 을 반환해야 한다.프로그램은 배치를 보고하기 위해 다음 프로시저를 호출해야 한다.
void craft(string s)
'R'이고, 파란색이면 'B'이다.다음 호출을 살펴보자.
construct(4, 2, [0, 2], [2, 3], [1, 2])
이는 총 개의 구슬과 다음과 같은 개의 요구 사항이 있다는 뜻이다.
구슬 부터 까지를 빨간색으로 칠하고 구슬 을 파란색으로 칠하면 이를 만족할 수 있다.
따라서 construct 프로시저는 다음 호출을 해야 한다.
craft("RRRB")그런 다음 을 반환해야 한다.
이 경우 요구 사항을 만족하는 배치는 여러 개이며, 그중 어느 것이든 정답으로 인정된다.
다음 호출을 살펴보자.
construct(3, 3, [0, 1, 0], [1, 2, 2], [1, 1, 2])
이는 총 개의 구슬과 다음과 같은 개의 요구 사항이 있다는 뜻이다.
이 경우 모든 요구 사항을 만족하는 구슬 배치는 존재하지 않는다.
따라서 construct 프로시저는 craft를 한 번도 호출하지 않고 을 반환해야 한다.
샘플 그레이더는 다음 형식으로 입력을 읽는다.
샘플 그레이더는 다음 형식으로 답을 출력한다.
construct의 반환값.construct의 반환값이 이면 는 출력되지 않는다.4 2
0 2 1
2 3 2
OK
1
RRRB
3 3
0 1 1
1 2 1
0 2 2
0
International Olympiad in Informatics (IOI) 2020, official task package; Korean translation by Reporch.
Reporch에서 한국어 번역, 수식 표기, 이미지 호스팅 및 형식을 수정했습니다.
로그인 상태를 확인하는 중입니다.