summaryrefslogtreecommitdiff
path: root/content/graph/2sat_amo.cpp
blob: 9686f11b0f4a46bb5f50682bffa95d0ad7726056 (plain)
1
2
3
4
5
6
7
8
9
void atMostOne(const vector<ll>& vars) {
	int k = n / 2;
	n += 2 * ssize(vars);
	adj.resize(n);
	for (int i = 0; i + 1 < sz(vars); i++) {
		addImpl(vars[i], var(k+i));
		addImpl(var(k+i), var(k+i+1));
		addImpl(var(k+i), vars[i+1] ^ 1);
}}