#include <stdio.h>
#define U_SIZE 11
int isSubset(int A[], int B[]) {
for (int i = 1; i <= 10; i++)
if (A[i] && !B[i]) return 0;
return 1;
}
void intersect(int A[], int B[], int R[]) {
for (int i = 1; i <= 10; i++)
R[i] = A[i] && B[i];
}
void uni(int A[], int B[], int R[]) {
for (int i = 1; i <= 10; i++)
R[i] = A[i] || B[i];
}
void diff(int A[], int B[], int R[]) {
for (int i = 1; i <= 10; i++)
R[i] = A[i] && !B[i];
}
void symdiff(int A[], int B[], int R[]) {
for (int i = 1; i <= 10; i++)
R[i] = (A[i] != B[i]);
}
int equal(int A[], int B[]) {
for (int i = 1; i <= 10; i++)
if (A[i] != B[i]) return 0;
return 1;
}
int main() {
int A[U_SIZE] = {0};
int empty[U_SIZE] = {0};
// A = {1,2,3,5,6}
int a_vals[] = {1,2,3,5,6};
for (int i = 0; i < 5; i++) A[a_vals[i]] = 1;
int R1[U_SIZE], R2[U_SIZE];
printf("a) ∅ ⊂ A : %s\n", isSubset
(empty
, A
) ? "TRUE" : "FALSE");
intersect(A, A, R1);
printf("b) A ∩ A = A : %s\n", equal
(R1
, A
) ? "TRUE" : "FALSE");
uni(A, empty, R1);
printf("c) A ∪ ∅ = A : %s\n", equal
(R1
, A
) ? "TRUE" : "FALSE");
diff(A, empty, R1);
printf("d) A \\ ∅ = A : %s\n", equal
(R1
, A
) ? "TRUE" : "FALSE");
// Для перевірки e) візьмемо A та B=A → Δ=∅
int B[U_SIZE];
for (int i = 1; i <= 10; i++) B[i] = A[i];
symdiff(A, B, R1);
printf("e) A Δ B = ∅ → A = B : %s\n", equal
(R1
, empty
) && equal
(A
, B
) ? "TRUE" : "FALSE");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFVfU0laRSAxMQoKaW50IGlzU3Vic2V0KGludCBBW10sIGludCBCW10pIHsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IDEwOyBpKyspCiAgICAgICAgaWYgKEFbaV0gJiYgIUJbaV0pIHJldHVybiAwOwogICAgcmV0dXJuIDE7Cn0KCnZvaWQgaW50ZXJzZWN0KGludCBBW10sIGludCBCW10sIGludCBSW10pIHsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IDEwOyBpKyspCiAgICAgICAgUltpXSA9IEFbaV0gJiYgQltpXTsKfQoKdm9pZCB1bmkoaW50IEFbXSwgaW50IEJbXSwgaW50IFJbXSkgewogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gMTA7IGkrKykKICAgICAgICBSW2ldID0gQVtpXSB8fCBCW2ldOwp9Cgp2b2lkIGRpZmYoaW50IEFbXSwgaW50IEJbXSwgaW50IFJbXSkgewogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gMTA7IGkrKykKICAgICAgICBSW2ldID0gQVtpXSAmJiAhQltpXTsKfQoKdm9pZCBzeW1kaWZmKGludCBBW10sIGludCBCW10sIGludCBSW10pIHsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IDEwOyBpKyspCiAgICAgICAgUltpXSA9IChBW2ldICE9IEJbaV0pOwp9CgppbnQgZXF1YWwoaW50IEFbXSwgaW50IEJbXSkgewogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gMTA7IGkrKykKICAgICAgICBpZiAoQVtpXSAhPSBCW2ldKSByZXR1cm4gMDsKICAgIHJldHVybiAxOwp9CgppbnQgbWFpbigpIHsKCiAgICBpbnQgQVtVX1NJWkVdID0gezB9OwogICAgaW50IGVtcHR5W1VfU0laRV0gPSB7MH07CgogICAgLy8gQSA9IHsxLDIsMyw1LDZ9CiAgICBpbnQgYV92YWxzW10gPSB7MSwyLDMsNSw2fTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSBBW2FfdmFsc1tpXV0gPSAxOwoKICAgIGludCBSMVtVX1NJWkVdLCBSMltVX1NJWkVdOwoKICAgIHByaW50ZigiYSkg4oiFIOKKgiBBIDogJXNcbiIsIGlzU3Vic2V0KGVtcHR5LCBBKSA/ICJUUlVFIiA6ICJGQUxTRSIpOwoKICAgIGludGVyc2VjdChBLCBBLCBSMSk7CiAgICBwcmludGYoImIpIEEg4oipIEEgPSBBIDogJXNcbiIsIGVxdWFsKFIxLCBBKSA/ICJUUlVFIiA6ICJGQUxTRSIpOwoKICAgIHVuaShBLCBlbXB0eSwgUjEpOwogICAgcHJpbnRmKCJjKSBBIOKIqiDiiIUgPSBBIDogJXNcbiIsIGVxdWFsKFIxLCBBKSA/ICJUUlVFIiA6ICJGQUxTRSIpOwoKICAgIGRpZmYoQSwgZW1wdHksIFIxKTsKICAgIHByaW50ZigiZCkgQSBcXCDiiIUgPSBBIDogJXNcbiIsIGVxdWFsKFIxLCBBKSA/ICJUUlVFIiA6ICJGQUxTRSIpOwoKICAgIC8vINCU0LvRjyDQv9C10YDQtdCy0ZbRgNC60LggZSkg0LLRltC30YzQvNC10LzQviBBINGC0LAgQj1BIOKGkiDOlD3iiIUKICAgIGludCBCW1VfU0laRV07CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSAxMDsgaSsrKSBCW2ldID0gQVtpXTsKICAgIHN5bWRpZmYoQSwgQiwgUjEpOwoKICAgIHByaW50ZigiZSkgQSDOlCBCID0g4oiFIOKGkiBBID0gQiA6ICVzXG4iLCBlcXVhbChSMSwgZW1wdHkpICYmIGVxdWFsKEEsIEIpID8gIlRSVUUiIDogIkZBTFNFIik7CgogICAgcmV0dXJuIDA7Cn0KCg==