#include <stdio.h>
#define N 4 // кількість елементів у множині A
#define R_SIZE 6 // кількість пар у R
// Відношення R
int R[R_SIZE][2] = {
{1,1}, {2,2}, {3,3},
{1,2}, {2,1}, {1,3}
};
// Перевірка, чи (a,b) ∈ R
int inRelation(int a, int b) {
for (int i = 0; i < R_SIZE; i++) {
if (R[i][0] == a && R[i][1] == b)
return 1;
}
return 0;
}
int main() {
int A[N] = {1, 2, 3, 4};
int reflexive = 1, symmetric = 1, antisymmetric = 1, transitive = 1;
// --- Рефлексивність ---
for (int i = 0; i < N; i++) {
if (!inRelation(A[i], A[i])) {
reflexive = 0;
break;
}
}
// --- Симетричність та антисиметричність ---
for (int i = 0; i < R_SIZE; i++) {
int a = R[i][0], b = R[i][1];
if (!inRelation(b, a)) {
symmetric = 0;
}
if (a != b && inRelation(b, a)) {
antisymmetric = 0;
}
}
// --- Транзитивність ---
for (int i = 0; i < R_SIZE; i++) {
for (int j = 0; j < R_SIZE; j++) {
int a = R[i][0], b = R[i][1];
int c = R[j][0], d = R[j][1];
if (b == c) {
if (!inRelation(a, d)) {
transitive = 0;
}
}
}
}
// Вивід результатів
printf("Рефлексивність: %s\n", reflexive
? "так" : "ні"); printf("Симетричність: %s\n", symmetric
? "так" : "ні"); printf("Антисиметричність: %s\n", antisymmetric
? "так" : "ні"); printf("Транзитивність: %s\n", transitive
? "так" : "ні");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE4gNCAgIC8vINC60ZbQu9GM0LrRltGB0YLRjCDQtdC70LXQvNC10L3RgtGW0LIg0YMg0LzQvdC+0LbQuNC90ZYgQQojZGVmaW5lIFJfU0laRSA2IC8vINC60ZbQu9GM0LrRltGB0YLRjCDQv9Cw0YAg0YMgUgoKLy8g0JLRltC00L3QvtGI0LXQvdC90Y8gUgppbnQgUltSX1NJWkVdWzJdID0gewogICAgezEsMX0sIHsyLDJ9LCB7MywzfSwKICAgIHsxLDJ9LCB7MiwxfSwgezEsM30KfTsKCi8vINCf0LXRgNC10LLRltGA0LrQsCwg0YfQuCAoYSxiKSDiiIggUgppbnQgaW5SZWxhdGlvbihpbnQgYSwgaW50IGIpIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgUl9TSVpFOyBpKyspIHsKICAgICAgICBpZiAoUltpXVswXSA9PSBhICYmIFJbaV1bMV0gPT0gYikKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICB9CiAgICByZXR1cm4gMDsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgQVtOXSA9IHsxLCAyLCAzLCA0fTsKCiAgICBpbnQgcmVmbGV4aXZlID0gMSwgc3ltbWV0cmljID0gMSwgYW50aXN5bW1ldHJpYyA9IDEsIHRyYW5zaXRpdmUgPSAxOwoKICAgIC8vIC0tLSDQoNC10YTQu9C10LrRgdC40LLQvdGW0YHRgtGMIC0tLQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICBpZiAoIWluUmVsYXRpb24oQVtpXSwgQVtpXSkpIHsKICAgICAgICAgICAgcmVmbGV4aXZlID0gMDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIC8vIC0tLSDQodC40LzQtdGC0YDQuNGH0L3RltGB0YLRjCDRgtCwINCw0L3RgtC40YHQuNC80LXRgtGA0LjRh9C90ZbRgdGC0YwgLS0tCiAgICBmb3IgKGludCBpID0gMDsgaSA8IFJfU0laRTsgaSsrKSB7CiAgICAgICAgaW50IGEgPSBSW2ldWzBdLCBiID0gUltpXVsxXTsKCiAgICAgICAgaWYgKCFpblJlbGF0aW9uKGIsIGEpKSB7CiAgICAgICAgICAgIHN5bW1ldHJpYyA9IDA7CiAgICAgICAgfQoKICAgICAgICBpZiAoYSAhPSBiICYmIGluUmVsYXRpb24oYiwgYSkpIHsKICAgICAgICAgICAgYW50aXN5bW1ldHJpYyA9IDA7CiAgICAgICAgfQogICAgfQoKICAgIC8vIC0tLSDQotGA0LDQvdC30LjRgtC40LLQvdGW0YHRgtGMIC0tLQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBSX1NJWkU7IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgUl9TSVpFOyBqKyspIHsKICAgICAgICAgICAgaW50IGEgPSBSW2ldWzBdLCBiID0gUltpXVsxXTsKICAgICAgICAgICAgaW50IGMgPSBSW2pdWzBdLCBkID0gUltqXVsxXTsKCiAgICAgICAgICAgIGlmIChiID09IGMpIHsKICAgICAgICAgICAgICAgIGlmICghaW5SZWxhdGlvbihhLCBkKSkgewogICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpdmUgPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vINCS0LjQstGW0LQg0YDQtdC30YPQu9GM0YLQsNGC0ZbQsgogICAgcHJpbnRmKCLQoNC10YTQu9C10LrRgdC40LLQvdGW0YHRgtGMOiAlc1xuIiwgcmVmbGV4aXZlID8gItGC0LDQuiIgOiAi0L3RliIpOwogICAgcHJpbnRmKCLQodC40LzQtdGC0YDQuNGH0L3RltGB0YLRjDogJXNcbiIsIHN5bW1ldHJpYyA/ICLRgtCw0LoiIDogItC90ZYiKTsKICAgIHByaW50Zigi0JDQvdGC0LjRgdC40LzQtdGC0YDQuNGH0L3RltGB0YLRjDogJXNcbiIsIGFudGlzeW1tZXRyaWMgPyAi0YLQsNC6IiA6ICLQvdGWIik7CiAgICBwcmludGYoItCi0YDQsNC90LfQuNGC0LjQstC90ZbRgdGC0Yw6ICVzXG4iLCB0cmFuc2l0aXZlID8gItGC0LDQuiIgOiAi0L3RliIpOwoKICAgIHJldHVybiAwOwp9Cgo=