Submission #931405

#TimeUsernameProblemLanguageResultExecution timeMemory
931405qwushaJoker (BOI20_joker)C++17
14 / 100
2093 ms16032 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define fi first
#define se second
typedef long double ld;
const ll inf = 1e9;
const ld eps = 1e-8;
const ll logs = 32;
#include <cmath>
bool ch = 0;
vector<vector<pair<int, int>>> g;
vector<bool> ok;
vector<int> col;

void dfs(int v, int c = 0) {
    col[v] = c;
    for (auto [u, ind] : g[v]) {
        if (!ok[ind]) {
            continue;
        }
        if (col[u] == -1)
            dfs(u, 1 - c);
        else if (col[u] == col[v])
            ch = 1;
    }
}


signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, m, q;
    cin >> n >> m >> q;
    g.resize(n);
    ok.resize(m, 1);
    col.resize(n);
    for (int i = 0; i < m; i++) {
        int v, u;
        cin >> v >> u;
        g[v - 1].push_back({u - 1, i});
        g[u - 1].push_back({v - 1, i});
    }
    for (int qw = 0; qw < q; qw++) {
        int l, r;
        cin >> l >> r;
        for (int i = 0; i < m; i++) {
            if (l - 1 <= i && i < r)
                ok[i] = 0;
            else
                ok[i] = 1;
        }
        for (int i = 0; i < n; i++) {
            col[i] = -1;
        }
        bool check = 0;
        for (int i = 0; i < n; i++) {
            if (col[i] == -1) {
                ch = 0;
                dfs(i);
                if (ch)
                    check = 1;
            }
        }
        if (check) {
            cout << "YES" << '\n';
        } else {
            cout << "NO" << '\n';
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...