#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, int> pli;
#define ff first
#define ss second
const ll inf = 1e18;
const int N = 1e5 + 9;
int n, m, s, t, U, V;
vector<pii> g[N];
vector<int> G[N];
ll dist[4][N];
void dijkstra(int u, ll dist[]) {
fill(dist + 1, dist + n + 1, inf);
priority_queue<pli> q;
q.emplace(dist[u] = 0, u);
while (!q.empty()) {
ll d = -q.top().ff;
u = q.top().ss; q.pop();
if (d != dist[u]) continue;
for (pii v : g[u]) {
if (dist[v.ff] > dist[u] + v.ss) {
dist[v.ff] = dist[u] + v.ss;
q.emplace(-dist[v.ff], v.ff);
}
}
}
}
int idx[N];
bool cmp(int i, int j) { return dist[1][i] < dist[1][j]; }
void init_idx() {
for (int i = 1; i <= n; ++i) idx[i] = i;
sort(idx + 1, idx + n + 1, cmp);
}
ll dp[2][N];
int main() {
cin.tie(NULL)->sync_with_stdio(false);
cin >> n >> m >> s >> t >> U >> V;
for (int i = 0, u, v, c; i < m; ++i) {
cin >> u >> v >> c;
g[u].emplace_back(v, c);
g[v].emplace_back(u, c);
}
dijkstra(s, dist[0]);
dijkstra(t, dist[1]);
for (int u = 1; u <= n; ++u)
for (pii v : g[u])
if (dist[0][u] + v.ss + dist[1][v.ff] == dist[0][t])
G[u].push_back(v.ff);
dijkstra(U, dist[2]);
dijkstra(V, dist[3]);
ll ans = dist[2][V];
init_idx();
for (int i = 1, u; i <= n; ++i) {
u = idx[i];
//// U -> u -> v -> V
// edge v -> V
dp[0][u] = dist[3][u];
// edge u -> v
for (int v : G[u])
dp[0][u] = min(dp[0][u], dp[0][v]);
// edge U -> u
ans = min(ans, dp[0][u] + dist[2][u]);
//// U -> v -> u -> V
// edge U -> v
dp[1][u] = dist[2][u];
// edge v -> u
for (int v : G[u])
dp[1][u] = min(dp[1][u], dp[1][v]);
// edge u -> V
ans = min(ans, dp[1][u] + dist[3][u]);
}
cout << ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
246 ms |
21384 KB |
Output is correct |
2 |
Correct |
252 ms |
20272 KB |
Output is correct |
3 |
Correct |
258 ms |
23328 KB |
Output is correct |
4 |
Correct |
275 ms |
21348 KB |
Output is correct |
5 |
Correct |
259 ms |
20968 KB |
Output is correct |
6 |
Correct |
266 ms |
21540 KB |
Output is correct |
7 |
Correct |
256 ms |
21236 KB |
Output is correct |
8 |
Correct |
250 ms |
21068 KB |
Output is correct |
9 |
Correct |
255 ms |
20840 KB |
Output is correct |
10 |
Correct |
197 ms |
21012 KB |
Output is correct |
11 |
Correct |
91 ms |
16452 KB |
Output is correct |
12 |
Correct |
267 ms |
20592 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
259 ms |
20388 KB |
Output is correct |
2 |
Correct |
275 ms |
20632 KB |
Output is correct |
3 |
Correct |
263 ms |
20216 KB |
Output is correct |
4 |
Correct |
257 ms |
20312 KB |
Output is correct |
5 |
Correct |
269 ms |
20608 KB |
Output is correct |
6 |
Correct |
272 ms |
21452 KB |
Output is correct |
7 |
Correct |
260 ms |
21424 KB |
Output is correct |
8 |
Correct |
293 ms |
20420 KB |
Output is correct |
9 |
Correct |
276 ms |
20576 KB |
Output is correct |
10 |
Correct |
275 ms |
20232 KB |
Output is correct |
11 |
Correct |
99 ms |
17196 KB |
Output is correct |
12 |
Correct |
267 ms |
21668 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
6092 KB |
Output is correct |
2 |
Correct |
3 ms |
5000 KB |
Output is correct |
3 |
Correct |
3 ms |
5020 KB |
Output is correct |
4 |
Correct |
15 ms |
7116 KB |
Output is correct |
5 |
Correct |
10 ms |
6052 KB |
Output is correct |
6 |
Correct |
3 ms |
5068 KB |
Output is correct |
7 |
Correct |
4 ms |
5196 KB |
Output is correct |
8 |
Correct |
5 ms |
5196 KB |
Output is correct |
9 |
Correct |
4 ms |
5028 KB |
Output is correct |
10 |
Correct |
9 ms |
6068 KB |
Output is correct |
11 |
Correct |
3 ms |
5068 KB |
Output is correct |
12 |
Correct |
3 ms |
5068 KB |
Output is correct |
13 |
Correct |
3 ms |
5068 KB |
Output is correct |
14 |
Correct |
3 ms |
5068 KB |
Output is correct |
15 |
Correct |
4 ms |
5068 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
246 ms |
21384 KB |
Output is correct |
2 |
Correct |
252 ms |
20272 KB |
Output is correct |
3 |
Correct |
258 ms |
23328 KB |
Output is correct |
4 |
Correct |
275 ms |
21348 KB |
Output is correct |
5 |
Correct |
259 ms |
20968 KB |
Output is correct |
6 |
Correct |
266 ms |
21540 KB |
Output is correct |
7 |
Correct |
256 ms |
21236 KB |
Output is correct |
8 |
Correct |
250 ms |
21068 KB |
Output is correct |
9 |
Correct |
255 ms |
20840 KB |
Output is correct |
10 |
Correct |
197 ms |
21012 KB |
Output is correct |
11 |
Correct |
91 ms |
16452 KB |
Output is correct |
12 |
Correct |
267 ms |
20592 KB |
Output is correct |
13 |
Correct |
259 ms |
20388 KB |
Output is correct |
14 |
Correct |
275 ms |
20632 KB |
Output is correct |
15 |
Correct |
263 ms |
20216 KB |
Output is correct |
16 |
Correct |
257 ms |
20312 KB |
Output is correct |
17 |
Correct |
269 ms |
20608 KB |
Output is correct |
18 |
Correct |
272 ms |
21452 KB |
Output is correct |
19 |
Correct |
260 ms |
21424 KB |
Output is correct |
20 |
Correct |
293 ms |
20420 KB |
Output is correct |
21 |
Correct |
276 ms |
20576 KB |
Output is correct |
22 |
Correct |
275 ms |
20232 KB |
Output is correct |
23 |
Correct |
99 ms |
17196 KB |
Output is correct |
24 |
Correct |
267 ms |
21668 KB |
Output is correct |
25 |
Correct |
9 ms |
6092 KB |
Output is correct |
26 |
Correct |
3 ms |
5000 KB |
Output is correct |
27 |
Correct |
3 ms |
5020 KB |
Output is correct |
28 |
Correct |
15 ms |
7116 KB |
Output is correct |
29 |
Correct |
10 ms |
6052 KB |
Output is correct |
30 |
Correct |
3 ms |
5068 KB |
Output is correct |
31 |
Correct |
4 ms |
5196 KB |
Output is correct |
32 |
Correct |
5 ms |
5196 KB |
Output is correct |
33 |
Correct |
4 ms |
5028 KB |
Output is correct |
34 |
Correct |
9 ms |
6068 KB |
Output is correct |
35 |
Correct |
3 ms |
5068 KB |
Output is correct |
36 |
Correct |
3 ms |
5068 KB |
Output is correct |
37 |
Correct |
3 ms |
5068 KB |
Output is correct |
38 |
Correct |
3 ms |
5068 KB |
Output is correct |
39 |
Correct |
4 ms |
5068 KB |
Output is correct |
40 |
Correct |
248 ms |
21800 KB |
Output is correct |
41 |
Correct |
263 ms |
20820 KB |
Output is correct |
42 |
Correct |
237 ms |
20608 KB |
Output is correct |
43 |
Correct |
109 ms |
18344 KB |
Output is correct |
44 |
Correct |
116 ms |
18348 KB |
Output is correct |
45 |
Correct |
237 ms |
23284 KB |
Output is correct |
46 |
Correct |
229 ms |
22448 KB |
Output is correct |
47 |
Correct |
251 ms |
21412 KB |
Output is correct |
48 |
Correct |
111 ms |
17852 KB |
Output is correct |
49 |
Correct |
213 ms |
21472 KB |
Output is correct |
50 |
Correct |
242 ms |
21856 KB |
Output is correct |
51 |
Correct |
222 ms |
22536 KB |
Output is correct |