Загрузка данных
# Задача 1
s = input()
print(s[0] + s[1:-1][::-1] + s[-1])
# Задача 2
s = input()
print(s[1:8:2])
# Задача 3
n, m = map(int, input().split())
matrix = [[0 if i % 2 == 0 else 1 for _ in range(m)] for i in range(n)]
for row in matrix:
print(*row)
# Задача 4
lst = input().split()
half = len(lst) // 2
first = lst[:half]
second_rev = lst[-half:][::-1]
print("YES" if first == second_rev else "NO")
# Задача 5
n = int(input())
matrix = [list(map(int, input().split())) for _ in range(n)]
diag = [matrix[i][i] for i in range(n)]
print(*diag)
# Задача 6
with open("code.txt", "r", encoding="utf-8") as f:
for line in f:
line = line.rstrip("\n")
if "#" in line:
line = line[:line.index("#")]
if line:
print(line)
# Задача 7
n = int(input())
for i in range(n):
row = ["." if (i + j) % 2 == 0 else "*" for j in range(n)]
print("".join(row))
# Задача 8
with open("logs.txt", "r", encoding="utf-8") as f:
for line in f:
parts = line.strip().split()
if len(parts) == 2:
filename, status = parts
if status == "OK":
name_without_ext = filename.rsplit(".", 1)[0]
print(name_without_ext[::-1])
# Задача 9
n = int(input())
matrix = [list(map(int, input().split())) for _ in range(n)]
rotated = [[matrix[n - 1 - j][i] for j in range(n)] for i in range(n)]
for row in rotated:
print(*row)
# Задача 10
valid_letters = set("АВЕКМНОРСТУХ")
with open("cars.txt", "r", encoding="utf-8") as f:
words = f.read().split()
for word in words:
w = word.upper()
if len(w) == 6:
if w[0] in valid_letters and w[1:4].isdigit() and w[4] in valid_letters and w[5] in valid_letters:
print(w)
# Задача 11
n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]
r1, r2, c1, c2 = map(int, input().split())
submatrix = [row[c1:c2 + 1] for row in matrix[r1:r2 + 1]]
for row in submatrix:
print(*row)
# Задача 12
s = input()
max_sub = ""
max_len = 0
i = 0
while i < len(s):
j = i
while j < len(s) and s[j] == s[i]:
j += 1
length = j - i
if length > max_len:
max_len = length
max_sub = s[i:j]
i = j
print(max_sub, max_len)
# Задача 13
n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]
transposed = [[matrix[i][j] for i in range(n)] for j in range(m)]
for row in transposed:
print(*row)
# Задача 14
with open("emails.txt", "r", encoding="utf-8") as f:
for line in f:
email = line.strip()
if "@" in email:
user, domain = email.split("@", 1)
if len(user) <= 3:
masked_user = user[0] + "***"
else:
masked_user = user[:2] + "***" + user[-1]
print(f"{masked_user}@{domain}")
# Задача 15
n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]
for i in range(n):
for j in range(m):
val = matrix[i][j]
is_min = True
for di, dj in [(-1, 0), (1, 0), (0, -1), (0, 1)]:
ni, nj = i + di, j + dj
if 0 <= ni < n and 0 <= nj < m:
if matrix[ni][nj] <= val:
is_min = False
break
if is_min:
print(i, j)
# Задача 16
k, n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]
shift = k % m
for row in matrix:
shifted_row = row[-shift:] + row[:-shift] if shift != 0 else row
print(*shifted_row)
# Задача 17
s = input()
palindromes = []
for i in range(len(s)):
for j in range(i + 4, len(s) + 1):
sub = s[i:j]
if sub == sub[::-1]:
palindromes.append(sub)
print(*palindromes)
# Задача 18
n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]
total = 0
for i in range(n):
for j in range(m):
if i == 0 or i == n - 1 or j == 0 or j == m - 1:
total += matrix[i][j]
print(total)
# Задача 19
n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]
max_sum = float('-inf')
best_coord = (0, 0)
for i in range(n - 1):
for j in range(m - 1):
s = matrix[i][j] + matrix[i][j + 1] + matrix[i + 1][j] + matrix[i + 1][j + 1]
if s > max_sum:
max_sum = s
best_coord = (i, j)
print(max_sum)
print(*best_coord)
# Задача 20*
n = int(input())
matrix = [[0] * n for _ in range(n)]
top, bottom, left, right = 0, n - 1, 0, n - 1
val = 1
while top <= bottom and left <= right:
for j in range(left, right + 1):
matrix[top][j] = val
val += 1
top += 1
for i in range(top, bottom + 1):
matrix[i][right] = val
val += 1
right -= 1
if top <= bottom:
for j in range(right, left - 1, -1):
matrix[bottom][j] = val
val += 1
bottom -= 1
if left <= right:
for i in range(bottom, top - 1, -1):
matrix[i][left] = val
val += 1
left += 1
for row in matrix:
print(*row)
# Задача 21*
n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]
dp = [[0] * m for _ in range(n)]
max_size = 0
for i in range(n):
for j in range(m):
if matrix[i][j] == 1:
if i == 0 or j == 0:
dp[i][j] = 1
else:
dp[i][j] = min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]) + 1
if dp[i][j] > max_size:
max_size = dp[i][j]
print(max_size)
# Задача 22*
s = input()
if not s:
print("")
else:
res = []
count = 1
for i in range(1, len(s)):
if s[i] == s[i - 1]:
count += 1
else:
res.append(f"{s[i - 1]}{count}")
count = 1
res.append(f"{s[-1]}{count}")
print("".join(res))
# Задача 23*
n, m = map(int, input().split())
grid = [list(input().strip()) for _ in range(n)]
res = [[0] * m for _ in range(n)]
for i in range(n):
for j in range(m):
if grid[i][j] == '*':
res[i][j] = '*'
else:
mines = 0
for di in (-1, 0, 1):
for dj in (-1, 0, 1):
if di == 0 and dj == 0:
continue
ni, nj = i + di, j + dj
if 0 <= ni < n and 0 <= nj < m and grid[ni][nj] == '*':
mines += 1
res[i][j] = str(mines)
for row in res:
print("".join(row))
# Задача 24*
s1 = input()
s2 = input()
m, n = len(s1), len(s2)
dp = [[0] * (n + 1) for _ in range(m + 1)]
max_len = 0
end_pos = 0
for i in range(1, m + 1):
for j in range(1, n + 1):
if s1[i - 1] == s2[j - 1]:
dp[i][j] = dp[i - 1][j - 1] + 1
if dp[i][j] > max_len:
max_len = dp[i][j]
end_pos = i
print(s1[end_pos - max_len:end_pos])
# Задача 25*
n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]
coords = []
top, bottom, left, right = 0, n - 1, 0, m - 1
while top <= bottom and left <= right:
for j in range(left, right + 1):
coords.append((top, j))
top += 1
for i in range(top, bottom + 1):
coords.append((i, right))
right -= 1
if top <= bottom:
for j in range(right, left - 1, -1):
coords.append((bottom, j))
bottom -= 1
if left <= right:
for i in range(bottom, top - 1, -1):
coords.append((i, left))
left += 1
values = [matrix[r][c] for r, c in coords]
if values:
shifted_values = [values[-1]] + values[:-1]
res = [[0] * m for _ in range(n)]
for (r, c), val in zip(coords, shifted_values):
res[r][c] = val
for row in res:
print(*row)
# Задача 26*
words = input().split()
groups = {}
for word in words:
key = "".join(sorted(word))
groups.setdefault(key, []).append(word)
for group in groups.values():
print(*group)
# Задача 28*
n, m = map(int, input().split())
matrix = [[0] * m for _ in range(n)]
val = 1
for d in range(n + m - 1):
diag = []
r = 0 if d < m else d - m + 1
c = d if d < m else m - 1
while r < n and c >= 0:
diag.append((r, c))
r += 1
c -= 1
if d % 2 == 0:
diag.reverse()
for r, c in diag:
matrix[r][c] = val
val += 1
for row in matrix:
print(*row)
# Задача 29*
n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]
visited = [[False] * m for _ in range(n)]
max_area = 0
for i in range(n):
for j in range(m):
if matrix[i][j] == 1 and not visited[i][j]:
area = 0
stack = [(i, j)]
visited[i][j] = True
while stack:
r, c = stack.pop()
area += 1
for dr, dc in [(-1, 0), (1, 0), (0, -1), (0, 1)]:
nr, nc = r + dr, c + dc
if 0 <= nr < n and 0 <= nc < m and matrix[nr][nc] == 1 and not visited[nr][nc]:
visited[nr][nc] = True
stack.append((nr, nc))
if area > max_area:
max_area = area
print(max_area)
# Задача 30*
n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]
res = [[0] * m for _ in range(n)]
for i in range(n):
for j in range(m):
neighbors = []
for dr in (-1, 0, 1):
for dc in (-1, 0, 1):
nr, nc = i + dr, j + dc
if 0 <= nr < n and 0 <= nc < m:
neighbors.append(matrix[nr][nc])
res[i][j] = round(sum(neighbors) / len(neighbors))
for row in res:
print(*row)