Submission #838408

#TimeUsernameProblemLanguageResultExecution timeMemory
838408beabossJourney (NOI18_journey)C++14
20 / 100
1 ms596 KiB
// Source: https://oj.uz/problem/view/NOI18_journey // #include "bits/stdc++.h" using namespace std; #define s second #define f first #define pb push_back typedef long long ll; typedef pair<ll, ll> pii; typedef vector<pii> vpii; typedef vector<ll> vi; #define FOR(i, a, b) for (ll i = (a); i<b; i++) const ll N = 1e4 + 10; const ll D = 404; vpii adj[N]; ll in[N]; ll dp[N][D]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); ll n, m, h; cin >> n >> m >> h; FOR(i, 0, n - 1) { FOR(j, 0, h) { ll w, c; cin >> c >> w; if (c < i) continue; adj[i].pb({c, w}); } } dp[0][0]=1; FOR(cur, 0, n-1) { for (auto val: adj[cur]) { ll nxt, wt; tie(nxt, wt) = val; ll cur_sum = 0; for (ll i = 0; i + wt < m; i++) { cur_sum = min(cur_sum + dp[cur][i], (ll) 5e8 + 1); dp[nxt][i + wt] = min(dp[nxt][i + wt] + cur_sum, (ll) 5e8 + 1); } } } FOR(i, 0, m) { if (i != m-1) assert(dp[n-1][i] <= dp[n-1][i+1] && dp[n-1][i] >= 0); cout << min(dp[n-1][i], (ll) 5e8 + 1) << endl; } // 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...