직사각형 자르기

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

이루스는 각 변의 길이가 정수인 직사각형 하나를 가지고 있었다. 이루스는 이 직사각형을 한 변에 평행한 직선으로 한 번 잘라 두 개의 직사각형으로 나눈 뒤, 그중 하나를 옆에 치워 두고(치워 둔 직사각형은 다시 자르지 않는다) 나머지 하나를 같은 방식으로 계속 잘랐다. 직사각형이 모두 $K$개가 될 때까지 이 과정을 반복했으며, 이렇게 만들어진 모든 직사각형의 변의 길이는 정수이다.

이루스가 만들어진 $K$개의 직사각형을 더 긴 변의 길이를 기준으로 정렬해 보니, 이 긴 변의 길이들이 모두 서로 달랐다(단, 더 짧은 변의 길이는 서로 같을 수도 있다).

이루스는 처음 직사각형의 크기를 잊어버렸다. 처음 직사각형의 크기로 가능한 것을 모두 찾아 이루스를 도와주자.

입력

첫째 줄에 직사각형의 개수 $K$가 주어진다. 이어지는 $K$개의 줄에는 각 줄마다 두 자연수 $a_i$와 $b_i$가 주어지며, 이는 $i$번째 직사각형의 두 변의 길이이다. 이 값들은 $a_i \ge b_i$를 만족하도록 주어지고, $a_1 < a_2 < \cdots < a_K$ 순서로 정렬되어 있다.

출력

첫째 줄에 처음 직사각형의 크기로 가능한 경우의 수 $P$를 출력한다.

이어지는 $P$개의 줄에는 가능한 모든 처음 직사각형의 더 짧은 변의 길이를 작은 것부터 큰 것 순서로 한 줄에 하나씩 출력한다(같은 크기의 직사각형은, 주어진 $K$개로 자르는 방법이 여러 가지 있더라도 한 번만 센다).

제한

  • $2 \le K \le 100000$
  • 모든 $i$에 대해 $1 \le b_i \le a_i < a_{i+1} \le 5000000$