Submission #1271983

#TimeUsernameProblemLanguageResultExecution timeMemory
1271983hi_samTrains (BOI24_trains)C++20
21 / 100
2096 ms8928 KiB
#include <bits/stdc++.h> #define int long long #define vi vector<int> #define vs vector<string> #define vc vector<char> #define vii vector<vi> #define fi first #define pii pair<int, int> #define se second #define mp make_pair #define all(v) v.begin(), v.end() #define pqi priority_queue<int> #define pb push_back int dx[4] = {-1, 0, 1, 0}; int dy[4] = {0, -1, 0, 1}; const int mod = 1e9+7; using namespace std; vi dp; vector<pii> v; int n; int f(int cur) { if(dp[cur] != -1) return dp[cur]; int sum = 1; for(int i = 1; i <= v[cur].se; i++) { if(v[cur].fi == 0) break; if(cur + i * v[cur].fi > n) break; sum = (sum + f(cur + i * v[cur].fi)) % mod; } return dp[cur] = sum; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); while(cin >> n) { dp.clear(); dp.resize(n+1, -1); v.clear(); v.resize(n+1); for(int i = 1; i <= n; i++) cin >> v[i].fi >> v[i].se; cout << f(1) << endl; } }
#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...