杞人憂天

월간 향유회 2025. 08. C번 BOJ 34244번
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB59151122.449%

문제

이 문제는 투 스텝 문제입니다.

A는 B에게 메시지를 보내고 싶다. 메시지는 정수 $X$로 나타낼 수 있지만 그냥 보내면 누군가 그 내용을 감청할지도 모른다. 그래서 주변에 있던 $N$개의 카드를 이용해 메시지를 감추기로 했다. 각 카드의 앞면과 뒷면에는 $1$ 이상 $2N$ 이하의 정수가 $1$개씩 적혀 있으며 카드들에 적혀 있는 $2N$개의 수는 모두 다르다.

A는 카드마다 앞면과 뒷면의 수 중 하나를 선택하여, 순서를 섞어 B에게 전송한다. B는 A와 사전에 전략을 상의할 순 있지만 각 카드에 어떤 수가 적혀 있었는지는 알 수 없다. B는 $X$의 값을 알아맞혀야 한다.

A와 B의 전략을 구현해보자.

입력

당신의 프로그램은 채점 데이터 하나당 총 두 번 실행된다. 당신은 하나의 소스코드에 두 가지 실행 과정을 모두 구현해야 한다.

첫째 줄에 입력의 종류를 나타내는 정수 $T$가 주어진다. ($T \in \left\{1,2\right\}$)

$T=1$인 경우 A의 역할을 수행하고 $T=2$인 경우 B의 역할을 수행해야 한다.

첫번째 단계

둘째 줄에 카드의 총 개수와 보낼 메시지를 나타내는 두 정수 $N$, $X$가 공백으로 구분되어 주어진다. ($N=100, 1\leq X \leq 10^{18}$)

셋째 줄부터 $N$줄에 걸쳐 카드에 대한 정보가 주어진다. $i+2$번째 줄에 $i$번째 카드의 앞면과 뒷면에 적혀있는 두 정수 $a_i$, $b_i$가 공백으로 구분되어 주어진다. $N$개의 카드에 적힌 모든 수는 서로 다르다. ($1 \leq a_i,b_i \leq 2N$)

당신은 B에게 보낼 $N$개의 정수 $x_1, x_2, \cdots, x_{N}$을 공백으로 구분해 출력해야 한다. $x_i$는 $i$번째 카드에서 고른 수를 나타낸다. ($x_i \in \left\{a_i, b_i\right\}$)

두번째 단계

둘째 줄에 카드의 총 개수를 나타내는 정수 $N$이 공백으로 구분되어 주어진다. ($N=100$)

셋째 줄에 A가 고른 $N$개의 수 $x_1, x_2, \cdots, x_{N}$이 공백으로 구분되어 주어진다. 단, 수들의 순서는 오름차순으로 정렬되어 주어진다. ($1\leq x_i \leq 2N$)

당신은 A가 보내고자 한 메시지를 나타내는 정수 $X$를 출력해야 한다. ($1\leq X \leq 10^{18}$)

예제 입력 1

1
4 10
1 3
8 2
7 4
5 6

예제 출력 1

3 2 7 5

예제 입력 2

2
4
2 3 5 7

예제 출력 2

10

노트

예제는 이해를 돕기 위한 것으로 실제로 채점하지는 않는다.

출처

Contest > BOJ User Contest > 월간 향유회 > 월간 향유회 2025. 08. C번

  • 문제를 만든 사람: pyb1031
  • 문제를 검수한 사람: kiwiyou, utilforever

채점 및 기타 정보

  • 예제는 채점하지 않는다.