Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- typedef vector <int> vi;
- typedef vector<vi> vvi;
- typedef pair<int,int> ii;
- #define pb push_back
- #define INF 1000000000
- #define mp make_pair
- #define MOD 1000000007
- #define F first
- #define S second
- ll power[100005];
- int main() {
- ios::sync_with_stdio(false);
- power[0] = 1;
- for (int i = 1; i < 100005; i++) power[i] = (power[i-1]*2)%MOD;
- int n,m,q;
- cin >> n >> m;
- ii edges[m];
- for (int i = 0; i < m; i++){
- cin >> edges[i].F >> edges[i].S;
- }
- ll pref[m+5];
- pref[0] = 0;
- ll deg[n+5];
- for (int i = 0; i < n+5; i++) deg[i] = 0;
- ll cur = 0;
- for (int i = 0; i < m; i ++){
- int a = edges[i].F;
- int b = edges[i].S;
- if (deg[a]%2 == 0){
- cur += power[a];
- cur %= MOD;
- }
- else{
- cur -= power[a];
- if (cur < 0) cur += MOD;
- }
- if (deg[b]%2 == 0){
- cur += power[b];
- cur %= MOD;
- }
- else{
- cur -= power[b];
- if (cur < 0) cur += MOD;
- }
- deg[a] ++;
- deg[b] ++;
- pref[i+1] = cur;
- // cout << i+1 << " " << pref[i+1] << endl;
- }
- cin >> q;
- while (q --){
- int l,r;
- cin >> l >> r;
- if (pref[r] == pref[l-1]) cout << "Yes\n";
- else cout << "No\n";
- }
- }
Add Comment
Please, Sign In to add comment