#include <bits/stdc++.h>
#define pb push_back
#define ll long long int
#define all(v) (v).begin(),(v).end()
#define fi first
#define se second
using namespace std;
int main() {
int n; cin >> n;
priority_queue<pair<int,ll>, vector<pair<int,ll>>, greater<pair<int,ll>>> st;
vector<ll> ans(100005);
ll cur = 0; ans[1] = 1; ll sum = 0;
for (int i = 1; i <= n; i++) {
ll d, x; cin >> d >> x;
ans[i] = cur; ans[1] = 1; sum += ans[i];
ans[i] %= 1000000007;
sum %= 1000000007;
st.push({i+x, ans[i]});
cur += ans[i];
while (!st.empty() && st.top().fi <= i) {
cur -= st.top().se; st.pop();
}
}
cout << sum;
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... |