Selaa lähdekoodia

09.09.2026 added

villis 1 kuukausi sitten
vanhempi
commit
fc5d4932b6

+ 0 - 0
09.09.2026/README.md


+ 50 - 0
09.09.2026/homework1.py

@@ -0,0 +1,50 @@
+"""Задача Класс"""
+
+# Обьявление множества для хранения точек
+dots = set()
+# Обьявление множества уже посещенных точек
+seen = set()
+# Обьявление счетчика цветов
+color_count = 0
+
+# Чтение чисел из потока stdin
+while True:
+    try:
+        # [int(x), int(y)]
+        x, y = map(int, input().split())
+        dots.add(
+            (
+                x,
+                y,
+            )
+        )
+        # EndOfFile
+    except EOFError:
+        break
+
+# Итерация по парам точек
+for dot in dots:
+    # Если точка уже найдена и была проверена
+    if dot in seen:
+        # пропускаем
+        continue
+    # Запоминаем точку
+    seen.add(dot)
+    # Новая пара или одиночная точка
+    color_count += 1
+    # Лист для поиска подходящих точек в пару
+    search = [dot]
+
+    while search:
+        # берем первую точку (x, y)
+        x, y = search.pop(0)
+        # Те точки, что подходят по условию
+        approved_dots = [(x, y - 1), (x, y + 1), (x - 1, y), (x + 1, y)]
+        for dot in approved_dots:
+            # Если точка есть в файле и она не была проверена
+            if (dot in dots) and (dot not in seen):
+                seen.add(dot)
+                # Следующая на поиск пары точка
+                search.append(dot)
+
+print(color_count)

+ 52 - 0
09.09.2026/homework2.py

@@ -0,0 +1,52 @@
+"""Задача Тьюринг"""
+
+array = []
+
+# array = [
+#   [r,r,d,l],
+#   [u,r,d,l],
+#   [d,d,r,l],
+#   [l,d,r,l]
+# ]
+
+while True:
+    try:
+        array.append(list(input()))
+    except EOFError:
+        break
+
+
+def find_cicle() -> str:
+    index = []
+    current_point = (0, 0)
+    x = y = 0
+    while current_point not in index:
+        index.append(current_point)
+        if array[y][x] == "r":
+            if x + 1 > (len(array) - 1):
+                current_point = (y, 0)
+            else:
+                current_point = (y, x + 1)
+            y, x = current_point
+        elif array[y][x] == "l":
+            if x - 1 < 0:
+                current_point = (y, (len(array) - 1))
+            else:
+                current_point = (y, x - 1)
+            y, x = current_point
+        elif array[y][x] == "u":
+            if y - 1 < 0:
+                current_point = ((len(array) - 1), x)
+            else:
+                current_point = (y - 1, x)
+            y, x = current_point
+        elif array[y][x] == "d":
+            if y + 1 > (len(array) - 1):
+                current_point = (0, x)
+            else:
+                current_point = (y + 1, x)
+            y, x = current_point
+    return f"{current_point[1]} {current_point[0]}"
+
+
+print(find_cicle())

+ 17 - 0
09.09.2026/homework3.py

@@ -0,0 +1,17 @@
+"""Задача Дважды Три"""
+
+number = int(input())
+
+
+def ternary(num: int) -> int:
+    if num == 0:
+        return 0
+    s = ""
+    while num:
+        s += str(num % 3) + str(num % 3)
+        num //= 3
+    encoded = s[::-1]
+    return int(encoded, 3)
+
+
+print(ternary(number))

+ 53 - 0
09.09.2026/homework4.py

@@ -0,0 +1,53 @@
+"""Задача Код"""
+
+nums = []
+approved_numbers = []
+matrix = [
+            [[0], [3], [1], [7], [5], [9], [8], [6], [4], [2]],
+            [[7], [0], [9], [2], [1], [5], [4], [8], [6], [3]],
+            [[4], [2], [0], [6], [8], [7], [1], [3], [5], [9]],
+            [[1], [7], [5], [0], [9], [8], [3], [4], [2], [6]],
+            [[6], [1], [2], [3], [0], [4], [5], [9], [7], [8]],
+            [[3], [6], [7], [4], [2], [0], [9], [5], [8], [1]],
+            [[5], [8], [6], [9], [7], [2], [0], [1], [3], [4]],
+            [[8], [9], [4], [5], [3], [6], [2], [0], [1], [7]],
+            [[9], [4], [3], [8], [6], [1], [7], [2], [0], [5]],
+            [[2], [5], [8], [1], [4], [3], [6], [7], [9], [0]],
+]
+
+while True:
+    try:
+        num = input().strip()
+        nums.append(num)
+    except EOFError:
+        break
+
+def find_k(num: str) -> int:
+    k = 0
+    for s in range(len(num)):
+        d = int(num[s])
+        k = matrix[k][d][0]
+    return k
+
+for i in range(len(nums)):
+    f = 0
+    s = 1
+    num = nums[i]
+    k = find_k(num)
+    original_list = list(num)
+    while k != 0:
+        reverse_list = original_list.copy()
+        if 0 <= f < len(num) and 0 < s < len(num):
+            reverse_list[f], reverse_list[s] = original_list[s], original_list[f]
+        else:
+           raise ValueError(f"Число {num} не имеет решения")
+        reversed_num = "".join(reverse_list)
+        k = find_k(reversed_num)
+        num = reversed_num
+        f+=1
+        s+=1
+    approved_numbers.append(num)
+
+
+with open("output.dat", "w") as file:
+    file.write("\n".join(approved_numbers))

+ 10 - 0
09.09.2026/input.dat

@@ -0,0 +1,10 @@
+34164
+23193
+72170
+75933
+70711
+82153
+82026
+41854
+71617
+99412

+ 10 - 0
09.09.2026/output.dat

@@ -0,0 +1,10 @@
+43164
+32193
+72710
+79533
+70171
+81253
+80226
+48154
+76117
+99142

+ 4 - 0
09.09.2026/text.txt

@@ -0,0 +1,4 @@
+lrrd
+ldll
+lrru
+ldrd