Submission #868039

#TimeUsernameProblemLanguageResultExecution timeMemory
868039vjudge1Werewolf (IOI18_werewolf)C++17
15 / 100
4093 ms23712 KiB
#include "werewolf.h" using namespace std; #include <bits/stdc++.h> 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) { int Q = L.size(), M = X.size(); vector<vector<int>> adj(N); for (int i = 0; i < M; i++) adj[X[i]].emplace_back(Y[i]); for (int i = 0; i < M; i++) adj[Y[i]].emplace_back(X[i]); auto bfs = [&](int u, int l, int r) { assert(l <= u && u <= r); vector<int> done(N, 0); done[u] = 1; queue<int> q; q.emplace(u); while (q.size()) { int u = q.front(); q.pop(); for (int v : adj[u]) { if (!done[v] && l <= v && v <= r) { done[v] = 1; q.emplace(v); } } } return done; }; vector<int> A(Q); for (int i = 0; i < Q; i++) { auto ds = bfs(S[i], L[i], N); auto de = bfs(E[i], 0, R[i]); for (int j = 0; j < N; j++) { if (de[j] && ds[j]) A[i] = 1; } } return A; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...