#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[2][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] > d + v.ss) {
dist[v.ff] = d + v.ss;
q.emplace(-dist[v.ff], v.ff);
}
}
}
}
bool vis[N];
ll arr[2][N], ans(inf);
void dfs(int u) {
vis[u] = true;
arr[0][u] = dist[0][u]; // S->u
arr[1][u] = dist[1][u]; // u->T
for (int v : G[u]) {
if (!vis[v]) dfs(v);
arr[0][u] = min(arr[0][u], arr[0][v]);
arr[1][u] = min(arr[1][u], arr[1][v]);
}
ans = min({ ans, arr[0][u] + dist[1][u], dist[0][u] + arr[1][u] });
}
int main() {
cin.tie(NULL)->sync_with_stdio(false);
cin >> n >> m >> S >> T >> U >> V;
for (int i = 0, u, v, w; i < m; ++i) {
cin >> u >> v >> w;
g[u].emplace_back(v, w);
g[v].emplace_back(u, w);
}
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[0]);
dijkstra(V, dist[1]);
for (int i = 1; i <= n; ++i)
if (!vis[i]) dfs(i);
cout << ans << '\n';
}
/** /\_/\
* (= ._.)
* / >0 \>1
**/
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
276 ms |
17896 KB |
Output is correct |
2 |
Correct |
305 ms |
17120 KB |
Output is correct |
3 |
Correct |
260 ms |
21496 KB |
Output is correct |
4 |
Correct |
255 ms |
17820 KB |
Output is correct |
5 |
Correct |
279 ms |
18168 KB |
Output is correct |
6 |
Correct |
302 ms |
18484 KB |
Output is correct |
7 |
Correct |
317 ms |
18588 KB |
Output is correct |
8 |
Correct |
246 ms |
19436 KB |
Output is correct |
9 |
Correct |
251 ms |
19028 KB |
Output is correct |
10 |
Correct |
233 ms |
18980 KB |
Output is correct |
11 |
Correct |
117 ms |
16908 KB |
Output is correct |
12 |
Correct |
293 ms |
18928 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
288 ms |
17848 KB |
Output is correct |
2 |
Correct |
279 ms |
18404 KB |
Output is correct |
3 |
Correct |
304 ms |
18296 KB |
Output is correct |
4 |
Correct |
315 ms |
17724 KB |
Output is correct |
5 |
Correct |
293 ms |
18644 KB |
Output is correct |
6 |
Correct |
297 ms |
19976 KB |
Output is correct |
7 |
Correct |
346 ms |
22376 KB |
Output is correct |
8 |
Correct |
319 ms |
18088 KB |
Output is correct |
9 |
Correct |
378 ms |
19536 KB |
Output is correct |
10 |
Correct |
306 ms |
19176 KB |
Output is correct |
11 |
Correct |
95 ms |
18216 KB |
Output is correct |
12 |
Correct |
249 ms |
20696 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
9 ms |
6092 KB |
Output is correct |
2 |
Correct |
3 ms |
5068 KB |
Output is correct |
3 |
Correct |
3 ms |
5068 KB |
Output is correct |
4 |
Correct |
16 ms |
7116 KB |
Output is correct |
5 |
Correct |
10 ms |
6048 KB |
Output is correct |
6 |
Correct |
5 ms |
5044 KB |
Output is correct |
7 |
Correct |
4 ms |
5076 KB |
Output is correct |
8 |
Correct |
7 ms |
5136 KB |
Output is correct |
9 |
Correct |
4 ms |
5020 KB |
Output is correct |
10 |
Correct |
10 ms |
6040 KB |
Output is correct |
11 |
Correct |
3 ms |
5068 KB |
Output is correct |
12 |
Correct |
4 ms |
5016 KB |
Output is correct |
13 |
Correct |
3 ms |
5068 KB |
Output is correct |
14 |
Correct |
4 ms |
5068 KB |
Output is correct |
15 |
Correct |
6 ms |
5024 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
276 ms |
17896 KB |
Output is correct |
2 |
Correct |
305 ms |
17120 KB |
Output is correct |
3 |
Correct |
260 ms |
21496 KB |
Output is correct |
4 |
Correct |
255 ms |
17820 KB |
Output is correct |
5 |
Correct |
279 ms |
18168 KB |
Output is correct |
6 |
Correct |
302 ms |
18484 KB |
Output is correct |
7 |
Correct |
317 ms |
18588 KB |
Output is correct |
8 |
Correct |
246 ms |
19436 KB |
Output is correct |
9 |
Correct |
251 ms |
19028 KB |
Output is correct |
10 |
Correct |
233 ms |
18980 KB |
Output is correct |
11 |
Correct |
117 ms |
16908 KB |
Output is correct |
12 |
Correct |
293 ms |
18928 KB |
Output is correct |
13 |
Correct |
288 ms |
17848 KB |
Output is correct |
14 |
Correct |
279 ms |
18404 KB |
Output is correct |
15 |
Correct |
304 ms |
18296 KB |
Output is correct |
16 |
Correct |
315 ms |
17724 KB |
Output is correct |
17 |
Correct |
293 ms |
18644 KB |
Output is correct |
18 |
Correct |
297 ms |
19976 KB |
Output is correct |
19 |
Correct |
346 ms |
22376 KB |
Output is correct |
20 |
Correct |
319 ms |
18088 KB |
Output is correct |
21 |
Correct |
378 ms |
19536 KB |
Output is correct |
22 |
Correct |
306 ms |
19176 KB |
Output is correct |
23 |
Correct |
95 ms |
18216 KB |
Output is correct |
24 |
Correct |
249 ms |
20696 KB |
Output is correct |
25 |
Correct |
9 ms |
6092 KB |
Output is correct |
26 |
Correct |
3 ms |
5068 KB |
Output is correct |
27 |
Correct |
3 ms |
5068 KB |
Output is correct |
28 |
Correct |
16 ms |
7116 KB |
Output is correct |
29 |
Correct |
10 ms |
6048 KB |
Output is correct |
30 |
Correct |
5 ms |
5044 KB |
Output is correct |
31 |
Correct |
4 ms |
5076 KB |
Output is correct |
32 |
Correct |
7 ms |
5136 KB |
Output is correct |
33 |
Correct |
4 ms |
5020 KB |
Output is correct |
34 |
Correct |
10 ms |
6040 KB |
Output is correct |
35 |
Correct |
3 ms |
5068 KB |
Output is correct |
36 |
Correct |
4 ms |
5016 KB |
Output is correct |
37 |
Correct |
3 ms |
5068 KB |
Output is correct |
38 |
Correct |
4 ms |
5068 KB |
Output is correct |
39 |
Correct |
6 ms |
5024 KB |
Output is correct |
40 |
Correct |
272 ms |
20320 KB |
Output is correct |
41 |
Correct |
253 ms |
18924 KB |
Output is correct |
42 |
Correct |
316 ms |
19004 KB |
Output is correct |
43 |
Correct |
110 ms |
19352 KB |
Output is correct |
44 |
Correct |
143 ms |
19468 KB |
Output is correct |
45 |
Correct |
277 ms |
21560 KB |
Output is correct |
46 |
Correct |
272 ms |
20520 KB |
Output is correct |
47 |
Correct |
253 ms |
19676 KB |
Output is correct |
48 |
Correct |
122 ms |
17048 KB |
Output is correct |
49 |
Correct |
217 ms |
19836 KB |
Output is correct |
50 |
Correct |
298 ms |
20088 KB |
Output is correct |
51 |
Correct |
274 ms |
20764 KB |
Output is correct |