Submission #142780

#TimeUsernameProblemLanguageResultExecution timeMemory
142780cfalasWerewolf (IOI18_werewolf)C++14
0 / 100
4021 ms23156 KiB
#include<bits/stdc++.h> using namespace std; #include "werewolf.h" typedef vector<int> vi; vector<vi> adj; vector<bool> vis; bool dfsWolf(int s, int e, int b, int par=-1){ if(s>b) return false; vis[s] = true; if(s==e) return true; for(int i=0;i<adj[s].size();i++) if(!vis[adj[s][i]] && adj[s][i]<=b && dfsWolf(adj[s][i], e, b, s)) return true; return false; } bool dfsHuman(int s, int e, int b, int par=-1){ if(s<b) return false; vis[s] = true; if(s==e) return true; for(int i=0;i<adj[s].size();i++) if(!vis[adj[s][i]] && adj[s][i]>=b && dfsHuman(adj[s][i], e, b, s)) return true; return false; } 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) { adj.assign(N+1, vi()); for(int i=0;i<X.size();i++){ adj[X[i]].push_back(Y[i]); adj[Y[i]].push_back(X[i]); } int Q = S.size(); std::vector<int> A(Q); bool found = false; for (int i = 0; i < Q; ++i) { //cout<<"----------------\n"; found = false; for(int j=0;j<N-1;j++){ vis.assign(N+1, false); //cout<<j<<endl; if(dfsHuman(S[i], j, L[i]) && dfsWolf(j+1, E[i], R[i])){ found = true; break; } //cout<<"-\n"; } //cout<<found<<endl; if(!found) A[i] = 0; else A[i]=1; } return A; }

Compilation message (stderr)

werewolf.cpp: In function 'bool dfsWolf(int, int, int, int)':
werewolf.cpp:12:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<adj[s].size();i++) if(!vis[adj[s][i]] && adj[s][i]<=b && dfsWolf(adj[s][i], e, b, s)) return true;
              ~^~~~~~~~~~~~~~
werewolf.cpp: In function 'bool dfsHuman(int, int, int, int)':
werewolf.cpp:19:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<adj[s].size();i++) if(!vis[adj[s][i]] && adj[s][i]>=b && dfsHuman(adj[s][i], e, b, s)) return true;
              ~^~~~~~~~~~~~~~
werewolf.cpp: In function 'std::vector<int> check_validity(int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
werewolf.cpp:27:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<X.size();i++){
              ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...