#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5 + 5;
int n, m, q, ji[N], ou[N];
bool vis[N];
vector<int> e[N];
void bfs()
{
memset(ji, 0x3f, sizeof(ji));
memset(ou, 0x3f, sizeof(ou));
queue <int> q;
q.push(1);
ou[1] = 0;
vis[1] = 1;
while (!q.empty())
{
int u = q.front();
q.pop();
for (auto v : e[u])
{
if (ou[u] + 1 < ji[v])
{
ji[v] = ou[u] + 1;
if (!vis[v])
q.push(v), vis[v] = 1;
}
if (ji[u] + 1 < ou[v])
{
ou[v] = ji[u] + 1;
if (!vis[v])
q.push(v), vis[v] = 1;
}
}
}
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> n >> m >> q;
for (int i = 1; i <= m; i++)
{
int u, v;
cin >> u >> v;
e[u].push_back(v);
e[v].push_back(u);
}
bfs();
while (q--)
{
int a, l;
cin >> a >> l;
if (l % 2 == 0)
{
if (ou[a] > l)
puts("No");
else
puts("Yes");
}
else
{
if (ji[a] > l)
puts("No");
else
puts("Yes");
}
}
}
悬赏一关