만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

로봇

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

요약
각 기둥의 높이가 A_i에서 B_i 사이의 정수일 때, 모든 시작 기둥에서 두 로봇이 지나는 기둥 수의 차가 2 이하인 높이 배정의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 분할 정복, 조합론
정답자
아직 제출이 없습니다

문제

두 로봇 PP와 QQ로 몇 가지 실험을 한다. 기둥 nn개가 1번부터 nn번까지 일렬로 놓여 있고, 각 기둥 ii의 높이는 양의 정수 hih_i이다. 각 로봇은 이웃한 기둥으로만 이동할 수 있다. 로봇이 기둥 ii에 있으면 기둥 i−1i-1 또는 i+1i+1로 이동을 시도할 수 있다. 각 실험에서는 시작 기둥 ss를 고르고 두 로봇을 그 기둥에 올린다. 그다음 두 로봇은 아래 규칙에 따라 움직인다. 로봇 PP는 항상 왼쪽으로 움직이지만, 기둥 ss보다 높은 기둥으로는 갈 수 없다. 정확히 말하면, PP는 l=1l = 1이거나 hl−1>hsh_{l-1} > h_s이고, l≤j≤sl \le j \le s인 모든 jj에 대해 hj≤hsh_j \le h_s를 만족할 때, ll번 기둥(l≤sl \le s)에서 멈춘다. 로봇 QQ는 항상 오른쪽으로 움직이지만, 기둥 ss보다 낮은 기둥으로만 갈 수 있다. 정확히 말하면, QQ는 r=nr = n이거나 hr+1≥hsh_{r+1} \ge h_s이고, s<j≤rs < j \le r인 모든 jj에 대해 hj<hsh_j < h_s를 만족할 때, rr번 기둥(r≥sr \ge s)에서 멈춘다. 각 기둥 ii의 높이는 AiA_i 이상 BiB_i 이하의 정수 중 아무 값으로 정할 수 있다. 어떤 기둥을 시작 기둥 ss로 골라도, 두 로봇이 지나간 기둥 수의 차이의 절댓값이 2 이하여야 한다. 이 조건을 항상 만족하는 높이 배정 방법의 수를 구하라. 어떤 기둥 kk의 높이가 다르면 서로 다른 방법으로 본다. 답은 109+710^9+7로 나눈 나머지를 출력한다.

입력

첫 줄에 정수 nn이 주어진다. 다음 nn개 줄에는 각각 두 정수 AiA_i와 BiB_i가 주어진다.

출력

답을 한 줄에 출력한다.

제한

1≤n≤3001 \le n \le 300, 1≤Ai≤Bi≤1091 \le A_i \le B_i \le 10^9

예제1

  1. 예제 1

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