Статья Автор: Александр Олегович Савинов

О

Задание 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
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать