Submission #1084760

#TimeUsernameProblemLanguageResultExecution timeMemory
1084760zxciganTrains (BOI24_trains)C++17
0 / 100
19 ms4688 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define int long long const int N = 2e5; const int mod = 1e9 + 7; const int B = 335; int dp[N]; int32_t main() { #ifdef LOCAL freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif // LOCAL ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; dp[1] = 1; int s = 0; vector<vector<int>> add (B + 1, vector<int> (B + 1, 0)); set<array<int,2>> st; int C = 0; for (int i = 1; i <= n; ++i) { int x, d; cin >> d >> x; if (i != 1) dp[i] = C; if (x && d) { (C += dp[i]) %= mod; st.insert ({i + x * d,dp[i]}); } while ((int)st.size() && (*st.begin())[0] == i) { array<int,2> v = (*st.begin()); C -= v[1]; while (C < 0) C += mod; st.erase (st.begin()); } (s += dp[i]) %= mod; } cout << s << '\n'; }
#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...