#include <bits/stdc++.h>
using namespace std;
int n, m, q;
int l, r;
vector<vector<pair<int, int>>> adj;
vector<int> vis;
bool cyc_find(int u, int color = 1, int p = -1) {
vis[u] = color;
for (auto [v, idx] : adj[u]) {
if (l <= idx && idx <= r)
continue;
if (v != p) {
if (vis[v] == vis[u])
return true;
if (!vis[v])
cyc_find(v, color * -1, u);
}
}
return false;
}
int main() {
cin >> n >> m >> q;
adj.resize(n);
for (int i = 0; i < m; i++) {
int a, b;
cin >> a >> b;
a--;
b--;
adj[a].push_back({b, i});
adj[b].push_back({a, i});
}
vis.resize(n);
for (int i = 0; i < q; i++) {
cin >> l >> r;
l--;
r--;
fill(vis.begin(), vis.end(), 0);
bool ans = cyc_find(0);
if (ans)
cout << "YES\n";
else
cout << "NO\n";
}
return 0;
}
| # | 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... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |