This documentation is automatically generated by online-judge-tools/verification-helper
#include "src/graph/twosat.hpp"
#pragma once
#include "graph/scc.hpp"
struct TwoSat {
V<bool> res;
struct Edge { int to; };
VV<Edge> g;
//(a == a_exp) || (b == b_exp)
void add_cond(int a, bool a_exp, int b, bool b_exp) {
g[2 * a + (a_exp ? 0 : 1)].push_back(Edge{2 * b + (b_exp ? 1 : 0)});
g[2 * b + (b_exp ? 0 : 1)].push_back(Edge{2 * a + (a_exp ? 1 : 0)});
}
bool exec() {
int n = int(res.size());
auto s = get_scc(g);
for (int i = 0; i < n; i++) {
if (s.id[2 * i] == s.id[2 * i + 1]) return false;
res[i] = s.id[2 * i] < s.id[2 * i + 1];
}
return true;
}
TwoSat() {}
TwoSat(int n) {
g = VV<Edge>(2 * n);
res = V<bool>(n);
}
};
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.10.1/x64/lib/python3.10/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
File "/opt/hostedtoolcache/Python/3.10.1/x64/lib/python3.10/site-packages/onlinejudge_verify/languages/cplusplus.py", line 187, in bundle
bundler.update(path)
File "/opt/hostedtoolcache/Python/3.10.1/x64/lib/python3.10/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 401, in update
self.update(self._resolve(pathlib.Path(included), included_from=path))
File "/opt/hostedtoolcache/Python/3.10.1/x64/lib/python3.10/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 260, in _resolve
raise BundleErrorAt(path, -1, "no such header")
onlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt: graph/scc.hpp: line -1: no such header