// 部分点3 // Dijkstra #include using namespace std; int main(){ int N,M,Q; cin>>N>>M>>Q; vector A(N); for(int i=0; i>A[i]; A[i]--; } vector>> G(N); for(int j=0; j>u>>v>>w; u--,v--; G[u].push_back({v,w}); G[v].push_back({u,w}); } vector S(Q),C(Q); for(int k=0; k>S[k]>>C[k]; S[k]--; } vector d(N,1e9+1); d[S[0]]=0; priority_queue,vector>,greater>> que; que.push({d[S[0]],S[0]}); while(!que.empty()){ auto [s,v] = que.top(); que.pop(); if(s>d[v])continue; for(auto [nex,w]:G[v]){ if(max(s,w) ans(N,1e9+1); for(int i=0;i