Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста написать код по информатике

Алиса Чудесная Ученик (90), открыт 3 недели назад
Оля очень любит читать книги, поэтому она невероятно обрадовалась, когда узнала про новую акцию в книжном магазине «Целая
часть». В магазине продается п книг, ¿-я из которых имеет тематику, обозначенную числом а,. Акция заключается в следующем:
администрация магазина назовет число х, после чего Оля сможет прийти и получить некоторые книги бесплатно. По условиям акции, выбранные Олей книги должны быть достаточно однообразными, то есть у них должно быть одинаковое значение величины b - [2 (ар , нацело деленное на х). Олю интересует, какое наибольшее количество книг она сможет получить бесплатно.
Так как число х не известно заранее, Оля попросит вас вычислить ответ для у возможных вариантов.
2 ответа
Neo Мыслитель (8488) 3 недели назад
def count_books(p, a, x):
"""
Функция подсчитывает максимальное количество книг, которые Оля может получить бесплатно.

Args:
p: Количество книг в магазине.
a: Список тематик книг.
x: Число, названное администрацией.

Returns:
Максимальное количество книг, которые Оля может получить бесплатно.
"""

book_counts = {}
for i in range(p):
b = a[i] - 2 * (a[i] // x)
if b in book_counts:
book_counts[b] += 1
else:
book_counts[b] = 1

return max(book_counts.values())

# Ввод данных
p = int(input("Введите количество книг: "))
a = list(map(int, input("Введите тематики книг через пробел: ").split()))
u = int(input("Введите количество вариантов числа x: "))

# Подсчет максимального количества книг для каждого варианта x
for i in range(u):
x = int(input("Введите вариант числа x: "))
max_books = count_books(p, a, x)
print("Максимальное количество книг для x =", x, ":", max_books)
asdvasrУченик (154) 3 недели назад
даже работающий код написать не смог
ты его хоть тестировал
Илья Мурашов, сам ты ничего написать не смог...
asdvasr Ученик (154) 3 недели назад
from collections import Counter
n=int(input())
a1=list(map(int,input().split()))
q=int(input())
x1=list(map(int,input().split()))
for i in range(q):
cc=[]
for j in range(n):
cc.append(a1[j]//x1[i])
cc.sort()
#print(cc)
u=0
mas=[]
while u<=len(cc)-1:
mas.append(cc.count(cc[u]))
u+=cc.count(cc[u])
print(max(mas))
Алиса ЧудеснаяУченик (90) 3 недели назад
спасибо, но пишет что неполное решениеЮ скорее всего больше чем 1 секунда выполняется код
Похожие вопросы