Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
3 / 2 / 1
Регистрация: 07.06.2019
Сообщений: 24

Задача ЕГЭ 27, проверка

23.06.2021, 17:33. Показов 2690. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется набор данных, состоящих из N троек натуральных чисел. Составьте сумму из N чисел, выбрав из каждой тройки ровно одно число так, что бы сумма не делилась на k = 101 и была максимально возможной. Гарантируется, что искомую сумму получить можно.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке количество троек N (1<=1<=1000000). Каждая из следующих строк содержит 3 натуральных числа, не превышающих 10000.

Наше решение:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
f = open('27_B.txt', 'r')
n = int(f.readline())
lMax = [] # список максимальных значений в строке
lMin = [] # список остальных 2-х значений (вложенный)
lr = [] # список разности между масимальным значением (lMax) и наибольшим из lMin
 
for i in range(n):
    ln = list(map(int, f.readline().split()))
    mX = max(ln)
    ln.remove(mX)
    lMax.append(mX) 
    lMin.append(ln) # берем макмимум, удаляем из строки и формируем списки
    if max(lMin[i]) == mX:
        razn = mX - min(lMin[i]) # второе по величине число может быть равно максимальному
    else:
        razn = mX - max(lMin[i]) # как впрочем и третье, но ноль отсекаем далее
    if razn % 101 == 0:
        razn = 10000 # сразу убираем нули и значения делящиеся на 101, записав максимольное значение
    lr.append(razn)
 
f.close    
s = sum(lMax)
 
if s % 101 == 0: # если сумма максимумов делится на 101
    rMin = min(lr) # берем минимум из списка разностей, что бы как можно меньше 
    ind = lr.index(rMin) # уменьшилась сумма (звиняйте за тафтологию)
    # и подставляем из списка меньших значений первое или второе,
    # если первое равно максимуму
    if max(lMin[i]) == lMax[ind]: 
        lMax[ind] = min(lMin[i])
    else:
        lMax[ind] = max(lMin[i])
    #lMax[ind] -= rMin - либо так
print(sum(lMax))
Выдает:
7567619645

Но в ответе дают:
7567616720

Есть ли ошибки в нашем коде? Потому что нашел даже строку эту в файле, где меняет значение. Все вроде верно.
Вложения
Тип файла: txt 27_A.txt (1.4 Кб, 0 просмотров)
Тип файла: zip 27_B.zip (6.39 Мб, 3 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.06.2021, 17:33
Ответы с готовыми решениями:

Определть количество пар элементов последовательности, у которых сумма элементов кратна 7
В файле содержится последовательность из 10 000 целых положительных чисел. Каждое число не превышает 10 000. Определите и запишите в ответе...

Задача из ЕГЭ
Здравствуйте, курсовая горит, помогите пожалуйста 0_0 На городской олимпиаде по информатике участникам было предложено выполнить 3...

Задача из ЕГЭ
Решал задачи из ЕГЭ , общий типаж умею программировать, но тут встретилась задача, где нужно было из конечного числа получить...

2
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
23.06.2021, 19:46
ch_pp,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
with open("27_B.txt") as f:
    n = int(f.readline())
    s = 0
    min_diff = 10001
    for i in range(n):
        x = sorted(list(map(int, f.readline().split())))
        s = s+x[2]
        diff1 = x[2] - x[1]
        diff2 = x[2] - x[0]
        min_diff = min(min_diff, (diff1 if diff1%101 else 10001), (diff2 if diff2%101 else 10001))
    if s % 101 != 0:
        print(s)
    else:
        print(s - min_diff) # 7567616720
Добавлено через 57 секунд
Не могу сделать 27 задание ЕГЭ по информатике
0
3 / 2 / 1
Регистрация: 07.06.2019
Сообщений: 24
23.06.2021, 20:47  [ТС]
Да, спасибо. Так красивее.
А у нас ошибка при копировании индексы не поменяли (i на ind):
Python
1
2
3
4
    if max(lMin[i]) == lMax[ind]: 
        lMax[ind] = min(lMin[i])
    else:
        lMax[ind] = max(lMin[i])
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.06.2021, 20:47
Помогаю со студенческими работами здесь

17 задача ЕГЭ
Пишет max() arg is an empty sequence Помогите добрые люди. Сам код:

Задача 25 и ЕГЭ
Помогите решить пожалуйста! На сайте есть граничение на выполнение кода по времени(500мс) вроде Пусть M – разность (по модулю)...

Системный администратор раз в неделю создаёт архив пользовательских файлов
Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска, куда он помещает архив, может быть меньше,...

21 задача, ЕГЭ, 2 кучи
Помогите сделать проверку на то, что Ваня не выигрывает первым ходом 100% (четный ход - Ваня, нечетный - Петя. 0 - стартовая позиция)....

задача 15 из егэ с ДЕЛом
Задача: Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru