Submission #565683

#TimeUsernameProblemLanguageResultExecution timeMemory
565683AbdullahMWEvacuation plan (IZhO18_plan)C++14
0 / 100
131 ms21348 KiB
#include <bits/stdc++.h> #define all(vec) vec.begin(), vec.end() #define ll long long #define db double #define pb push_back #define pf push_front #define newl "\n" #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define f first #define s second #define MOD 1000000007 using namespace std; vector <pair <ll, ll>> gr[100005]; unordered_map <ll, ll> fin, dist; unordered_map <ll, bool> nuc, vis; void near(ll beg, ll p) { priority_queue <pair <ll, ll>, vector <pair <ll, ll>>, greater <pair <ll, ll>>> pq; pq.push({0, beg}); if (vis.size()) vis.clear(); while (pq.size()) { ll c = pq.top().s, len = pq.top().f; pq.pop(); if (!vis[c]) { if (nuc[c]) fin[p] = min(fin[p], len); vis[c] = true; for (auto v : gr[c]) { pq.push({len + v.f, v.s}); } } } } int main() { fast //setIO(""); //freopen("filename.in", "r", stdin); //freopen("filename.out", "w", stdout); ll n, m; cin >> n >> m; for (ll i = 1; i <= m; i++) { ll x, y, len; cin >> x >> y >> len; gr[x].pb({len, y}); gr[y].pb({len, x}); } ll k; cin >> k; for (ll i = 1; i <= k; i++) { ll idx; cin >> idx; nuc[idx] = true; } for (ll i = 1; i <= n; i++) { fin[i] = 1e18; } //cout << newl; ll q; cin >> q; vector <pair <ll, ll>> pa; for (ll i = 0; i < n; i++) { ll x, y; cin >> x >> y; pa.pb({x, y}); } for (auto v : pa) { if (!nuc[v.f] && !fin[v.f]) near(v.f, v.f); if (!nuc[v.s] && !fin[v.s]) near(v.s, v.s); } for (auto v : pa) { cout << min(fin[v.f], fin[v.s]) << newl; } /*cout << newl; for (ll i = 1; i <= n; i++) { if (!nuc[i]) cout << "City: " << i << " Dist: " << fin[i] << newl; }*/ }
#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...