This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//Euzibillahiminesseytanirracim Bismillahirrahmanirrahim
/*
ID:
TASK:
LANG: C++
*/
#include <bits/stdc++.h>
#define pb push_back
#define ll long long
#define ff first
#define ss second
#define mp make_pair
#define PII pair<int,int>
#define inf 1000000001
using namespace std;
int n, m, x, y, z, k, mx, t, d[100001], kd[100001], a[100001];
vector<pair<int,int>> v[100001];
priority_queue<pair<int,int>> q;
queue<int>qq;
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>x>>y>>z;
v[x].pb({y,z});
v[y].pb({x,z});
}
for(int i=1;i<=n;i++) d[i] = inf;
cin>>k;
for(int i=1;i<=k;i++){
cin>>a[i];
d[a[i]] = 0;
q.push({0,a[i]});
}
while(!q.empty()){
int b = q.top().ss;
q.pop();
if(kd[b] == 1) continue;
kd[b] = 1;
for(auto s:v[b]){
if(d[s.ff] > d[b] + s.ss){
d[s.ff] = d[b] + s.ss;
q.push({-d[s.ff] , s.ff});
}
}
}
cin>>t;
while(t--){
int l, r;
cin>>x>>y;
l = 0;
r = d[x];
while(l <= r){
int mid = (l + r) / 2;
for(int i=1;i<=n;i++) kd[i] = 0;
kd[x] = 1;
qq.push(x);
while(!qq.empty()){
int b = qq.front();
qq.pop();
for(auto s:v[b]){
if(kd[s.ff] == 1 || d[s.ff] < mid) continue;
kd[s.ff] = 1;
qq.push(s.ff);
}
}
if(kd[y] == 1) l = mid + 1;
else r = mid - 1;
}
cout<<l - 1<<"\n";
}
}
/*
_________oBBBBB8o oBBBBBBB8
_____o8BBBBBBBBBBB BBBBBBBBB8 o88o
___o8BBBBBB**8BBBB BBBBBBBBBB oBBBBBBBo
__oBBBBBBB* *** BBBBBBBBBB BBBBBBBBBBo
_8BBBBBBBBBBooooo *BBBBBBB8 *BB* 8BBBBBBo
_8BBBBBBBBBBBBBBBB8ooBBBBBBB8 8BBBBBBB8
__*BBBBBBBBBBBBBBBBBBBBBBBBBB8 o88BB88BBBBBBBBBBBB
____*BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB8
______**8BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB*
___________*BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB8*
____________*BBBBBBBBBBBBBBBBBBBBBBBB8888**
_____________BBBBBBBBBBBBBBBBBBBBBBB*
_____________*BBBBBBBBBBBBBBBBBBBBB*
______________*BBBBBBBBBBBBBBBBBB8
_______________*BBBBBBBBBBBBBBBB*
________________8BBBBBBBBBBBBBBB8
_________________8BBBBBBBBBBBBBBBo
__________________BBBBBBBBBBBBBBB8
__________________BBBBBBBBBBBBBBBB
__________________8BBBBBBBBBBBBBBB8
__________________*BBBBBBBBBBBBBBBB
__________________8BBBBBBBBBBBBBBBB8
_________________oBBBBBBBBBBBBBBBBBB
________________oBBBBBBBBBBBBBBBBBBB
________________BBBBBBBBBBBBBBBBBBBB
_______________8BBBBBBBBBBBBBBBBBBB8
______________oBBBBBBBBB88BBBBBBBBB8
______________8BBBBBBBBB*8BBBBBBBBB*
______________BBBBBBBBB* BBBBBBBBB8
______________BBBBBBBB8 oBBBBBBBBB*
______________8BBBBBBB oBBBBBBBB*
______________BBBBBBB* 8BBBBBBB*
_____________8BBBBBB* BBBBBBB*
____________8BBBBBB8 oBBBBBB8
___________8BBBBBB8 8BBBBBB*
__________oBBBBBB8 BBBBBBB8
__________BBBBBBB8 BBBBBBBB*
_________oBBBBBBB8 BBBBBBBB
_________8BBBBBB8 BBBBBBB*
_________BBBBBB* 8BBBBB*
________oBBBB8 BBBBB*
________oBBB8 BBBB*
________BBBB8 8BBBBo
_______8BBBB* oBBBBBBo
______8BBBB* *BBBBBBBB8o
______BBBBB* *88BBBo
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |