Submission #1170589

#TimeUsernameProblemLanguageResultExecution timeMemory
1170589BzslayedSightseeing (NOI14_sightseeing)C++20
25 / 25
1401 ms98876 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #define ll long long #define ull unsigned long long #define ld long double #define pll pair<ll, ll> #define pii pair<int, int> #define coutpair(p) cout << p.first << " " << p.second << "|" typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_multiset; pair<int, pii> edges[5000005]; int par[5000005]; int find(int x){ if (par[x] == x) return x; else{ par[x] = find(par[x]); return par[x]; } } bool same(int x, int y) { return find(x) == find(y); } void join(int x, int y) { x = find(x); y = find(y); par[x] = y; } vector<pii> adj[500005]; ll dist[500005]; void dfs(int cur, int par){ for (pii child : adj[cur]){ if (child.first != par){ dist[child.first] = min(dist[cur], (ll)child.second); dfs(child.first, cur); } } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int v, e, q; cin >> v >> e >> q; for (int i=1; i<=v; i++) par[i] = i; for (int i=0; i<e; i++) cin >> edges[i].second.first >> edges[i].second.second >> edges[i].first; sort(edges, edges+e, greater<pair<int, pii>>()); for (int i=0; i<e; i++){ int fi = edges[i].second.first, se = edges[i].second.second, weight = edges[i].first; if (!same(fi, se)){ join(fi, se); adj[fi].push_back({se, weight}); adj[se].push_back({fi, weight}); } } dist[1] = LLONG_MAX; dfs(1, 1); for (int i=0; i<q; i++){ int x; cin >> x; cout << dist[x] << "\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...