Задание 1 вариант 1
n = int(input())
a = [] # Вводим матрицу
for i in range(n):
a.append(list(map(int, input().split())))
# Меняем диагонали
for i in range(n):
a[i][i], a[n-i-1][i] = a[n-i-1][i], a[i][i]
for i in range(n):
print(*a[i])
# Задание 1 вариант 2
n = int(input())
m = int(input())
a = [] # Вводим матрицу
for i in range(n):
a.append(list(map(int, input().split())))
# Ищем два максимума
mx0 = mx1 = -10 ** 10
j0 = j1 = i0 = i1 = 0
for i in range(n):
for j in range(m):
if a[i][j] > mx0:
mx1, i1, j1 = mx0, i0, j0
mx0, i0, j0 = a[i][j], i, j
elif a[i][j] > mx1:
mx1, i1, j1 = a[i][j], i, j
# Меняем местами элементы
a[i0][j0], a[i1][j1] = a[i1][j1], a[i0][j0]
for i in range(n):
print(*a[i])
# Задание 2 вариант 1
# Программа должна использовать рекурсию, т.к. циклы запрещены
def rec(s, n):
if n < 1:
print(s)
return
rec(s + '0', n - 1)
rec(s + '1', n - 1)
rec(s + '2', n - 1)
n = int(input())
rec('', n)
# Задание 2 вариант 2
# Программа должна использовать рекурсию, т.к. циклы запрещены
def rec(s, n):
if n < 1:
print(s)
return
if s == '' or s[-1] != 'K':
rec(s + 'K', n - 1)
if s == '' or s[-1] != 'L':
rec(s + 'L', n - 1)
if s == '' or s[-1] != 'M
rec(s + 'M', n - 1)
if s == '' or s[-1] != 'N':
rec(s + 'N', n - 1)
n = int(input())
rec('', n)
# Задание 3 вариант 1
# Программа должна водить данные из файла. Если в файлe есть данные на
кириллице,
# нужно использовать encoding
file = open('name.txt', encoding = 'utf-8')
s = file.read()
file.close()
counter = [0] * 1200
alf = 'ячсмитьбюэждлорпавыфйцукенгшщзхъё'
# используем список счетчиков. создаем список повторов каждой буквы в
нижнем регистре
for i in range(len(s)):
if s[i-1].lower() == 'т' and s[i].lower() in alf:
counter[ord(s[i].lower())] += 1
m = max(counter)
for i in range(1200):
if counter[i] == m:
print(chr(i))
break
# Задание 3 вариант 2
# Программа должна вводить данные из файла. Если в файлe есть данные
на кириллице,
# нужно использовать encoding
file = open('name.txt', encoding = 'utf-8')
s = file.read()
# можно использовать словарь
d = dict()
alf_ = '1234567890)(/*-+,.;:!?%$#@&^/{}[]№' #не буквы
for c in s:
for symbol in alf_:
c = c.replace(symbol, ' ') # все, кроме букв, меняем на пробел
while ' ' in c:
c = c.replace(' ', ' ') # убираем двойные пробелы
s = s.lower().split() # разбиваем на списoк слов
for word in s:
# можно исп-ть функцию get для работы со словарем
d[word] = d.get(word, 0) + 1
# но можно не исп-ть get. другой вариант решения:
# if word in d:
# d[word] += 1
# else:
# d[word] = 1
# идем по отсортированному словарю по парам ключ-значение и выводим
for key, value in sorted(d.items()):
if value == 2:
print(key)
# или идем идем по отсортированному словарю по ключам и выводим
for key in sorted(d.keys()):
if d[key] == 2:
print(key)
# Задание 4 вариант 1
# Программа должна использовать алгоритм бин.поиска, иначе не зайдет
по времени
def bin_search(arr, x, n):
r = n
l = -1
while r - l > 1:
m = (r + l) // 2
if arr[m] >= x:
r = m
else:
l = m
return r
n = int(input())
a = list(map(int, input().split()))
x = int(input())
a.sort()
if x < a[0]:
print(a[0])
elif x > a[-1]:
print(a[-1])
else:
ans = bin_search(a, x, n)
if a[ans] - x < x - a[ans-1]:
print(a[ans])
else:
print(a[ans-1])
# Задание 4 вариант 2
# Программа должна использовать алгоритм бин.поиска, иначе не зайдет
по времени
def bin_search(arr, x, n):
r = n
l = -1
while r - l > 1:
m = (r + l) // 2
if arr[m] >= x:
r = m
else:
l = m
return r
n, k = map(int, input().split())
arr1 = list(map(int, input().split()))
arr2 = list(map(int, input().split()))
for number in arr2:
if number < arr1[0] or number > arr1[-1]:
print('NO')
else:
if bin_search(a, x, n):
print('YES')
else:
print('NO')
# Задание 5 вариант 1