Submission #1245705

#TimeUsernameProblemLanguageResultExecution timeMemory
1245705adriines06Werewolf (IOI18_werewolf)C++20
15 / 100
4093 ms31108 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...