Submission #1054241

#TimeUsernameProblemLanguageResultExecution timeMemory
1054241MighilonJoker (BOI20_joker)C++17
0 / 100
2043 ms12944 KiB
#include <bits/stdc++.h> using namespace std; #ifdef DEBUG #include "../Library/debug.h" #else #define dbg(x...) // #define cin fin // #define cout fout // const string FILE_NAME = ""; ifstream fin(FILE_NAME + ".in"); ofstream fout(FILE_NAME + ".out"); #endif typedef long long ll; typedef long double ld; typedef pair<int, int> pi; typedef pair<ll, ll> pl; typedef vector<int> vi; typedef vector<ll> vl; typedef vector<pi> vpi; typedef vector<pl> vpl; #define FOR(i, a, b) for (int i = (a); i < (b); ++i) #define F0R(i, a) for (int i = 0; i < (a); ++i) #define FORd(i, a, b) for (int i = (b) - 1; i >= (a); --i) #define F0Rd(i, a) for (int i = (a) - 1; i >= 0; --i) #define trav(a, x) for (auto& a : x) #define f first #define s second #define pb push_back #define sz(x) (int)(x).size() #define all(x) x.begin(), x.end() const char nl = '\n'; const int INF = 1e9; const int MOD = 1e9 + 7; vector<vi> adj; vi edges, good; vi vis, dist; bool cycle = false; void dfs(int u, int p, int d){ if(vis[u] == 2) return; if(vis[u] == 1){ if(abs(dist[u] - d) % 2 == 0) return; cycle = true; return; } vis[u] = 1; dist[u] = d; trav(id, adj[u]){ if(!good[id]) continue; int v = edges[id] ^ u; if(v == p) continue; dfs(v, u, d + 1); } vis[u] = 2; } void solve(){ int n, m, q; cin >> n >> m >> q; adj.resize(n); edges.resize(m); F0R(i, m){ int a, b; cin >> a >> b; --a, --b; edges[i] = a ^ b; adj[a].pb(i); adj[b].pb(i); } vis.resize(n); good.resize(m); while(q--){ int a, b; cin >> a >> b; a--, b--; vis = vector<int>(n, 0); dist = vector<int>(n, 0); F0R(i, m){ if(i >= a && i <= b) good[i] = false; else good[i] = true; } cycle = false; F0R(i, n){ if(vis[i] == 0) dfs(0, -1, 1); } if(cycle) cout << "YES\n"; else cout << "NO\n"; dbg(cycle) dbg(dist) dbg(vis) } } int32_t main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int TC = 1; // cin >> TC; while(TC--){ solve(); } 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...