Submission #974533

#TimeUsernameProblemLanguageResultExecution timeMemory
974533kl0989eJoker (BOI20_joker)C++17
14 / 100
2094 ms22108 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define pb push_back #define vi vector<int> #define pi pair<int, int> #define all(x) (x).begin(),(x).end() const int maxn=2e5+10; vector<vector<pi>> graph(maxn); vi col(maxn,-1); bool dfs(int cur, int prev, int color, int l, int r) { if (col[cur]==1-color) { return 0; } if (col[cur]!=-1) { return 1; } col[cur]=color; for (auto [to,ind]:graph[cur]) { if (l<=ind && ind<=r) { continue; } if (to==prev) { continue; } if (!dfs(to,cur,1-color,l,r)) { return 0; } } return 1; } int main() { ios::sync_with_stdio(0); cin.tie(0); int n,m,q; cin >> n >> m >> q; vector<pi> vert(m); for (int i=0; i<m; i++) { cin >> vert[i].fi >> vert[i].se; vert[i].fi--; vert[i].se--; graph[vert[i].fi].pb({vert[i].se,i+1}); graph[vert[i].se].pb({vert[i].fi,i+1}); } int l,r; for (int i=0; i<q; i++) { cin >> l >> r; fill(all(col),-1); bool ok=1; for (int j=0; j<n; j++) { if (col[j]==-1) { if (!dfs(j,-1,0,l,r)) { ok=0; break; } } } if (ok) { cout << "NO\n"; } else { cout << "YES\n"; } } return 0; }
#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...