제출 #1306127

#제출 시각아이디문제언어결과실행 시간메모리
1306127fafnir늑대인간 (IOI18_werewolf)C++20
7 / 100
4094 ms21504 KiB
#include <bits/stdc++.h> #include "werewolf.h" using namespace std; #define REP(i, n) for (int i = 0; i < (n); i++) bool reachable(vector<vector<int>>& adjList, int start, int end, 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[end]; } 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) { REP(v, N) { bool reach_S = reachable(adj, S[i], v, L[i], N-1); bool reach_E = reachable(adj, v, E[i], 0, R[i]); A[i] |= reach_S && reach_E; } } 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...