#include<bits/stdc++.h>
#define int long long
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;
int dis[600000];
int vis[600000];
int va[200][200];
vector<pair<int,int>>v[600000];
int n,m,k,A,B;
void spfa()
{
queue<int>q;
for(int i=1;i<=n;i++)dis[i]=1e18;
dis[A]=0;
vis[A]=1;
q.push(A);
while(q.size())
{
int now=q.front();
q.pop();
vis[now]=0;
for(auto t:v[now])
{
int spot=t.first;
int w=0;//没炸的路不需要修,长度为0
if(va[now][spot]==1)w=t.second;//炸掉的路需要修,长度为原来没炸的长度
if(dis[spot]>dis[now]+w)
{
dis[spot]=dis[now]+w;
if(vis[spot]==0)
{
vis[spot]=1;
q.push(spot);
}
}
}
}
}
signed main()
{
IOS;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int a,b,c;
cin>>a>>b>>c;
v[a].push_back({b,c});
v[b].push_back({a,c});
}
cin>>k;
for(int i=1;i<=k;i++)
{
int p,q;
cin>>p>>q;
va[p][q]=1;//为炸掉的道路标记
va[q][p]=1;//
}
cin>>A>>B;
spfa();
cout<<dis[B];
return 0;
}
11-21
268
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-18
200
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
03-11
528
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
03-02
77
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-11
08-26
07-22
2157
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-13