# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
955355 | blackslex | Crocodile's Underground City (IOI11_crocodile) | C++17 | 1 ms | 4444 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "crocodile.h"
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<ll, ll>;
ll n, m, k;
int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) {
n = N; m = M; k = K;
vector<vector<pii>> v(n, vector<pii>());
for (int i = 0; i < m; i++) v[R[i][0]].emplace_back(R[i][1], L[i]), v[R[i][1]].emplace_back(R[i][0], L[i]);
for (int i = 0; i < n; i++) sort(v[i].begin(), v[i].end(), [&] (const pii &p1, const pii &p2) {
return p1.second < p2.second;
});
priority_queue<pii, vector<pii>, greater<pii>> pq;
vector<ll> d(n, 1e18);
vector<bool> f(n);
pq.emplace(d[0] = 0, 0);
while (!pq.empty()) {
auto [nd, nn] = pq.top(); pq.pop();
if (f[nn]) continue; f[nn] = 1;
for (int i = 1; i < v[nn].size(); i++) {
auto [tn, td] = v[nn][i];
if (d[tn] > d[nn] + td) pq.emplace(d[tn] = d[nn] + td, tn);
}
}
ll ans = 1e18;
for (int i = 0; i < k; i++) ans = min(ans, d[P[i]]);
return ans;
}
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... |