Submission #792642

#TimeUsernameProblemLanguageResultExecution timeMemory
792642fatemetmhrWerewolf (IOI18_werewolf)C++17
15 / 100
210 ms19992 KiB
#include "werewolf.h" #include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define pb push_back #define fi first #define se second #define mp make_pair typedef long long ll; const int maxn5 = 3e3 + 10; const int lg = 20; vector <int> adj[maxn5], ret; bool mark[maxn5], mark2[maxn5]; int liml, limr, n; void dfs(int v){ mark[v] = true; for(auto u : adj[v]) if(u >= liml && u <= limr && !mark[u]) dfs(u); } std::vector<int> check_validity(int N, std::vector<int> x, std::vector<int> y, std::vector<int> s, std::vector<int> e, std::vector<int> l, std::vector<int> r) { n = N; int q = s.size(); int m = x.size(); for(int i = 0; i < m; i++){ adj[x[i]].pb(y[i]); adj[y[i]].pb(x[i]); } for(int i = 0; i < q; i++){ liml = 0, limr = r[i]; memset(mark, false, sizeof mark); dfs(e[i]); for(int j = 0; j < n; j++) mark2[j] = mark[j]; memset(mark, false, sizeof mark); liml = l[i]; limr = n; dfs(s[i]); bool re = false; for(int j = 0; j < n; j++) re |= (mark[j] && mark2[j]); ret.pb(re); } 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...