Submission #1222658

#TimeUsernameProblemLanguageResultExecution timeMemory
1222658colossal_pepeWerewolf (IOI18_werewolf)C++20
15 / 100
4094 ms31956 KiB
#include "werewolf.h" #include <bits/stdc++.h> using namespace std; int n, m, q; vector<vector<int>> g; void dfs(int u, int x, int ineq, vector<bool> &vis) { vis[u] = 1; for (int v : g[u]) { if (v >= x == ineq and not vis[v]) dfs(v, x, ineq, vis); } } int solve(int s, int e, int l, int r) { vector<bool> vis1(n, 0), vis2(n, 0); dfs(s, l, 1, vis1); dfs(e, r + 1, 0, vis2); for (int i = l; i <= r; i++) { if (vis1[i] and vis2[i]) return 1; } return 0; } vector<int> check_validity(int N, vector<int> X, vector<int> Y, vector<int> S, vector<int> E, vector<int> L, vector<int> R) { n = N; m = X.size(); q = S.size(); g.resize(n); for (int i = 0; i < m; i++) { g[X[i]].push_back(Y[i]); g[Y[i]].push_back(X[i]); } vector<int> ret(q); for (int i = 0; i < q; i++) { ret[i] = solve(S[i], E[i], L[i], R[i]); } return ret; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...