페이지를 불러오는 중…
해결한 사람
2
명
정답률
100.00
%
시간 제한
2000
ms
메모리 제한
2048
MB
Pak Dengklek은 부터 까지 번호가 매겨진 개의 마을로 이루어진 나라인 인도네시아에 살고 있다. 모든 마을 쌍에 대해, 한 마을에서 다른 마을로 향하는 일방통행 도로가 하나 있다. Pak Dengklek은 도로의 방향에 관한 정보가 없지만, Pak Chanek이 그를 돕겠다고 제안했다.
Pak Dengklek은 Pak Chanek에게 최대 개의 질문을 할 수 있다. 각 질문에서 Pak Dengklek은 마을 한 쌍을 선택하고, Pak Chanek은 그 두 마을을 연결하는 도로의 방향을 알려 준다.
Pak Dengklek은 나가는 도로가 최대 하나인 마을의 번호를 알아내거나, 그러한 마을이 없다면 없다고 보고하려 한다. 그러한 마을이 둘 이상이라면, Pak Dengklek은 그중 아무 마을의 번호나 하나만 알아내면 된다.
다음 프로시저를 구현해야 한다.
int find_town(int N)
위 프로시저에서는 다음 프로시저를 호출할 수 있다.
bool check_road(int A, int B)
true를 반환하고, 마을 에서 마을 로 향하는 도로가 있으면 false를 반환한다.개의 마을이 있고 마을들을 연결하는 도로가 다음 그림과 같은 상황을 생각해 보자.

프로시저 find_town은 다음과 같이 호출된다.
find_town(3)
이 프로시저는 check_road(0, 1)을 호출할 수 있으며, 이는 이 상황에서 true를 반환한다. 이 시점에는 마을 에서 나가는 도로가 최대 하나라고 결론 내리기에 충분한 정보가 있다.
따라서 이 프로시저는 을 반환할 수 있다.
또한 이 프로시저는 check_road(2, 1)을 호출할 수 있으며, 이는 이 상황에서 false를 반환한다. 이 시점에는 마을 에서 나가는 도로가 최대 하나라고 결론 내리기에 충분한 정보가 있다.
따라서 이 프로시저는 를 반환할 수도 있다.
개의 마을이 있고 마을들을 연결하는 도로가 다음 그림과 같은 상황을 생각해 보자.

프로시저 find_town은 다음과 같이 호출된다.
find_town(5)
이 상황에서는 나가는 도로가 최대 하나인 마을이 없다. 따라서 이 프로시저는 을 반환해야 한다.
서브태스크 2에서는 부분 점수를 받을 수 있다.
이 서브태스크의 모든 테스트 케이스에 걸쳐 프로시저 check_road를 호출한 횟수의 최댓값을 라고 하자.
이 서브태스크에서 받는 점수는 다음 표에 따라 계산된다.
| 조건 | 점수 |
|---|---|
일부 테스트 케이스에서 그레이더의 동작은 적응적이다. 이는 이러한 테스트 케이스에서 그레이더가 고정된 도로 방향 구성을 가지고 있지 않다는 뜻이다. 대신 그레이더가 주는 답은 여러분의 풀이가 한 질문에 따라 달라질 수 있다. 그레이더는 매번 답한 뒤 지금까지 주어진 모든 답과 일치하는 도로 방향 구성이 적어도 하나 존재하도록 답한다는 것이 보장된다.
샘플 그레이더는 다음 형식으로 입력을 읽는다.
샘플 그레이더가 프로토콜 위반을 감지하면 샘플 그레이더의 출력은 Protocol Violation: <MSG>이며, <MSG>는 다음 중 하나이다.
too many questions: check_road가 번보다 많이 호출되었다.invalid parameters: check_road가 이상 이하인 서로 다른 정수가 아닌 와 로 호출되었다.그렇지 않으면 샘플 그레이더의 출력은 다음 형식이다.
find_town의 반환값.check_road의 호출 횟수.샘플 그레이더는 적응적이지 않다는 점에 유의하라.
3
010
001
100
1
1
5
01100
00110
00011
10001
11000
-1
0
샘플 그레이더는 인도네시아의 도로를 나타내는, 각각 개의 문자를 갖는 개 문자열의 배열 을 읽는다.
이고 인 각 와 에 대해, 마을 에서 마을 로 향하는 도로가 있으면 는 1이고, 마을 에서 마을 로 향하는 도로가 있으면 는 0이다.
인 각 에 대해, 는 0이어야 한다.
International Olympiad in Informatics (IOI) 2022, official task package; Korean translation by Reporch.
Reporch에서 한국어 번역, 수식 표기, 이미지 호스팅 및 형식을 수정했습니다.
로그인 상태를 확인하는 중입니다.