k = 16
n = int(input())
msgs = [0]*k
for i in range(n):
x = int(input())
msgs[x-1] += 1
pars = list(range(1, k+1))
for i in range(k-1):
for j in range(i, k):
if msgs[j] > msgs[i]:
msgs[i], msgs[j] = msgs[j], msgs[i]
pars[i], pars[j] = pars[j], pars[i]
if msgs[i] > 0:
print(pars[i], msgs[i])
N = int(input())
x_max = 0
y_max = 0
for i in range(N):
x, y = map(int, input().split())
if x == y and abs(x) > x_max:
x_max = abs(x)
if x == -y and abs(x) > y_max:
y_max = abs(x)
max_square = (x_max * y_max)
if max_square == 0:
print('Треугольник не существует')
else:
print(max_square)
N, t = int(input()), int(input())
a = []
b = []
for i in range(N):
ai, bi = map(int, input().split())
a.append(ai)
b.append(bi)
br = 0
for j in range(N):
br += b[j]
ar = 0
res = br + t
for i in range(N):
br -= b[i]
ar += a[i]
if ar + br + t < res:
res = ar + br + t
print(res)
Оптимальное решение 27 #08
n = int(input())
road = int(input())
a = 0
b = road
for i in range(n):
ai, bi = list(map(int, input().split()))
a += ai
b = min(b+bi, a+road)
print(b)
N = int(input())
a = [0]*100
for i in range(N):
d, k = map(int, input().split())
a[k % d] += 1
if a[0] = N:
print(0)
else:
res = 1
for i in range(2, 100):
if a[i] >= a[res]:
res = i print(res)
max_7 = 0
sec_max = 0
x = int(input())
count=0
while x != 0:
count += 1
if x % 7 == 0 and x % 49 != 0 and x > max_7:
max_7 = x
elif x % 7 != 0 and sec_max < x:
sec_max = x
x = int(input())
control = int(input())
result = sec_max*max_7
if result == 0:
result = 1
print(f'Введено чисел: {count}')
print(f'Контрольное значение: {control}')
print(f'Вычисленное значение: {result}')
if result == control:
print('Значения совпали')
else:
print('Значения не совпали')
Набор 1:
n = 3
c = [0.1, 0.25, 0.6]
Вывод: "3"
------------
Набор 2:
n = 1
c = [1]
Вывод: "1"
Оптимальное решение 27 #05
N = int(input())
printed = False
max = 0.0
maxIndex = 0
for i in range(1, N + 1):
a = float(input())
if a > 1.0:
print(i, end = "")
printed = True
if a > max:
max = a
maxIndex = i
if not printed:
print(maxIndex)
N = int(input())
a = [0] * 4
for i in range(N):
x, y = map(int, input().split())
if x > 0 and y > 0:
a[0] += 1
elif x < 0 and y > 0:
a[1] += 1
elif x < 0 and y < 0:
a[2] += 1
elif x > 0 and y < 0:
a[3] += 1
m = 0
for i in range(4):
if a[i] > m:
m = a[i]
chet_max = i+1
print(f'K = {chet_max}')
Разбиваем все точки на 4 группы (по четвертям 1, 2, 3, 4). Точки на осях просто не учитываются. А дальше выражаем ответ через эти 4 значения.
def one_to_n(n):
n -= 1
res = n * (n + 1) // 2
return res
s = 0
if a1 + a2 > 2:
s += one_to_n(a1) * a2
s += one_to_n(a2) * a1
if a3 + a4 > 2:
s += one_to_n(a3) * a4
s += one_to_n(a4) * a3
print(s)
Набор 1:
n = 2
c = [8, 8]
Вывод: "0 0"
------------
Набор 2:
n = 9
c = [9, 9, 9, 9, 9, 9, 9, 9, 8]
Вывод: "8 71"
Идея оптимального решения 27 #02
Складываем все числа — сумма либо кратная 8, либо нет. Если не кратная, то нужно вычесть из суммы минимальное из введенных чисел (восьмерка не в счет). Для теста: 8х9 ; 9х8,8
Набор 1:
n = 2
c = [5, 17]
Вывод: "5 17" или "17 5"
------------
Набор 2:
n = 2
c = [17, 51]
Вывод: "17 51" или "51 17"
------------
Набор 3:
n = 2
c = [51, 17]
Вывод: "17 51" или "51 17"
------------
Набор 4:
n = 3
c = [85, 51, 17]
Вывод: "51 85" или "85 51"
Идея оптимального решения 27 #01
Пусть a1, b1 = оба нечетные, где a1 — макс неч кр 17. Возможны два варианта: 1. a1 — и есть макс неч вообще, тогда b1 — должно быть второе по величине неч число (кратность b1 не важна). 2. a1 — не явл макс неч в целом, то b1 — макс неч. (оно не будет кратно 17). ——————————————— Пусть a2, b2 = оба четные, где a2 — макс четн кр 17. Возможны два варианта: 1. a2 — и есть макс четн вообще, тогда b2 — второе по величине чет число (кратность b2 не важна). 2. a2 — не явл макс четн в целом, то b2 — макс четн (оно не будет кратно 17).
Остается только сравнить суммы.
Оптимальное решение 27 #01
max_odd_17 = 0
sec_max_odd = 0
max_even_17 = 0
sec_max_even = 0
N = int(input())
for i in range(N):
numb = int(input())
if numb % 2 == 0:
if numb % 17 == 0 and numb > max_even_17:
if sec_max_even < max_even_17:
sec_max_even = max_even_17
max_even_17 = numb
else:
sec_max_even = max(numb, sec_max_even)
else:
if numb % 17 == 0 and numb > max_odd_17:
if sec_max_odd < max_odd_17:
sec_max_odd = max_odd_17
max_odd_17 = numb
else:
sec_max_odd = max(numb, sec_max_odd)
if max_odd_17 > 0 and max_even_17 > 0 and max_odd_17+sec_max_odd > max_even_17+sec_max_even:
print(max_odd_17, sec_max_odd)
elif max_even_17 > 0 and sec_max_even > 0:
print(max_even_17, sec_max_even)
elif max_odd_17 > 0 and sec_max_odd > 0:
print(max_odd_17, sec_max_odd)
else:
print(0, 0)