Submission #548791

#TimeUsernameProblemLanguageResultExecution timeMemory
548791jack715Journey (NOI18_journey)C++14
43 / 100
1801 ms262144 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back #define pp pop_back #define mp make_pair #define bb back #define ff first #define ss second #define int long long using namespace std; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m, h; cin >> n >> m >> h; vector<vector<pair<int, int> > > path(n, vector<pair<int, int> >(h)); for (int i = 0; i < n-1; i++) for (int j = 0; j < h; j++) cin >> path[i][j].ff >> path[i][j].ss; priority_queue<pair<int, int> > pq; pq.push({0, 0}); vector<int> ans(m+5, 0); while (!pq.empty()) { int time = pq.top().ff, indx = pq.top().ss; pq.pop(); if (-time >= m) continue; if (indx == n-1) { ans[-time]++; continue; } for (int i = 0; i < h; i++) { if (path[indx][i].ff <= indx) continue; for (int j = path[indx][i].ss; j-time < m; j++) pq.push({time-j, path[indx][i].ff}); } } for (int i = 0; i < m; i++) cout << ans[i] << ' '; cout << '\n'; 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...