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

Тесты:
Тест 1
Пример ввода:
0 0

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

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

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

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

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

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

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

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

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

Тест 6
Пример ввода:
16 10
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
4 7
7 4
3 6
6 3
2 9
9 2

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

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

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

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

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

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

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

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

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

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

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

Тест 12
Пример ввода:
0 7

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

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

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

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

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

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

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

Тест 16
Пример ввода:
1 1
1 1

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

Тест 17
Пример ввода:
10 6
1 2
2 3
3 5
5 6
1 3
1 5
1 6
3 6
2 5
2 6

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

Тест 18
Пример ввода:
9 6
1 2
2 3
3 5
5 6
1 3
1 5
1 6
3 6
2 5

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

Тест 19
Пример ввода:
11 8
8 8
1 4
4 4
6 2
2 5
5 7
7 5
3 3
8 1
4 3
4 8

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

Тест 20
Пример ввода:
11 8
8 8
1 4
4 4
6 2
2 5
5 7
7 5
3 3
1 8
4 3
4 8

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

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

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

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

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

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

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

@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