#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int mod = 1e9+7, N = 1e5;
ll dp[N];
int main() {
int n;
cin >> n;
vector<int> d(n), x(n);
for (int i = 0; i < n; ++i) cin >> d[i] >> x[i];
vector<int> final(n);
vector<vector<int>> ends(n);
for (int i = 0; i < n; ++i) {
final[i] = min(n-1, i+d[i]*x[i]);
ends[final[i]].push_back(i);
}
ll sum = dp[0] = 1;
for (int i = 1; i < n; ++i) {
dp[i] = sum;
sum += dp[i];
for (int a: ends[i]) sum -= dp[a];
sum %= mod;
}
ll tot = 0;
for (int i = 0; i < n; ++i) {
tot += dp[i];
tot%=mod;
}
cout << tot << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |