PivotOJ

Trains

시간 제한: 2000ms메모리 제한: 1024MB출처: BOI 2024BOJ 31970

문제

You have arrived in Vilnius and want to visit various cities in Lithuania.

Cities in Lithuania are located on a straight line and numbered from 11 to NN sequentially. Vilnius is assigned the number 11.

Each city has a train station with a single train route that operates from that station. You can only get on a train at the start of its route, though you can get off at any of its stops. Trains starting their route at the ii-th city make a stop every did_i cities, and their route consists of xix_i stops (not including the starting city). If di=0d_i = 0, the trains operating from the ii-th city are currently out of service, so you cannot get on them.

To be more precise, if you get on a train in the ii-th city, you can get off the train in any city numbered i+tdii + t \cdot d_i, where 1 ≤ t ≤ x_i. Note that since you only want to visit cities in Lithuania, you won't ride further than the NN-th city, even if the train has more stops on its route.

You are going to visit some cities, using trains to travel between them. As you plan your trip, you start to wonder how many different options you have for your journey that starts at Vilnius. Two journeys are different if they make stops at different sequences of cities.

Calculate this number and print the answer modulo 109+710^9 + 7.

입력

The first line contains one integer NN – the number of cities.

Then NN lines follow. The ii-th of them contains two integers did_i and xix_i – the numbers describing the route starting in the ii-th city.

출력

Output a single integer – the number of ways you can visit some of the NN cities taken modulo 109+710^9 + 7.

예제

예제 1

입력
5
1 3
2 1
1 3
0 10
3 5
출력
7
코드를 제출하려면 로그인하세요.