#include<stdio.h> int n, m, a[100], b[100]; int f(int x, int y) { return x < 0 ? 1 - (y >> -x - 1) % 2 : (y >> x - 1) % 2; } int main() { scanf("%d %d", &n, &m); for (int i = 0; i < m; i++) scanf("%d %d", &a[i], &b[i]); int res = -1; for (int i = 0; i < 1 << n; i++) { bool flag = true; for (int j = 0; j < m; j++) flag &= f(a[j], i) | f(b[j], i); if (flag) { res = i; break; } } if (res == -1) puts("0"); else { puts("1"); for (int i = 0; i < n; i++) printf("%d ", (res >> i) % 2); } return 0; }
11278번: 2-SAT - 2
https://www.acmicpc.net/problem/11278
라벨:
2-Satisfiability
,
풀이쓸예정
,
BOJ
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기