Submission #1245651

#TimeUsernameProblemLanguageResultExecution timeMemory
1245651GabrielWerewolf (IOI18_werewolf)C++20
15 / 100
4094 ms34996 KiB
#include "werewolf.h" #include "bits/stdc++.h" using namespace std; vector< vector<int> > Grafo, Visitados; bool Bien(int Nodo, int Objetivo, bool Humano, int No_humano, int No_lobo){ if(Nodo == Objetivo and (!Humano or (Nodo >= No_humano and Nodo <= No_lobo))) return 1; if((Nodo < No_humano and Humano) or (Nodo > No_lobo and !Humano)) return 0; Visitados[Nodo][Humano] = 1; bool r = 0; for(auto E: Grafo[Nodo]){ if(!Visitados[E][Humano]) r = r or Bien(E, Objetivo, Humano, No_humano, No_lobo); if(Nodo >= No_humano and Nodo <= No_lobo and Humano) r = r or Bien(E, Objetivo, 0, No_humano, No_lobo); } return r; } 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(), m = x.size(); vector<int> a(q); Grafo.assign(n, {}); for(int i = 0; i < m; i++){ Grafo[x[i]].push_back(y[i]); Grafo[y[i]].push_back(x[i]); } for(int i = 0; i < q; i++){ Visitados.assign(n, vector<int>(2, 0)); a[i] = Bien(s[i], e[i], 1, l[i], r[i]) or (Bien(s[i], e[i], 0, l[i], r[i]) and s[i] >= l[i] and s[i] <= r[i]); } 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...