Submission #1239649

#TimeUsernameProblemLanguageResultExecution timeMemory
1239649TimoshWerewolf (IOI18_werewolf)C++20
15 / 100
4094 ms29884 KiB
#include "bits/stdc++.h" #include "werewolf.h" using namespace std; vector<int> check_validity(int N, vector<int> X, vector<int> Y, vector<int> S, vector<int> E, vector<int> L, vector<int> R) { vector<int> vis(N), ans(L.size()); vector<vector<int>> g(N); int i; for (int i = 0; i < X.size(); i++) g[X[i]].push_back(Y[i]); for (int i = 0; i < X.size(); i++) g[Y[i]].push_back(X[i]); auto dfs = [&](auto dfs, int node) -> void { if (node < L[i]) return; vis[node] = 1; for (auto &x : g[node]) if (!vis[x]) dfs(dfs, x); }; auto df = [&](auto df, int node) -> void { if (node > R[i]) return; if (node >= L[i] && vis[node] == 1) ans[i] = 1; vis[node] = 2; for (auto &x : g[node]) if (vis[x] != 2) df(df, x); }; for (i = 0; i < S.size(); i++) { dfs(dfs, S[i]); df(df, E[i]); for (auto &i : vis) i = 0; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...