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);
}}
|