diff --git a/students/23K0565/23K0565-p26/pom.xml b/students/23K0565/23K0565-p26/pom.xml
new file mode 100644
index 000000000..2738e5ec3
--- /dev/null
+++ b/students/23K0565/23K0565-p26/pom.xml
@@ -0,0 +1,13 @@
+
+
+ 4.0.0
+
+ 23K0565
+ ru.mirea.practice
+ 2024.1
+ ../pom.xml
+
+ 23K0565-p26
+ 26 практическая
+
diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n1/InvertArray.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n1/InvertArray.java
new file mode 100644
index 000000000..7c421ee75
--- /dev/null
+++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n1/InvertArray.java
@@ -0,0 +1,30 @@
+package ru.mirea.practice.s0000001.n1;
+
+import java.util.Stack;
+
+public final class InvertArray {
+ private InvertArray() {
+ }
+
+ public static int[] invert(int[] arr) {
+ Stack stack = new Stack<>();
+ for (int num : arr) {
+ stack.push(num);
+ }
+
+ for (int i = 0; i < arr.length; i++) {
+ arr[i] = stack.pop();
+ }
+
+ return arr;
+ }
+
+ public static void main(String[] args) {
+ int[] data = {1, 2, 3, 4, 5};
+ data = invert(data);
+ for (int num : data) {
+ System.out.print(num + " ");
+ }
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/CusIterator.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/CusIterator.java
new file mode 100644
index 000000000..90fe217da
--- /dev/null
+++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/CusIterator.java
@@ -0,0 +1,25 @@
+package ru.mirea.practice.s0000001.n2;
+
+import java.util.Iterator;
+import java.util.List;
+
+public class CusIterator implements Iterator {
+ private List lst;
+ private int idx;
+
+ public CusIterator(List lst) {
+ this.lst = lst;
+ this.idx = 0;
+ }
+
+ @Override
+ public boolean hasNext() {
+ return idx < lst.size();
+ }
+
+ @Override
+ public T next() {
+ return lst.get(idx++);
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/ListD.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/ListD.java
new file mode 100644
index 000000000..0986779c4
--- /dev/null
+++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/ListD.java
@@ -0,0 +1,23 @@
+package ru.mirea.practice.s0000001.n2;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public final class ListD {
+ private ListD() {
+ }
+
+ public static void main(String[] args) {
+ List nums = new ArrayList<>();
+ nums.add(10);
+ nums.add(20);
+ nums.add(30);
+
+ CusIterator iter = new CusIterator<>(nums);
+
+ while (iter.hasNext()) {
+ System.out.println(iter.next());
+ }
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusIterator.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusIterator.java
new file mode 100644
index 000000000..30bf0094f
--- /dev/null
+++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusIterator.java
@@ -0,0 +1,24 @@
+package ru.mirea.practice.s0000001.n3;
+
+import java.util.Iterator;
+
+public class CusIterator implements Iterator {
+ private CusList lst;
+ private int idx;
+
+ public CusIterator(CusList lst) {
+ this.lst = lst;
+ this.idx = 0;
+ }
+
+ @Override
+ public boolean hasNext() {
+ return idx < lst.size();
+ }
+
+ @Override
+ public T next() {
+ return lst.get(idx++);
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusList.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusList.java
new file mode 100644
index 000000000..8aa679975
--- /dev/null
+++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusList.java
@@ -0,0 +1,39 @@
+package ru.mirea.practice.s0000001.n3;
+
+import java.util.Iterator;
+
+public class CusList implements Iterable {
+ private Object[] elements;
+ private int size;
+
+ public CusList(int capacity) {
+ elements = new Object[capacity];
+ size = 0;
+ }
+
+ public void add(T item) {
+ if (size < elements.length) {
+ elements[size++] = item;
+ } else {
+ throw new IndexOutOfBoundsException("Список заполнен(");
+ }
+ }
+
+ public T get(int index) {
+ if (index >= 0 && index < size) {
+ return (T) elements[index];
+ } else {
+ throw new IndexOutOfBoundsException("Некорректный индекс:(");
+ }
+ }
+
+ public int size() {
+ return size;
+ }
+
+ @Override
+ public Iterator iterator() {
+ return new CusIterator<>(this);
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/ListDemo.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/ListDemo.java
new file mode 100644
index 000000000..ff43cd541
--- /dev/null
+++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/ListDemo.java
@@ -0,0 +1,18 @@
+package ru.mirea.practice.s0000001.n3;
+
+public final class ListDemo {
+ private ListDemo() {
+ }
+
+ public static void main(String[] args) {
+ CusList nums = new CusList<>(5);
+ nums.add(10);
+ nums.add(20);
+ nums.add(30);
+
+ for (int num : nums) {
+ System.out.println(num);
+ }
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p27/pom.xml b/students/23K0565/23K0565-p27/pom.xml
new file mode 100644
index 000000000..52d175085
--- /dev/null
+++ b/students/23K0565/23K0565-p27/pom.xml
@@ -0,0 +1,13 @@
+
+
+ 4.0.0
+
+ 23K0565
+ ru.mirea.practice
+ 2024.1
+ ../pom.xml
+
+ 23K0565-p27
+ 27 практическая
+
diff --git a/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n1/Hashtab.java b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n1/Hashtab.java
new file mode 100644
index 000000000..42faba96b
--- /dev/null
+++ b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n1/Hashtab.java
@@ -0,0 +1,56 @@
+package ru.mirea.practice.s0000001.n1;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public final class Hashtab {
+ private static final int SIZE = 10;
+ private static Map hTable;
+
+ private Hashtab() {
+ }
+
+ public static int hashtabHash(String key) {
+ return Math.abs(key.hashCode() % SIZE);
+ }
+
+ public static void hashtabInit() {
+ hTable = new HashMap<>();
+ }
+
+ public static void hashtabAdd(String key, String value) {
+ int idx = hashtabHash(key);
+ hTable.put(idx, value);
+ }
+
+ public static String hashtabLookup(String key) {
+ int idx = hashtabHash(key);
+ return hTable.get(idx);
+ }
+
+ public static void hashtabDelete(String key) {
+ int idx = hashtabHash(key);
+ hTable.remove(idx);
+ }
+
+ public static void main(String[] args) {
+ hashtabInit();
+
+ hashtabAdd("ключ1", "значение1");
+ hashtabAdd("ключ2", "значение2");
+ hashtabAdd("ключ3", "значение3");
+ hashtabAdd("ключ4", "значение4");
+ hashtabAdd("ключ5", "значение5");
+ hashtabAdd("ключ6", "значение6");
+ hashtabAdd("ключ7", "значение7");
+ hashtabAdd("ключ8", "значение8");
+ hashtabAdd("ключ9", "значение9");
+ hashtabAdd("ключ10", "значение10");
+
+ System.out.println("Поиск ключа 'ключ3'..: " + hashtabLookup("ключ3"));
+
+ hashtabDelete("ключ3");
+ System.out.println("После удаления ключа 'ключ3': " + hashtabLookup("ключ3"));
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n2/Ttest.java b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n2/Ttest.java
new file mode 100644
index 000000000..26a6f692c
--- /dev/null
+++ b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n2/Ttest.java
@@ -0,0 +1,56 @@
+package ru.mirea.practice.s0000001.n2;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public final class Ttest {
+ private static final int SIZE = 10;
+ private static Map hTable;
+
+ private Ttest() {
+ }
+
+ public static int hashtabHash(String key) {
+ return Math.abs(key.hashCode() % SIZE);
+ }
+
+ public static void hashtabInit() {
+ hTable = new HashMap<>();
+ }
+
+ public static void hashtabAdd(String key, String value) {
+ int idx = hashtabHash(key);
+ hTable.put(idx, value);
+ }
+
+ public static String hashtabLookup(String key) {
+ int idx = hashtabHash(key);
+ return hTable.get(idx);
+ }
+
+ public static void hashtabDelete(String key) {
+ int idx = hashtabHash(key);
+ hTable.remove(idx);
+ }
+
+ public static void main(String[] args) {
+ hashtabInit();
+
+ hashtabAdd("ключ1", "мангоо");
+ hashtabAdd("ключ2", "манго");
+ hashtabAdd("ключ3", "манго13");
+ hashtabAdd("ключ4", "манго14");
+ hashtabAdd("ключ5", "манго15");
+ hashtabAdd("ключ6", "манго16");
+ hashtabAdd("ключ7", "манго17");
+ hashtabAdd("ключ8", "манго18");
+ hashtabAdd("ключ9", "манго19");
+ hashtabAdd("ключ10", "манго20");
+
+ System.out.println("Словарь после добавления элементов:");
+ for (Map.Entry entry : hTable.entrySet()) {
+ System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue());
+ }
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n3/Dem.java b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n3/Dem.java
new file mode 100644
index 000000000..ea588990d
--- /dev/null
+++ b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n3/Dem.java
@@ -0,0 +1,65 @@
+package ru.mirea.practice.s0000001.n3;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public final class Dem {
+ private static final int SIZE = 10;
+ private static Map hTable;
+
+ private Dem() {
+ }
+
+ public static int hashtabHash(String key) {
+ return Math.abs(key.hashCode() % SIZE);
+ }
+
+ public static void hashtabInit() {
+ hTable = new HashMap<>();
+ }
+
+ public static void hashtabAdd(String key, String value) {
+ int idx = hashtabHash(key);
+ hTable.put(idx, value);
+ }
+
+ public static String hashtabLookup(String key) {
+ int idx = hashtabHash(key);
+ return hTable.get(idx);
+ }
+
+ public static void hashtabDelete(String key) {
+ int idx = hashtabHash(key);
+ hTable.remove(idx);
+ }
+
+ public static void main(String[] args) {
+ hashtabInit();
+
+ hashtabAdd("ключ1", "мангоо");
+ hashtabAdd("ключ2", "манго");
+ hashtabAdd("ключ3", "манго13");
+ hashtabAdd("ключ4", "манго14");
+ hashtabAdd("ключ5", "манго15");
+ hashtabAdd("ключ6", "манго16");
+ hashtabAdd("ключ7", "манго17");
+ hashtabAdd("ключ8", "манго18");
+ hashtabAdd("ключ9", "манго19");
+ hashtabAdd("ключ10", "манго20");
+
+ System.out.println("Словарь после добавления элементов:");
+ for (Map.Entry entry : hTable.entrySet()) {
+ System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue());
+ }
+
+ String searchKey = "ключ5";
+ System.out.println("\nПоиск значения по ключу '" + searchKey + "': " + hashtabLookup(searchKey));
+
+ hashtabDelete(searchKey);
+ System.out.println("\nСловарь после удаления ключа: '" + searchKey + "':");
+ for (Map.Entry entry : hTable.entrySet()) {
+ System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue());
+ }
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n4/Ohered.java b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n4/Ohered.java
new file mode 100644
index 000000000..74f919ecf
--- /dev/null
+++ b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n4/Ohered.java
@@ -0,0 +1,84 @@
+package ru.mirea.practice.s0000001.n4;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.PriorityQueue;
+import java.util.Queue;
+
+public final class Ohered {
+ private static final int SIZE = 10;
+ private static Map hTable;
+
+ private Ohered() {
+ }
+
+ public static int hashtabHash(String key) {
+ return Math.abs(key.hashCode() % SIZE);
+ }
+
+ public static void hashtabInit() {
+ hTable = new HashMap<>();
+ }
+
+ public static void hashtabAdd(String key, String value) {
+ int idx = hashtabHash(key);
+ hTable.put(idx, value);
+ }
+
+ public static String hashtabLookup(String key) {
+ int idx = hashtabHash(key);
+ return hTable.get(idx);
+ }
+
+ public static void hashtabDelete(String key) {
+ int idx = hashtabHash(key);
+ hTable.remove(idx);
+ }
+
+ public static void main(String[] args) {
+ hashtabInit();
+
+ hashtabAdd("ключ1", "мангоо");
+ hashtabAdd("ключ2", "манго");
+ hashtabAdd("ключ3", "манго13");
+ hashtabAdd("ключ4", "манго14");
+ hashtabAdd("ключ5", "манго15");
+ hashtabAdd("ключ6", "манго16");
+ hashtabAdd("ключ7", "манго17");
+ hashtabAdd("ключ8", "манго18");
+ hashtabAdd("ключ9", "манго19");
+ hashtabAdd("ключ10", "манго20");
+
+ System.out.println("Словарь после добавления элементов:");
+ for (Map.Entry entry : hTable.entrySet()) {
+ System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue());
+ }
+
+ String searchKey = "ключ5";
+ System.out.println("\nПоиск значения по ключу '" + searchKey + "': " + hashtabLookup(searchKey));
+
+ hashtabDelete(searchKey);
+ System.out.println("\nСловарь после удаления ключа '" + searchKey + "':");
+ for (Map.Entry entry : hTable.entrySet()) {
+ System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue());
+ }
+
+ Queue priorityQueue = new PriorityQueue<>();
+ priorityQueue.add("мангоо");
+ priorityQueue.add("манго");
+ priorityQueue.add("манго13");
+ priorityQueue.add("манго14");
+ priorityQueue.add("манго15");
+ priorityQueue.add("манго15");
+ priorityQueue.add("манго17");
+ priorityQueue.add("манго18");
+ priorityQueue.add("манго19");
+ priorityQueue.add("манго20");
+
+ System.out.println("\nИзвлечение нескольких элементов из очереди с приоритетом:");
+ for (int i = 0; i < 3; i++) {
+ System.out.println("Извлечено: " + priorityQueue.poll());
+ }
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p28/pom.xml b/students/23K0565/23K0565-p28/pom.xml
new file mode 100644
index 000000000..777d7bc08
--- /dev/null
+++ b/students/23K0565/23K0565-p28/pom.xml
@@ -0,0 +1,13 @@
+
+
+ 4.0.0
+
+ 23K0565
+ ru.mirea.practice
+ 2024.1
+ ../pom.xml
+
+ 23K0565-p28
+ 28 практическая
+
diff --git a/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n1/N1.java b/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n1/N1.java
new file mode 100644
index 000000000..e726c769d
--- /dev/null
+++ b/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n1/N1.java
@@ -0,0 +1,46 @@
+package ru.mirea.practice.s0000001.n1;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.TreeSet;
+
+public final class N1 {
+ private static Set hSet;
+
+ private N1() {
+ }
+
+ public static void initSet() {
+ hSet = new HashSet<>();
+ }
+
+ public static void addToSet(String value) {
+ hSet.add(value);
+ }
+
+ public static Set convertToTreeSet() {
+ return new TreeSet<>(hSet);
+ }
+
+ public static void main(String[] args) {
+ initSet();
+
+ addToSet("мангоо");
+ addToSet("манго");
+ addToSet("манго13");
+ addToSet("манго14");
+ addToSet("манго15");
+
+ System.out.println("HashSet:");
+ for (String item : hSet) {
+ System.out.println(item);
+ }
+
+ Set tSet = convertToTreeSet();
+
+ System.out.println("\nTreeSet (отсортированный):");
+ for (String item : tSet) {
+ System.out.println(item);
+ }
+ }
+}
diff --git a/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n3/N3.java b/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n3/N3.java
new file mode 100644
index 000000000..63dafc162
--- /dev/null
+++ b/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n3/N3.java
@@ -0,0 +1,53 @@
+package ru.mirea.practice.s0000001.n3;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public final class N3 {
+ private static final int TABLE_SIZE = 10;
+ private static Map hTable;
+
+ private N3() {
+ }
+
+ public static int hash(double key) {
+ return (int) (TABLE_SIZE * (key - Math.floor(key)));
+ }
+
+ public static void initTable() {
+ hTable = new HashMap<>();
+ }
+
+ public static void insertTable(double key, String value) {
+ int idx = hash(key);
+ hTable.put(idx, value);
+ }
+
+ public static String lookup(double key) {
+ int idx = hash(key);
+ return hTable.get(idx);
+ }
+
+ public static void deleteFromTable(double key) {
+ int idx = hash(key);
+ hTable.remove(idx);
+ }
+
+ public static void main(String[] args) {
+ initTable();
+
+ insertTable(3.1415, "Pi");
+ insertTable(2.7182, "Euler");
+ insertTable(1.6180, "Golden Ratio");
+ insertTable(0.5772, "Euler-Mascheroni");
+ insertTable(6.6260, "Planck");
+
+ System.out.println(lookup(3.1415));
+ System.out.println(lookup(2.7182));
+
+ deleteFromTable(2.7182);
+
+ System.out.println(lookup(2.7182));
+ }
+}
+//Upd
diff --git a/students/23K0565/23K0565-p29/pom.xml b/students/23K0565/23K0565-p29/pom.xml
new file mode 100644
index 000000000..a2822b630
--- /dev/null
+++ b/students/23K0565/23K0565-p29/pom.xml
@@ -0,0 +1,13 @@
+
+
+ 4.0.0
+
+ 23K0565
+ ru.mirea.practice
+ 2024.1
+ ../pom.xml
+
+ 23K0565-p29
+ 29 практическая
+
diff --git a/students/23K0565/23K0565-p29/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0565/23K0565-p29/src/main/java/ru/mirea/practice/s0000001/Main.java
new file mode 100644
index 000000000..b5399d6da
--- /dev/null
+++ b/students/23K0565/23K0565-p29/src/main/java/ru/mirea/practice/s0000001/Main.java
@@ -0,0 +1,40 @@
+package ru.mirea.practice.s0000001;
+
+import java.util.Scanner;
+import java.io.PrintWriter;
+
+public abstract class Main {
+ private static final int INF = 1000000000;
+
+ public static void main(String[] args) {
+ try (Scanner in = new Scanner(System.in); PrintWriter out = new PrintWriter(System.out)) {
+ int n = in.nextInt();
+ int[][] g = new int[n][n];
+
+ for (int i = 0; i < n; i++) {
+ for (int j = 0; j < n; j++) {
+ g[i][j] = in.nextInt();
+ if (g[i][j] == 0 && i != j) {
+ g[i][j] = INF;
+ }
+ }
+ }
+
+ for (int k = 0; k < n; k++) {
+ for (int i = 0; i < n; i++) {
+ for (int j = 0; j < n; j++) {
+ g[i][j] = Math.min(g[i][j], g[i][k] + g[k][j]);
+ }
+ }
+ }
+
+ for (int i = 0; i < n; i++) {
+ for (int j = 0; j < n; j++) {
+ out.print((g[i][j] == INF ? 0 : g[i][j]) + " ");
+ }
+ out.println();
+ }
+ }
+ }
+}
+//Upd