# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
955355 | 2024-03-30T08:16:39 Z | blackslex | 악어의 지하 도시 (IOI11_crocodile) | C++17 | 1 ms | 4444 KB |
#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
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 4440 KB | Output is correct |
2 | Incorrect | 1 ms | 4444 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 4440 KB | Output is correct |
2 | Incorrect | 1 ms | 4444 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 4440 KB | Output is correct |
2 | Incorrect | 1 ms | 4444 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |