#include #include using namespace std; using ll = long long;//63bit型整数型 int main(){ ll N,M; cin >> N >> M; vector>graph(N,vector(0)); for(ll i = 0;i> u >> v; u--; v--; graph[u].push_back(v); graph[v].push_back(u); } ll L; cin >> L; vectord(N,-1); for(ll i = 0;i> J >> K; J--; d[J] = max(d[J],K); } priority_queue>pq; for(ll i = 0;ians(N,inf); vectorvisited(N); queue>BFS; if(d[0] == -1)BFS.push({0,0}); while(true){ if(BFS.empty())break; ll point = BFS.front().first; ll count = BFS.front().second; ans[point] = min(ans[point],count); BFS.pop(); visited[point] = true; for(ll i = 0;i