| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 1153 | 511 | 429 | 47.195% |
이 문제는 인터랙티브 문제이다. 아래 노트에 나와 있는 방식으로 입출력을 진행해야 한다.
2023년 2학기, 드디어 고려대학교에 드랍(수강포기제)이 부활한다! 이번 학기를 마치고 졸업하는 사이버국방학과 재우는 원래도 DP 문제를 좋아했는데, 최근에 시즌 2가 나온 드라마 <D.P.> 시리즈를 보고 졸업 후 장교로 임관하기로 마음먹었다. 재우는 임관을 위해 최대 3개까지 수강할 수 있는 운동 과목을 수강하기로 했다. 작년에 F를 받은 “수영” 과목의 재수강은 물론, “축구”와 “볼링” 과목까지 최대로 수강하게 되었다.
드랍을 할 수 있는 날이 다가오자, 재우는 갑자기 작년에 수영을 F 받은 기억이 떠올라 PTSD가 왔다. 이에 재우는 지도 교수님께 면담을 요청했고, 재우의 정보를 보던 교수님께서는 재우가 세 과목 중 두 과목을 F를 받고 한 과목만 Pass를 받을 수 있다는 사실을 알게 되었다. 원래는 이를 알려주면 안되지만, 재우를 딱하게 생각한 교수님은 한 가지 생각을 한다. 바로 재우가 좋아하는 <D.P. 시즌 1>에서 나온 몬티홀 문제로 주기로 한 것이다!
이제 재우는 다음과 같은 과정을 통해 정보를 얻을 수 있다.
Pass로 예상되는 과목 하나를 교수님께 말씀드린다.재우는 이 정보를 통해 두 과목을 드랍하고, 남은 한 과목을 수강하기로 하였다. 재우는 남은 한 과목이 Pass 받기를 원한다. 재우가 되어 그 과목을 찾아보자.
총 1ドル,500円$개의 독립적인 평행 세계가 존재해 각 평행 세계의 재우는 위의 결정을 해야 한다. 각각의 평행 세계에 대해 프로그램 시작 시 재우가 Pass를 받을 과목 하나가 독립적으로 $\frac{1}{3}$의 확률로 결정된다.
각 평행 세계에 대해 위의 1번과 2번 과정은 모두 다른 세계와 독립적으로 진행된다.
아래 인터랙티브 과정을 거쳐 1ドル,500円$개의 독립적인 평행 세계에 존재하는 재우 중 총 900ドル$명 이상의 최종적으로 예상한 과목이 프로그램이 정한 과목과 같아 재우가 Pass를 받았다면 정답이다. 모든 평행 세계의 행동은 독립적으로 시행된다. 만약 해당 문제의 해답을 모르겠다면, 아래 노트를 읽어보자.
프로그램이 시작되면 먼저 평행 세계의 개수 $n = 1,500円$을 입력받는다.
$n$개의 평행 세계에 대해 Pass로 예상되는 과목을 swimming, bowling, soccer 중 각각 하나씩 골라 한 줄에 공백으로 구분된 $n$개의 과목 이름을 출력한다. (이 과정 직후 flush한다)
그럼 프로그램은 각 평행 세계에 대해 고른 과목을 제외한 과목 두 개 중 F인 과목 이름을 하나씩 공백으로 구분하여 준다.
이 정보를 토대로 최종적으로 각 평행 세계에 대해 Pass로 예상되는 과목의 이름을 한 줄에 공백으로 구분하여 출력한다. (이 과정 직후 flush한다)
예제는 평행 세계가 $n=4$개 존재할 때의 예시이며 예제는 채점하지 않는다. 실제로 프로그램은 $n=1,500円$개인 입력에 대해서 정확히 한 번 실행된다.
4 bowling swimming soccer bowling
swimming bowling swimming soccer soccer soccer swimming swimming
먼저 4ドル$개의 과목을 출력하면, 컴퓨터가 각각의 평행 세계에 대해 그 과목을 제외한 나머지 두 과목 중 F를 알려준다.
이를 입력 받고, 각각의 평행 세계에 대해 최종적으로 Pass를 받은 것으로 예상되는 과목을 출력한다.
인터랙티브 문제의 경우 출력을 하고, 언어에 따라 아래와 같은 명령어를 바로 다음에 적어 출력 버퍼를 flush해 줘야 한다.
fflush(stdout);fflush(stdout); 혹은 std::cout << std::flush;System.out.flush();sys.stdout.flush()System.out.flush()남은 두 과목 중 하나를 고르게 되므로 재우가 Pass를 받을 확률이 $\frac{1}{2}$인데 어떻게 1ドル,500円$개 중 900ドル$개나 예상할 수 있는지 의문을 가질 수 있다. <D.P. 시즌 1> 4화의 몬티홀 문제를 설명하는 허치도 병장과 관련된 다음 두 장면을 보며 그 방법을 알아보자.
X를 치고, 둘을 묶어 +기호를 그린다)따라서 선택을 바꾸면 재우가 Pass를 받을 확률이 $\frac{2}{3}$의 확률이 되며, 1ドル,500円$개의 평행 세계 중 Pass를 받는 평행 세계의 기댓값은 1ドル,000円$개다.
즉, 위의 전략처럼 처음 출력한 것과 다른 선택을 하게 되면, 평균적으로 1ドル,500円$개 중 1ドル,000円$개를 맞을 것을 기대할 수 있다는 의미이다.
만약 정말 운이 좋지 않아 해당 전략을 사용했음에도 900ドル$개 미만을 맞을 확률을 계산해보면, 0ドル.00000286\%$정도로, 이 확률은 어떤 사람이 평생 로또를 딱 한번 샀는데 1등에 당첨될 확률(약 0ドル.0000123\%$)보다 약 4ドル.3$배 정도 낮으므로, 혹시나 해당 전략을 사용했는데 틀렸다면 한 번 더 제출한 뒤 오늘 로또를 사도록 하자.
University > 고려대학교 > MatKor Cup > 제3회 고려대학교 MatKor Cup: 2023 Summer > Div. 2 B번
University > 고려대학교 > MatKor Cup > 제3회 고려대학교 MatKor Cup: 2023 Summer > Open Contest - Phase 1 A번