Submission #1054581

#TimeUsernameProblemLanguageResultExecution timeMemory
1054581kititnikJoker (BOI20_joker)C++17
0 / 100
24 ms2396 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 2005; bool used[MAXN]; int cntrs[MAXN]; int graph[MAXN][MAXN]; bool ans = false; bool is_checking(int l, int r, int street) { return (street <= r && street >= l); } void dfs(int v, int p, int counter, int n, int l, int r) { used[v] = true; cntrs[v] = counter; for(int i = 0; i < MAXN; i++) { if(i==v) continue; if(i==p) continue; int street = graph[v][i]; if(street == 0) continue; if(is_checking(l, r, street)) continue; if(used[i]) { int distance = abs(counter - cntrs[i])+1; if(distance % 2 != 0) ans = true; } else dfs(i, v, counter+1, n, l, r); } } int main() { int n, m, q; cin >> n >> m >> q; int v, u; for(int i = 1; i <= m; i++) { cin >> v >> u; graph[v][u] = i; graph[u][v] = i; } for(int i = 0; i < q; i++) { int l, r; cin >> l >> r; memset(used, 0, sizeof(used)); memset(cntrs, 0, sizeof(cntrs)); dfs(v, -1, 1, n, l, r); if(ans) cout << "YES" << endl; else cout << "NO" << endl; ans = false; } }
#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...