#include "bits/stdc++.h"
using namespace std;
using ll = long long;
const int MAXN = 1e5+5;
const ll INF = 1e18;
bool visited[MAXN];
ll dpU[MAXN], dpV[MAXN], dp[2][MAXN], dpS[MAXN], ans = 2e18;
//int par[MAXN];
vector< vector< pair<long long, long long > > > adj(MAXN);
void dijkstra1(int v, ll arr[])
{
fill(visited, visited + MAXN, false);
priority_queue< pair<ll, ll > > pq;
pq.push({0LL, v});
while(!pq.empty())
{
pair<ll, ll> curr = pq.top();
pq.pop();
if(!visited[curr.second])
{
arr[curr.second] = -curr.first;
visited[curr.second] = true;
for(pair<ll, ll> e : adj[curr.second])
pq.push({curr.first - e.first, e.second});
}
}
}
void dijkstra2(int start, int end)
{
fill(dp[0], dp[0] + MAXN, INF);
fill(dp[1], dp[1] + MAXN, INF);
fill(visited, visited + MAXN, false);
priority_queue< pair<ll, pair<ll, ll> > > pq;
pq.push({0, {start, 0}});
dp[0][0] = dp[1][0] = INF;
while(!pq.empty())
{
pair<ll, pair<ll, ll> > curr = pq.top();
pq.pop();
ll node = curr.second.first;
ll dist = curr.first;
ll par = curr.second.second;
if(!visited[node])
{
dpS[node] = -dist;
visited[node] = true;
dp[0][node] = min(dp[0][par], dpU[node]);
dp[1][node] = min(dp[1][par], dpV[node]);
for(pair<ll, ll> e : adj[node])
{
pq.push({dist - e.first, {e.second, node}});
}
} else if(dpS[node] == -dist)
{
if(min(dpU[node], dp[0][par]) + min(dpV[node], dp[1][par]) <= dp[0][node] + dp[1][node]) {
dp[0][node] = min(dp[0][par], dpU[node]);
dp[1][node] = min(dp[1][par], dpV[node]);
}
}
}
ans = min(ans, dp[0][end] + dp[1][end]);
}
int main()
{
int n, m, s, t, u, v;
cin >> n >> m >> s >> t >> u >> v;
for(int i = 1; i <= m; i++)
{
ll a, b, c;
cin >> a >> b >> c;
adj[a].push_back({c, b});
adj[b].push_back({c, a});
}
dijkstra1(u, dpU);
dijkstra1(v, dpV);
ans = dpU[v];
dijkstra2(s, t);
dijkstra2(t, s);
cout << ans << "\n";
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
566 ms |
31064 KB |
Output is correct |
2 |
Correct |
527 ms |
30260 KB |
Output is correct |
3 |
Correct |
523 ms |
30044 KB |
Output is correct |
4 |
Correct |
570 ms |
30144 KB |
Output is correct |
5 |
Correct |
518 ms |
26392 KB |
Output is correct |
6 |
Correct |
584 ms |
31076 KB |
Output is correct |
7 |
Correct |
510 ms |
29980 KB |
Output is correct |
8 |
Correct |
523 ms |
30312 KB |
Output is correct |
9 |
Correct |
575 ms |
31536 KB |
Output is correct |
10 |
Correct |
576 ms |
31472 KB |
Output is correct |
11 |
Correct |
182 ms |
13888 KB |
Output is correct |
12 |
Correct |
568 ms |
31448 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
581 ms |
30708 KB |
Output is correct |
2 |
Correct |
503 ms |
26560 KB |
Output is correct |
3 |
Correct |
500 ms |
29916 KB |
Output is correct |
4 |
Correct |
513 ms |
26552 KB |
Output is correct |
5 |
Correct |
517 ms |
26452 KB |
Output is correct |
6 |
Correct |
514 ms |
29888 KB |
Output is correct |
7 |
Correct |
507 ms |
26564 KB |
Output is correct |
8 |
Correct |
546 ms |
26600 KB |
Output is correct |
9 |
Correct |
500 ms |
26336 KB |
Output is correct |
10 |
Correct |
521 ms |
29788 KB |
Output is correct |
11 |
Correct |
190 ms |
13904 KB |
Output is correct |
12 |
Correct |
526 ms |
30068 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
46 ms |
7516 KB |
Output is correct |
2 |
Correct |
4 ms |
4308 KB |
Output is correct |
3 |
Correct |
4 ms |
4308 KB |
Output is correct |
4 |
Correct |
89 ms |
10600 KB |
Output is correct |
5 |
Correct |
46 ms |
8440 KB |
Output is correct |
6 |
Correct |
5 ms |
4436 KB |
Output is correct |
7 |
Correct |
6 ms |
4564 KB |
Output is correct |
8 |
Correct |
8 ms |
4724 KB |
Output is correct |
9 |
Correct |
5 ms |
4464 KB |
Output is correct |
10 |
Correct |
45 ms |
8340 KB |
Output is correct |
11 |
Correct |
3 ms |
4308 KB |
Output is correct |
12 |
Correct |
3 ms |
4308 KB |
Output is correct |
13 |
Correct |
3 ms |
4392 KB |
Output is correct |
14 |
Correct |
4 ms |
4468 KB |
Output is correct |
15 |
Correct |
4 ms |
4436 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
566 ms |
31064 KB |
Output is correct |
2 |
Correct |
527 ms |
30260 KB |
Output is correct |
3 |
Correct |
523 ms |
30044 KB |
Output is correct |
4 |
Correct |
570 ms |
30144 KB |
Output is correct |
5 |
Correct |
518 ms |
26392 KB |
Output is correct |
6 |
Correct |
584 ms |
31076 KB |
Output is correct |
7 |
Correct |
510 ms |
29980 KB |
Output is correct |
8 |
Correct |
523 ms |
30312 KB |
Output is correct |
9 |
Correct |
575 ms |
31536 KB |
Output is correct |
10 |
Correct |
576 ms |
31472 KB |
Output is correct |
11 |
Correct |
182 ms |
13888 KB |
Output is correct |
12 |
Correct |
568 ms |
31448 KB |
Output is correct |
13 |
Correct |
581 ms |
30708 KB |
Output is correct |
14 |
Correct |
503 ms |
26560 KB |
Output is correct |
15 |
Correct |
500 ms |
29916 KB |
Output is correct |
16 |
Correct |
513 ms |
26552 KB |
Output is correct |
17 |
Correct |
517 ms |
26452 KB |
Output is correct |
18 |
Correct |
514 ms |
29888 KB |
Output is correct |
19 |
Correct |
507 ms |
26564 KB |
Output is correct |
20 |
Correct |
546 ms |
26600 KB |
Output is correct |
21 |
Correct |
500 ms |
26336 KB |
Output is correct |
22 |
Correct |
521 ms |
29788 KB |
Output is correct |
23 |
Correct |
190 ms |
13904 KB |
Output is correct |
24 |
Correct |
526 ms |
30068 KB |
Output is correct |
25 |
Correct |
46 ms |
7516 KB |
Output is correct |
26 |
Correct |
4 ms |
4308 KB |
Output is correct |
27 |
Correct |
4 ms |
4308 KB |
Output is correct |
28 |
Correct |
89 ms |
10600 KB |
Output is correct |
29 |
Correct |
46 ms |
8440 KB |
Output is correct |
30 |
Correct |
5 ms |
4436 KB |
Output is correct |
31 |
Correct |
6 ms |
4564 KB |
Output is correct |
32 |
Correct |
8 ms |
4724 KB |
Output is correct |
33 |
Correct |
5 ms |
4464 KB |
Output is correct |
34 |
Correct |
45 ms |
8340 KB |
Output is correct |
35 |
Correct |
3 ms |
4308 KB |
Output is correct |
36 |
Correct |
3 ms |
4308 KB |
Output is correct |
37 |
Correct |
3 ms |
4392 KB |
Output is correct |
38 |
Correct |
4 ms |
4468 KB |
Output is correct |
39 |
Correct |
4 ms |
4436 KB |
Output is correct |
40 |
Correct |
586 ms |
30892 KB |
Output is correct |
41 |
Correct |
583 ms |
31252 KB |
Output is correct |
42 |
Correct |
643 ms |
31316 KB |
Output is correct |
43 |
Correct |
182 ms |
13932 KB |
Output is correct |
44 |
Correct |
182 ms |
14028 KB |
Output is correct |
45 |
Correct |
511 ms |
25080 KB |
Output is correct |
46 |
Correct |
520 ms |
24860 KB |
Output is correct |
47 |
Correct |
589 ms |
26688 KB |
Output is correct |
48 |
Correct |
163 ms |
13332 KB |
Output is correct |
49 |
Correct |
576 ms |
29308 KB |
Output is correct |
50 |
Correct |
503 ms |
25172 KB |
Output is correct |
51 |
Correct |
493 ms |
25060 KB |
Output is correct |