Submission #835359

#TimeUsernameProblemLanguageResultExecution timeMemory
835359mousebeaverWerewolf (IOI18_werewolf)C++14
15 / 100
4006 ms35928 KiB
#include "werewolf.h" #include <bits/stdc++.h> using namespace std; void dfs(int l, int r, vector<vector<int>>& adjlist, int i, vector<bool>& visited) { visited[i] = true; for(int j : adjlist[i]) { if(!visited[j] && l <= j && j <= r) { dfs(l, r, adjlist, j, visited); } } } 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 n = N; vector<vector<int>> adjlist(n, vector<int> (0)); for(int i = 0; i < (int) X.size(); i++) { int a = X[i]; int b = Y[i]; adjlist[a].push_back(b); adjlist[b].push_back(a); } vector<int> output(S.size()); for(int t = 0; t < (int) S.size(); t++) { int l = L[t]; int r = R[t]; int s = S[t]; int e = E[t]; vector<bool> visited(n, false); dfs(l, numeric_limits<int>::max()/2, adjlist, s, visited); for(int i = 0; i < n; i++) { if(visited[i] && l <= i && i <= r) { dfs(0, r, adjlist, i, visited); } } output[t] = visited[e]; } return output; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...