Submission #1306131

#TimeUsernameProblemLanguageResultExecution timeMemory
1306131fafnir늑대인간 (IOI18_werewolf)C++20
15 / 100
4094 ms21496 KiB
#include <bits/stdc++.h> #include "werewolf.h" using namespace std; #define REP(i, n) for (int i = 0; i < (n); i++) vector<bool> reachable(vector<vector<int>>& adjList, int start, int lo, int hi) { const int N = adjList.size(); vector<bool> vis(N, false); queue<int> q; if (start >= lo && start <= hi) { q.push(start); vis[start] = true; } while (!q.empty()) { int u = q.front(); q.pop(); for (auto& v : adjList[u]) { if (lo <= v && v <= hi && !vis[v]) { vis[v] = true; q.push(v); } } } return vis; } vector<int> check_validity(int N, vector<int> X, vector<int> Y, vector<int> S, vector<int> E, vector<int> L, vector<int> R) { int Q = S.size(); int M = X.size(); vector<int> A(Q); vector<vector<int> > adj(N); REP(i, M) { adj[X[i]].push_back(Y[i]); adj[Y[i]].push_back(X[i]); } REP(i, Q) { vector<bool> reach_S = reachable(adj, S[i], L[i], N-1); vector<bool> reach_E = reachable(adj, E[i], 0, R[i]); REP(v, N) { A[i] |= reach_S[v] && reach_E[v]; if (A[i]) {break;} } } 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...