Submission #425416

#TimeUsernameProblemLanguageResultExecution timeMemory
425416MonchitoWerewolf (IOI18_werewolf)C++14
0 / 100
4073 ms38664 KiB
#include "werewolf.h" #include <cstring> using namespace std; using vi = vector<int>; #define sz(x) (int)x.size() const int MAXN = 2e5; vi G[MAXN]; bool vis[MAXN], can; int s, e, l, r; void DFS(int u, int t) { if(u == e) can = true; vis[u] = true; for(int v : G[u]) { if(!vis[v]) { if(t == 0){ if(v >= l) DFS(v, t); else if(v <= r && u <= r) DFS(v, 1); } else { if(v <= r) DFS(v, t); } } } } vi check_validity(int N, vi X, vi Y, vi S, vi E, vi L, vi R) { for(int i=0; i<sz(X); i++) { int u = X[i], v = Y[i]; G[u].push_back(v); G[v].push_back(u); } int Q = sz(S); vi ret(Q); for(int i=0; i<Q; i++) { s = S[i]; e = E[i]; l = L[i]; r = R[i]; can = false; memset(vis, false, sizeof(vis)); DFS(s, 0); ret[i] = (can)? 1 : 0; } 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...