Submission #431638

#TimeUsernameProblemLanguageResultExecution timeMemory
431638Bench0310늑대인간 (IOI18_werewolf)C++17
15 / 100
4046 ms26076 KiB
#include <bits/stdc++.h> #include "werewolf.h" using namespace std; typedef long long ll; const int N=200005; int n,m,q; vector<int> v[N]; vector<int> solve_small(vector<int> ns,vector<int> ne,vector<int> nl,vector<int> nr) { vector<int> res(q,0); for(int o=0;o<q;o++) { int s=ns[o]; int e=ne[o]; int l=nl[o]; int r=nr[o]; vector<array<int,2>> dp(n,{0,0}); queue<array<int,2>> b; auto add=[&](int a,int t) { if(dp[a][t]==0) { dp[a][t]=1; b.push({a,t}); } }; add(s,0); while(!b.empty()) { auto [a,t]=b.front(); b.pop(); if(l<=a&&a<=r&&t==0) add(a,1); for(int to:v[a]) { if(t==0&&to>=l) add(to,0); if(t==1&&to<=r) add(to,1); } } res[o]=dp[e][1]; } return res; } vector<int> check_validity(int nn,vector<int> nx,vector<int> ny,vector<int> ns,vector<int> ne,vector<int> nl,vector<int> nr) { n=nn; m=nx.size(); q=ns.size(); for(int i=0;i<m;i++) { v[nx[i]].push_back(ny[i]); v[ny[i]].push_back(nx[i]); } if(n<=3000&&m<=6000&&q<=3000) return solve_small(ns,ne,nl,nr); } //int main() //{ // // return 0; //}

Compilation message (stderr)

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:58:1: warning: control reaches end of non-void function [-Wreturn-type]
   58 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...