Submission #82518

#TimeUsernameProblemLanguageResultExecution timeMemory
82518farukkastamonudaWerewolf (IOI18_werewolf)C++14
15 / 100
4019 ms23244 KiB
#include "werewolf.h" #include <bits/stdc++.h> #define fi first #define se second #define lo long long #define inf 1000000009 #define md 1000000007 #define li 200005 #define mp make_pair #define pb push_back #define mid (start+end)/2 using namespace std; int vis[li][2]; queue< pair<int,int> > q; vector<int> v[li],ans,genel,x1,yy1,s1,e1,l1,r1; vector<int> check_validity(int N,vector<int> X,vector<int> Y,vector<int> S,vector<int> E,vector<int> L,vector<int> R){ for(int i=0;i<(int)S.size();i++){ //cout<<"tama: : "<<S[i]<<endl; for(int j=0;j<N;j++) v[j].clear(); memset(vis,0,sizeof(vis)); while(!q.empty()) q.pop(); for(int j=0;j<(int)X.size();j++){ v[X[j]].pb(Y[j]); v[Y[j]].pb(X[j]); } if(S[i]<L[i]) {ans.pb(0);continue;} if(S[i]>=L[i] && S[i]<=R[i]) q.push(mp(S[i],1)); q.push(mp(S[i],0)); int flag=0; while(!q.empty()){ pair<int,int> temp=q.front(); q.pop(); int seh=temp.fi; int tur=temp.se; if(tur==0 && seh<L[i]) continue; if(tur==1 && seh>R[i]) continue; if(vis[seh][tur]==1) continue; if(seh==E[i] && tur==1){ flag=1; break; } vis[seh][tur]=1; for(int j=0;j<(int)v[seh].size();j++){ int go=v[seh][j]; if(go>=L[i] && go<=R[i]) q.push(mp(go,1)); q.push(mp(go,tur)); } } if(flag==1) ans.pb(1); else ans.pb(0); } return ans; } //~ int main(){ //~ x1.pb(5),x1.pb(1),x1.pb(1),x1.pb(3),x1.pb(3),x1.pb(5); //~ yy1.pb(1),yy1.pb(2),yy1.pb(3),yy1.pb(4),yy1.pb(0),yy1.pb(2); //~ s1.pb(4),s1.pb(4),s1.pb(5); //~ e1.pb(2),e1.pb(2),e1.pb(4); //~ l1.pb(1),l1.pb(2),l1.pb(3); //~ r1.pb(2),r1.pb(2),r1.pb(4); //~ genel=check_validity(6,x1,yy1,s1,e1,l1,r1); //~ for(int i=0;i<(int)genel.size();i++) cout<<genel[i]<<endl; //~ return 0; //~ }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...