思路:通过辣度去搜索。将所有火锅店辣度小于等于当前搜索的辣度的火锅店点坐标全部压入queue
#include<bits/stdc++.h>
using namespace std;
int a[100010];
vector<int> ve[100010];
int ans[100010][105];
int main(){
int n,m,q;
cin>>n>>m>>q;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=m;i++){
int x,y;
scanf("%d%d",&x,&y);
ve[x].push_back(y);
ve[y].push_back(x);
}
for(int i=1;i<=100;i++){
for(int j=1;j<=n;j++) ans[j][i]=-1;
queue<int> qu;
for(int j=1;j<=n;j++){
if(a[j]<=i) qu.push(j),ans[j][i]=0;
}
while(!qu.empty()){
int now=qu.front();
qu.pop();
for(auto to : ve[now]){
if(ans[to][i]==-1){
ans[to][i]=ans[now][i]+1;
qu.push(to);
}
}
}
}
while(q--){
int x,y;
scanf("%d%d",&x,&y);
cout<<ans[x][y]<<'\n';
}
return 0;
}