만드는 중입니다

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

기차

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

요약
1번 도시에서 출발하는 여행 경우의 수를 셉니다. 도시 i에서 출발하는 기차는 d_i 간격으로 최대 x_i번 정차하며, N번 도시를 넘지 않습니다.
난이도

보통10점 중 7점

유형
동적 계획법, 누적 합
정답자
아직 제출이 없습니다

문제

빌뉴스에 도착해서 리투아니아의 여러 도시를 방문하려고 합니다.

리투아니아의 도시들은 일직선 위에 놓여 있으며, 1번부터 NN번까지 순서대로 번호가 붙어 있습니다. 빌뉴스는 1번 도시입니다.

각 도시에는 기차역이 하나 있고, 그 역에서 출발하는 기차 노선이 하나 있습니다. 기차는 노선의 출발역에서만 탈 수 있지만, 노선의 어느 정차역에서든 내릴 수 있습니다. ii번 도시에서 출발하는 기차는 did_i개 도시마다 정차하며, 노선에는 xix_i개의 정차역이 있습니다(출발 도시는 제외합니다). di=0d_i = 0이면 ii번 도시에서 출발하는 기차는 운행하지 않으므로 탈 수 없습니다.

좀 더 정확히 말하면, ii번 도시에서 기차를 타면 1≤t≤xi1 \le t \le x_i를 만족하는 임의의 tt에 대해 i+t⋅dii + t \cdot d_i번 도시에서 내릴 수 있습니다. 리투아니아의 도시만 방문하려고 하므로, 기차 노선에 정차역이 더 남아 있더라도 NN번 도시를 넘어서 가지는 않습니다.

기차를 타고 도시들 사이를 이동하며 몇몇 도시를 방문합니다. 여행을 계획할 때, 빌뉴스에서 출발하는 여행 경로가 몇 가지인지 구하려고 합니다. 방문하는 도시의 순서가 다르면 서로 다른 여행으로 봅니다.

이 수를 구해 109+710^9 + 7로 나눈 나머지를 출력하세요.

입력

첫째 줄에 도시의 수 NN이 주어집니다. 이후 NN개의 줄이 주어지며, ii번째 줄에는 ii번 도시에서 출발하는 노선을 나타내는 두 정수 did_i와 xix_i가 주어집니다.

출력

방문할 수 있는 NN개 도시 중 일부를 방문하는 경우의 수를 109+710^9 + 7로 나눈 나머지를 한 줄에 출력합니다.

제한

  • 1≤N≤1051 \le N \le 10^5
  • 각 1≤i≤N1 \le i \le N에 대해 0≤di≤1090 \le d_i \le 10^9
  • 각 1≤i≤N1 \le i \le N에 대해 0≤xi≤1090 \le x_i \le 10^9

예제1

  1. 예제 1

    입력
    5
    1 3
    2 1
    1 3
    0 10
    3 5
    
    예상 출력
    7