Присоединиться

11 класс·средний уровень

Набор данных состоит из пар натуральных чисел. Необходимо выбрать из

Условие

Набор данных состоит из пар натуральных чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел делилась на 3 и при этом была максимально возможной.

Входные данные.

Файл AФайл BПервая строка входного файла содержит число N — общее количество пар в наборе. Каждая из следующих N строк содержит два натуральных числа, не превышающих 10 000.Пример организации исходных данных во входном файле:61 35 106 95 43 31 1Для указанных данных искомая сумма равна 30.В ответе укажите два числа: сначала значение искомой суммы для файла А, затем для файла B. Предупреждение: для обработки файла B не следует использовать переборный алгоритм, вычисляющий сумму для всех возможных вариантов, поскольку написанная по такому алгоритму программа будет выполняться слишком долго. Ответ:

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Последовательно считывая данные из файла, будем прибавлять к сумме максимальное число в паре. Если сумма чисел делится на 3 с остатком 1, то, чтобы она делилась на 3, из этой суммы необходимо вычесть либо разницу между числами в паре, делящуюся на 3 с остатком 1, либо два раза вычесть из этой суммы разницу между числами в паре, делящуюся на 3 с остатком

Осталось ещё 9 шагов

  1. Также заметим, что если сумма чисел делится…

  2. Значит, необходимо искать два числа…

  3. and (abs(x-y) < dif1) then begin dif2 :=…

  4. and (abs(x-y) < dif2) then dif2 := abs(x-y)…

  5. and (abs(x-y) < dif3) then begin dif4 :=…

  6. and (abs(x-y) < dif4) then dif4 := abs(x-y)…

  7. then if ((sum - dif1) > (sum - dif3 - dif4))…

  8. then if ((sum - dif3) > (sum - dif1 - dif2))…

  9. Примечание. Путь к файлу необходимо указать…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Программирование»