Skip to content

Instantly share code, notes, and snippets.

@Zerumi
Last active January 2, 2023 14:30
Show Gist options
  • Save Zerumi/515e9214c779e1715611b32810a39d75 to your computer and use it in GitHub Desktop.
Save Zerumi/515e9214c779e1715611b32810a39d75 to your computer and use it in GitHub Desktop.
// Типовой расчет №2 по дисциплине "Дискретная математика" (программный уровень)
// Преподователь: Гилев Павел Андреевич
import java.util.Scanner;
public class Tipovik2 {
public static void main(String[] args) {
// input
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
boolean[][] graph = new boolean[m][m];
for (int i = 0; i < n; i++)
{
int firstElement = scanner.nextInt() - 1;
int secondElement = scanner.nextInt() - 1;
graph[firstElement][secondElement] = true;
}
boolean reflectionTest = true;
boolean antiReflectionTest = true;
boolean symmetricalTest = true;
boolean antiSymmetricalTest = true;
boolean transitionTest = true;
boolean antiTransitionTest = true;
// reflection
for (int i = 0; i < m; i++)
{
if (graph[i][i])
{
antiReflectionTest = false;
}
else
{
reflectionTest = false;
}
}
// symmetrical
for (int a = 0; a < m; a++)
{
for (int b = 0; b < m; b++)
{
if(graph[a][b] && graph[b][a])
{
antiSymmetricalTest = false;
}
else if (graph[a][b] && !graph[b][a])
{
symmetricalTest = false;
}
}
}
// transition
for (int a = 0; a < m; a++)
{
for (int b = 0; b < m; b++)
{
if (a != b && graph[a][b])
{
for (int c = 0; c < m; c++)
{
if(b != c && graph[b][c])
{
if (a != c && graph[a][c])
{
antiTransitionTest = false;
}
else if (a != c && !graph[a][c])
{
transitionTest = false;
}
}
}
}
}
}
// output
// reflection
if (reflectionTest && antiReflectionTest)
{
System.out.println("Рефлексивное");
System.out.println("Анти-рефлексивное");
System.out.println("Не рефлексивное");
}
else if (reflectionTest)
{
System.out.println("Рефлексивное");
}
else if (antiReflectionTest)
{
System.out.println("Анти-рефлексивное");
}
else
{
System.out.println("Не рефлексивное");
}
// symmetrical
if (symmetricalTest & antiSymmetricalTest)
{
System.out.println("Симметричное");
System.out.println("Анти-симметричное");
System.out.println("Не симметричное");
}
else if (symmetricalTest)
{
System.out.println("Симметричное");
}
else if (antiSymmetricalTest)
{
System.out.println("Анти-симметричное");
}
else
{
System.out.println("Не симметричное");
}
// transition
if (transitionTest && antiTransitionTest)
{
System.out.println("Транзитивное");
System.out.println("Анти-транзитивное");
System.out.println("Не транзитивное");
}
else if (transitionTest)
{
System.out.println("Транзитивное");
}
else if (antiTransitionTest)
{
System.out.println("Анти-транзитивное");
}
else
{
System.out.println("Не транзитивное");
}
System.out.println();
}
}
@Zerumi
Copy link
Author

Zerumi commented Jan 2, 2023

Тест 24
Пример ввода:
5 5
1 2
2 1
3 4
4 5
3 5

Пример вывода:
Анти-рефлексивное
Не симметричное
Транзитивное

Тест 25
Пример ввода:
4 5
1 2
3 4
3 5
4 5

Пример вывода:
Анти-рефлексивное
Анти-симметричное
Транзитивное

Тест 26
Пример ввода:
3 4
1 3
3 4
1 4

Пример вывода:
Анти-рефлексивное
Анти-симметричное
Транзитивное

Тест 27
Пример ввода:
5 4
1 3
3 4
1 4
2 3
3 2

Пример вывода:
Анти-рефлексивное
Не симметричное
Не транзитивное

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment