Submission #768681

#TimeUsernameProblemLanguageResultExecution timeMemory
768681BaytoroWerewolf (IOI18_werewolf)C++17
15 / 100
4033 ms40184 KiB
#include "werewolf.h" //#include "grader.cpp" #include <bits/stdc++.h> using namespace std; #define pb push_back const int N=2e5+5; vector<int> g[N]; int col[N]; vector<int> used; void dfs(int x, int c, vector<int> &used){ used[x]=1; //cout<<x<<' '<<c<<' '<<col[x]<<endl; for(auto it: g[x]){ if(used[it]) continue; if(c==1 && col[it]<=1) dfs(it,c,used); if(c==2 && col[it]>=1) dfs(it,c,used); } } 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 m=X.size(),q=S.size(); for(int i=0;i<m;i++){ g[X[i]].pb(Y[i]); g[Y[i]].pb(X[i]); } //Subtask 2 vector<int> ans(q); for(int i=0;i<q;i++){ if(E[i]>R[i] || S[i]<L[i]) continue; for(int j=0;j<n;j++){ if(j<L[i]) col[j]=2; else if(j<=R[i]) col[j]=1; else col[j]=0; } vector<int> a(n),b(n); dfs(S[i],1,a); dfs(E[i],2,b); for(int j=L[i];j<=R[i];j++) if(a[j] && b[j]) ans[i]=1; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...