Submission #1213857

#TimeUsernameProblemLanguageResultExecution timeMemory
1213857stefanneaguTrains (BOI24_trains)C++20
71 / 100
2063 ms644568 KiB
#include <bits/stdc++.h> using namespace std; const int nmax = 1e5 + 1, mod = 1e9 + 7; unordered_map<int, int> prop[nmax]; int dp[nmax]; int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n; cin >> n; dp[1] = 1; int ans = 0; for (int i = 1; i <= n; i++) { int x, d; cin >> d >> x; for (auto [d1, val] : prop[i]) { if (val != 0) { dp[i] = (dp[i] + val) % mod; if (i + d1 <= n) { prop[i + d1][d1] = (prop[i + d1][d1] + val) % mod; } } } ans = (ans + dp[i]) % mod; if (d == 0) { continue; } if (i + 1ll * (x + 1) * d <= n) { prop[i + (x + 1) * d][d] = (prop[i + (x + 1) * d][d] - dp[i] + mod) % mod; } if (i + d <= n) { prop[i + d][d] = (prop[i + d][d] + dp[i]) % mod; } } cout << ans; 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...