제출 #1267988

#제출 시각아이디문제언어결과실행 시간메모리
1267988gry3125Trains (BOI24_trains)C++20
16 / 100
44 ms3260 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...