제출 #406216

#제출 시각아이디문제언어결과실행 시간메모리
406216Antekb늑대인간 (IOI18_werewolf)C++14
0 / 100
172 ms24268 KiB
#include "werewolf.h" #include<bits/stdc++.h> #define st first #define nd second #define pb(x) push_back(x) #define mp(x, y) make_pair(x, y) using namespace std; typedef vector<int> vi; const int N=1e5+5; vi E[N]; int vis[N]; int dfs(int v, int l, int r, int col){ //cout<<v<<" "<<l<<" "<<r<<" "<<col<<"\n"; assert(l<=v && v<=r); if(vis[v]==(col-1))return 1; vis[v]=col; int ans=0; for(int u:E[v]){ if(vis[u]!=col && l<=u && u<=r){ ans|=dfs(u, l, r, col); } } return ans; } std::vector<int> check_validity(int n, vi X, vi Y, vi S, vi T, vi L, vi R) { int m=X.size(); for(int i=0; i<m-1; i++){ E[X[i]].pb(Y[i]); E[Y[i]].pb(X[i]); } int q = S.size(); std::vector<int> A(q); for (int i = 0; i < q; ++i){ //cout<<"a\n"; dfs(S[i], L[i], n-1, 2); //cout<<"b\n"; A[i] = dfs(T[i], 0, R[i], 3); for(int j=0; j<n; j++)vis[j]=0; } 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...