| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1312770 | nguyengiabach1201 | 관광 (NOI14_sightseeing) | C++20 | 1543 ms | 172776 KiB |
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
#define el '\n'
#define FNAME "tinhcldd"
#define ll long long
#define int long long
#define MOD (int)(1e9 + 7)
#define INF (ll)(1e18 + 1)
void setup()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
if (fopen(FNAME ".inp", "r"))
{
freopen(FNAME ".inp", "r", stdin);
freopen(FNAME ".out", "w", stdout);
}
return;
}
const int N = 5e5 + 5;
int n, m, q;
int p[N], ans[N], parent_dsu[N];
struct Edge {
int u, v, w;
};
bool cmp(const Edge &a, const Edge &b) {
return a.w > b.w;
}
int find_set(int v) {
if (v == parent_dsu[v]) return v;
return parent_dsu[v] = find_set(parent_dsu[v]);
}
vector<pair<int, int>> mst_adj[N];
void dfs(int u, int p, int min_w) {
ans[u] = min_w;
for (auto &edge : mst_adj[u]) {
int v = edge.first;
int w = edge.second;
if (v != p) {
dfs(v, u, min(min_w, w));
}
}
}
void solve()
{
cin >> n >> m >> q;
vector<Edge> edges(m);
for (int i = 0; i < m; ++i) {
cin >> edges[i].u >> edges[i].v >> edges[i].w;
}
sort(edges.begin(), edges.end(), cmp);
for (int i = 1; i <= n; ++i) {
parent_dsu[i] = i;
ans[i] = -INF;
}
int count = 0;
for (int i = 0; i < m; ++i) {
int u = find_set(edges[i].u);
int v = find_set(edges[i].v);
if (u != v) {
parent_dsu[u] = v;
mst_adj[edges[i].u].push_back({edges[i].v, edges[i].w});
mst_adj[edges[i].v].push_back({edges[i].u, edges[i].w});
count++;
if (count == n - 1) break;
}
}
for (int i = 1; i <= q; ++i) cin >> p[i];
dfs(1, 0, INF);
for (int i = 1; i <= q; ++i) {
if (ans[p[i]] == -INF) cout << -1 << el;
else cout << ans[p[i]] << el;
}
}
signed main()
{
setup();
solve();
return 0;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
