Submission #1267944

#TimeUsernameProblemLanguageResultExecution timeMemory
1267944gry3125Trains (BOI24_trains)C++20
0 / 100
2096 ms28236 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 n; 
set<int> adj[100005];
vector<ll> ans(100005);

int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        ll d, x; cin >> d >> x;
        for (int j = 1; d > 0 && j <= x && i+j*d <= n; j++) {
        	adj[i+j*d].insert(i+(j-1)*d);
        }
    }
    ll cur = 0; ans[1] = 1;
    for (int i = 1; i <= n; i++) {
        for (auto j : adj[i]) {
            ans[i] += ans[j]; ans[i] %= (ll)1e9+7;
        }
        cur += ans[i]; cur %= (ll)1e9+7;
    }
    cout << cur;
    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...