#include<bits/stdc++.h>
#define fi first
#define se second
#define pii pair<int,int>
#define mp make_pair
using namespace std;
const int N=1e5+5;
int n,m,s,t,u,v,deg[N];
long long d[3][N],dp[2][N];
vector<int>g[N],topolist,rg[N];
vector<pii>adj[N];
bool vis[N];
void dijkstra(int i,int u)
{
priority_queue<pair<long long,int>,vector<pair<long long,int>>,greater<pair<long long,int>>>pq;
d[i][u]=0;
pq.push(mp(0,u));
while(!pq.empty())
{
int x=pq.top().se;
long long dist=pq.top().fi;
pq.pop();
if(d[i][x]!=dist) continue;
for(auto&to:adj[x])
{
if(d[i][to.fi]==-1||d[i][to.fi]>dist+to.se)
{
d[i][to.fi]=dist+to.se;
pq.push(mp(d[i][to.fi],to.fi));
}
}
}
}
void topo()
{
queue<int>pq;
pq.push(s);
while(!pq.empty())
{
int x=pq.front();
pq.pop();
topolist.push_back(x);
for(auto&to:g[x])
{
deg[to]--;
if(deg[to]==0) pq.push(to);
}
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cin>>n>>m>>s>>t>>u>>v;
while(m--)
{
int u,v,w;
cin>>u>>v>>w;
adj[u].push_back(mp(v,w));
adj[v].push_back(mp(u,w));
}
memset(d,-1,sizeof d);
dijkstra(0,u);
dijkstra(1,v);
dijkstra(2,s);
queue<int>cur;
cur.push(t);
while(!cur.empty())
{
int x=cur.front();
cur.pop();
if(vis[x]) continue;
vis[x]=true;
for(auto&to:adj[x])
{
if(d[2][x]==d[2][to.fi]+to.se)
{
g[to.fi].push_back(x);
rg[x].push_back(to.fi);
deg[x]++;
cur.push(to.fi);
}
}
}
topo();
long long res=d[0][v];
for(auto&x:topolist)
{
dp[0][x]=d[0][x];
dp[1][x]=d[1][x];
for(auto&pre:rg[x])
{
dp[0][x]=min(dp[0][x],dp[0][pre]);
dp[1][x]=min(dp[1][x],dp[1][pre]);
}
res=min(res,d[1][x]+dp[0][x]);
res=min(res,d[0][x]+dp[1][x]);
}
cout<<res;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
313 ms |
19388 KB |
Output is correct |
2 |
Correct |
407 ms |
19692 KB |
Output is correct |
3 |
Correct |
401 ms |
22616 KB |
Output is correct |
4 |
Correct |
300 ms |
19132 KB |
Output is correct |
5 |
Correct |
373 ms |
21236 KB |
Output is correct |
6 |
Correct |
313 ms |
19236 KB |
Output is correct |
7 |
Correct |
380 ms |
21996 KB |
Output is correct |
8 |
Correct |
393 ms |
21496 KB |
Output is correct |
9 |
Correct |
334 ms |
17772 KB |
Output is correct |
10 |
Correct |
277 ms |
17644 KB |
Output is correct |
11 |
Correct |
224 ms |
17772 KB |
Output is correct |
12 |
Correct |
368 ms |
17832 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
398 ms |
19504 KB |
Output is correct |
2 |
Correct |
370 ms |
19732 KB |
Output is correct |
3 |
Correct |
395 ms |
19412 KB |
Output is correct |
4 |
Correct |
383 ms |
19648 KB |
Output is correct |
5 |
Correct |
404 ms |
23688 KB |
Output is correct |
6 |
Correct |
383 ms |
25476 KB |
Output is correct |
7 |
Correct |
411 ms |
25976 KB |
Output is correct |
8 |
Correct |
368 ms |
23248 KB |
Output is correct |
9 |
Correct |
365 ms |
23752 KB |
Output is correct |
10 |
Correct |
380 ms |
22924 KB |
Output is correct |
11 |
Correct |
221 ms |
21284 KB |
Output is correct |
12 |
Correct |
392 ms |
25776 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
16 ms |
10496 KB |
Output is correct |
2 |
Correct |
8 ms |
9728 KB |
Output is correct |
3 |
Correct |
8 ms |
9728 KB |
Output is correct |
4 |
Correct |
22 ms |
11768 KB |
Output is correct |
5 |
Correct |
15 ms |
10752 KB |
Output is correct |
6 |
Correct |
8 ms |
9856 KB |
Output is correct |
7 |
Correct |
9 ms |
9884 KB |
Output is correct |
8 |
Correct |
9 ms |
9984 KB |
Output is correct |
9 |
Correct |
8 ms |
9856 KB |
Output is correct |
10 |
Correct |
15 ms |
10856 KB |
Output is correct |
11 |
Correct |
7 ms |
9728 KB |
Output is correct |
12 |
Correct |
7 ms |
9728 KB |
Output is correct |
13 |
Correct |
8 ms |
9728 KB |
Output is correct |
14 |
Correct |
9 ms |
9832 KB |
Output is correct |
15 |
Correct |
7 ms |
9856 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
313 ms |
19388 KB |
Output is correct |
2 |
Correct |
407 ms |
19692 KB |
Output is correct |
3 |
Correct |
401 ms |
22616 KB |
Output is correct |
4 |
Correct |
300 ms |
19132 KB |
Output is correct |
5 |
Correct |
373 ms |
21236 KB |
Output is correct |
6 |
Correct |
313 ms |
19236 KB |
Output is correct |
7 |
Correct |
380 ms |
21996 KB |
Output is correct |
8 |
Correct |
393 ms |
21496 KB |
Output is correct |
9 |
Correct |
334 ms |
17772 KB |
Output is correct |
10 |
Correct |
277 ms |
17644 KB |
Output is correct |
11 |
Correct |
224 ms |
17772 KB |
Output is correct |
12 |
Correct |
368 ms |
17832 KB |
Output is correct |
13 |
Correct |
398 ms |
19504 KB |
Output is correct |
14 |
Correct |
370 ms |
19732 KB |
Output is correct |
15 |
Correct |
395 ms |
19412 KB |
Output is correct |
16 |
Correct |
383 ms |
19648 KB |
Output is correct |
17 |
Correct |
404 ms |
23688 KB |
Output is correct |
18 |
Correct |
383 ms |
25476 KB |
Output is correct |
19 |
Correct |
411 ms |
25976 KB |
Output is correct |
20 |
Correct |
368 ms |
23248 KB |
Output is correct |
21 |
Correct |
365 ms |
23752 KB |
Output is correct |
22 |
Correct |
380 ms |
22924 KB |
Output is correct |
23 |
Correct |
221 ms |
21284 KB |
Output is correct |
24 |
Correct |
392 ms |
25776 KB |
Output is correct |
25 |
Correct |
16 ms |
10496 KB |
Output is correct |
26 |
Correct |
8 ms |
9728 KB |
Output is correct |
27 |
Correct |
8 ms |
9728 KB |
Output is correct |
28 |
Correct |
22 ms |
11768 KB |
Output is correct |
29 |
Correct |
15 ms |
10752 KB |
Output is correct |
30 |
Correct |
8 ms |
9856 KB |
Output is correct |
31 |
Correct |
9 ms |
9884 KB |
Output is correct |
32 |
Correct |
9 ms |
9984 KB |
Output is correct |
33 |
Correct |
8 ms |
9856 KB |
Output is correct |
34 |
Correct |
15 ms |
10856 KB |
Output is correct |
35 |
Correct |
7 ms |
9728 KB |
Output is correct |
36 |
Correct |
7 ms |
9728 KB |
Output is correct |
37 |
Correct |
8 ms |
9728 KB |
Output is correct |
38 |
Correct |
9 ms |
9832 KB |
Output is correct |
39 |
Correct |
7 ms |
9856 KB |
Output is correct |
40 |
Correct |
335 ms |
23444 KB |
Output is correct |
41 |
Correct |
307 ms |
22088 KB |
Output is correct |
42 |
Correct |
310 ms |
22220 KB |
Output is correct |
43 |
Correct |
262 ms |
23924 KB |
Output is correct |
44 |
Correct |
231 ms |
23772 KB |
Output is correct |
45 |
Correct |
561 ms |
28220 KB |
Output is correct |
46 |
Correct |
460 ms |
27956 KB |
Output is correct |
47 |
Correct |
326 ms |
22900 KB |
Output is correct |
48 |
Correct |
259 ms |
23296 KB |
Output is correct |
49 |
Correct |
256 ms |
23168 KB |
Output is correct |
50 |
Correct |
406 ms |
26868 KB |
Output is correct |
51 |
Correct |
439 ms |
28224 KB |
Output is correct |