Submission #1233627

#TimeUsernameProblemLanguageResultExecution timeMemory
1233627AriadnaTrains (BOI24_trains)C++20
16 / 100
34 ms3144 KiB
#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);
    for (int i = 0; i < n; ++i) final[i] = min(n, i+d[i]*x[i]+1);
    dp[n-1] = 1;
    vector<ll> suff(n+1, 0);
    suff[n-1] = dp[n-1];
    for (int i = n-2; i >= 0; --i) {
        dp[i] = (1+suff[i+1]-suff[final[i]]+mod)%mod;
        suff[i] = (suff[i+1]+dp[i])%mod;
    }
    
    cout << dp[0] << endl;

    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...