아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

직사각형 자르기

시간 제한1초메모리 제한1024 MB

요약
긴 변의 길이가 모두 다른 K개의 직사각형이 주어질 때, 이 조각들로 정확히 잘라낼 수 있는 원래 직사각형의 짧은 변 길이를 모두 구한다.
난이도

보통10점 중 7점

유형
수학, 정렬, 그리디
정답자
아직 제출이 없습니다

문제

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

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

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

입력

첫째 줄에 직사각형의 개수 KK가 주어진다. 이어지는 KK개의 줄에는 각 줄마다 두 자연수 aia_i와 bib_i가 주어지며, 이는 ii번째 직사각형의 두 변의 길이이다. 이 값들은 ai≥bia_i \ge b_i를 만족하도록 주어지고, a1<a2<⋯<aKa_1 < a_2 < \cdots < a_K 순서로 정렬되어 있다.

출력

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

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

제한

  • 2≤K≤1000002 \le K \le 100000
  • 모든 ii에 대해 1≤bi≤ai<ai+1≤50000001 \le b_i \le a_i < a_{i+1} \le 5000000

예제2

  1. 예제 1

    입력
    3
    2 1
    3 2
    4 2
    
    예상 출력
    2
    2
    4
    
  2. 예제 2

    입력
    5
    1 1
    2 1
    3 1
    4 3
    6 3
    
    예상 출력
    3
    3
    4
    6