Submission #1311697

#TimeUsernameProblemLanguageResultExecution timeMemory
1311697samarthkulkarniJourney (NOI18_journey)C++20
100 / 100
1336 ms25848 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define vi vector<long long> #define all(x) x.begin(), x.end() #define endl "\n" #define pr pair<int, int> #define ff first #define ss second void solution(); int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); solution(); return 0; } const int N = 1e4+10; const ll mx = 5e8+1; vector<pr> nxt[N]; ll dp[N][410]; void solution() { ll n, m, h; cin >> n >> m >> h; for (int i = 0; i < n; i++) { for (int j = 0; j < h; j++) { int a, w; cin >> a >> w; if (a <= i) continue; nxt[i].push_back({a, w}); } } dp[0][0] = 1; for (int i = 0; i < n-1; i++) { for (int j = 0; j < m; j++) { if (dp[i][j] == 0 || dp[i][j] == mx) continue; for (auto [b, w] : nxt[i]) { for (int k = 0; k < m; k++) { if (j + w + k > m-1) break; dp[b][j+w+k] += dp[i][j]; dp[b][j+w+k] = min(dp[b][j+w+k], mx); } } } } for (int i = 0; i < m; i++) { cout << dp[n-1][i] << " "; } cout << 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...