제출 #968815

#제출 시각아이디문제언어결과실행 시간메모리
968815duckindog늑대인간 (IOI18_werewolf)C++17
0 / 100
106 ms27976 KiB
#include <bits/stdc++.h> #include "werewolf.h" using namespace std; const int N = 3'000 + 10; vector<int> ad[N]; bool f[N][2], vt[N]; int mk[N]; 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) { int u = x[i], v = y[i]; ad[u].push_back(v); ad[v].push_back(u); } vector<int> answer; for (int i = 0; i < q; ++i) { for (int j = 0; j < n; ++j) mk[j] = (j < l[i] ? 0 : j <= r[i] ? 1 : 2); memset(f, false, sizeof f); memset(vt, false, sizeof vt); queue<int> que; f[s[i]][0] = vt[s[i]] = true; if (mk[s[i]] == 1) f[s[i]][1] = true; que.push(s[i]); while (que.size()) { auto u = que.front(); que.pop(); for (const auto& v : ad[u]) { if (vt[v]) continue; vt[v] = true; if (mk[v] >= 1) f[v][0] = f[u][0]; if (mk[v] <= 1) f[v][1] = (f[u][1] || f[u][0] && mk[v] == 1); if (f[v][0] || f[v][1]) que.push(v); } } answer.push_back(f[e[i]][1]); } return answer; }

컴파일 시 표준 에러 (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:38:55: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   38 |         if (mk[v] <= 1) f[v][1] = (f[u][1] || f[u][0] && mk[v] == 1);
      |                                               ~~~~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...