about summary refs log tree commit diff
path: root/usth/MATH2.3/4/sum.c
diff options
context:
space:
mode:
Diffstat (limited to 'usth/MATH2.3/4/sum.c')
-rw-r--r--usth/MATH2.3/4/sum.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/usth/MATH2.3/4/sum.c b/usth/MATH2.3/4/sum.c
new file mode 100644
index 0000000..8fd28f3
--- /dev/null
+++ b/usth/MATH2.3/4/sum.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+
+int main()
+{
+	size_t n, f;
+	int b = 0;
+
+	scanf("%zu %zu", &n, &f);
+	for (size_t i = 0; !(i >> n); ++i) {
+		if (!(f & 1 << i))
+			continue;
+		if (b)
+			printf(" | ");
+		b = 1;
+		printf(i & 1 ? "~(x0" : "~(~x0");
+		for (size_t j = 1; j < n; ++j)
+			if (i & 1 << j)
+				printf(" | ~x%zu", j);
+			else
+				printf(" | x%zu", j);
+		putchar(41);
+	}
+	putchar(10);
+
+	return 0;
+}