| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1360364 | lyra_g13 | Voting Cities (NOI22_votingcity) | C++20 | 39 ms | 896 KiB |
#include <bits/stdc++.h>
using ll = long long;
using namespace std;
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
ll n, e, k;
cin >> n >> e >> k;
vector<ll> a(k);
for (auto &i : a) {
cin >> i;
}
vector<vector<pair<ll, ll>>> adj(n + 1);
for (int i = 0; i < e; i++) {
ll u, v, c;
cin >> u >> v >> c;
adj[u].push_back({v, c});
}
auto find = [&](ll u) -> ll {
vector<ll> dist(n + 1, 1e18);
dist[u] = 0;
priority_queue<pair<ll, ll>> pq;
pq.push({0, u});
while (!pq.empty()) {
auto [nd, u] = pq.top();
pq.pop();
nd = -nd;
if (nd > dist[u])
continue;
for (auto [v, c] : adj[u]) {
if (dist[v] > dist[u] + c) {
dist[v] = dist[u] + c;
pq.push({-dist[v], v});
}
}
}
ll ans = 1e18;
for (int i = 0; i < k; i++) {
ans = min(ans, dist[a[i]]);
}
if (ans == 1e18)
return -1;
return ans;
};
ll q;
cin >> q;
for (int i = 0; i < q; i++) {
ll s;
cin >> s;
for (int j = 0; j < 5; j++) {
ll u;
cin >> u;
}
cout << find(s) << "\n";
}
}
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
