#include <bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define pii pair<ll,ll>
const ll mxN = 2e5 + 5,mod = 1e9 + 7;
using namespace std;
vector<vector<pii>>v;
int n;
int m,q;
bool ban[mxN],vis[mxN],color[mxN];
bool can;
void dfs(int u){
vis[u] = 1;
for(auto x : v[u]){
if(ban[x.S]) continue;
if(!vis[x.F]){
color[x.F] = !color[u];
dfs(x.F);
}else if(color[x.F] == color[u]) can = 1;
}
}
bool solve(int l,int r){
for(int i = 1;i <= m;i++){
vis[i] = color[i] = ban[i] = 0;
}
can = 0;
for(int i = l;i <= r;i++) ban[i] = 1;
for(int i = 1;i <= n;i++) if(!vis[i]) dfs(i);
return can;
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >>n>>m>>q;
v.resize(n + 4);
for(int i = 1;i <= m;i++){
int x,y;
cin >>x>>y;
v[x].push_back({y,i});
v[y].push_back({x,i});
}
while(q--){
int l,r;
cin >>l>>r;
cout<<(solve(l,r) ? "YES\n" : "NO\n");
}
}
# | 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... |