#include "werewolf.h"
#include<bits/stdc++.h>
using namespace std;
vector<vector<int>>adj;
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 = S.size();
vector<int> A(Q,0);
adj.resize(N);
for(int i=0;i<X.size();i++){
adj[X[i]].push_back(Y[i]);
adj[Y[i]].push_back(X[i]);
}
for(int i=0;i<Q;i++){
//humano
unordered_set<int>h;
queue<int>q;
q.push(S[i]);
int f=E[i];
while(!q.empty()){
int u=q.front();
q.pop();
if(u>=L[i]){
//cout<<u<<" ";
h.insert(u);
for(int v: adj[u]){
if(h.count(v)!=1){
q.push(v);
}
}
}
}
//cout<<"L"<<L[i]<<"\n";
//for(int x: h) cout<<x<<" ";
//cout<<"\n";
//lobo
queue<int>qr;
unordered_set<int>l;
qr.push(E[i]);
f=S[i];
while(!qr.empty()){
int u=qr.front();
qr.pop();
if(u<=R[i]){
l.insert(u);
for(int v: adj[u]){
if(l.count(v)!=1){
qr.push(v);
}
}
}
}
for(int x: h){
if(l.count(x)){
//cout<<"P:"<<x<<"\n";
A[i]=1;
break;
}
}
}
//cout<<"\n";
return A;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |