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

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

N натуральных чисел. Рассматриваются все пары различных элементов

Условие

На вход программы поступает последовательность из N натуральных чисел. Рассматриваются все пары различных элементов последовательности, у которых различные остатки от деления на d = 160 и хотя бы одно из чисел делится на p = 7. Среди таких пар необходимо найти и вывести пару с максимальной суммой элементов. Входные данные.

Файл AФайл BВ первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 1000). В каждой из последующих N строк записано одно натуральное число, не превышающее 10 000. В качестве результата программа должна напечатать элементы искомой пары. Если среди найденных пар максимальную сумму имеют несколько, то можно напечатать любую из них. Если таких пар нет, то вывести два нуля.

Пример организации исходных данных во входном файле:41687320328Пример выходных данных для приведённого выше примера входных данных:168 320 В ответе укажите четыре числа: сначала значение искомой пары для файла А (два числа через пробел по возрастанию), затем для файла B (два числа через пробел по возрастанию). Ответ:

Ответ

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

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

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

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

    Решение. Отметим:m71 — самое большое число, кратное 7;m72 — второе по величине число, кратное 7, и остаток от деления на 160 не равен остатку от деления m71 на 160;m1 — самое большое число, не кратное 7;m2 — второе по величине число, не кратное 7, и остаток от деления на 160 не равен остатку от деления m71 на

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

  1. Приведём решение задачи на языке Pascal.var…

  2. and (x mod 160 = m71 mod…

  3. and (x > m71) then m71 := x else if (x mod 7 =…

  4. and (x mod 160 <> m71 mod…

  5. and (x > m71) then begin m72 := m71; m71 :=…

  6. and (x mod 160 <> m71 mod…

  7. and (x > m72) then m72 := x else if (x mod…

  8. and (x mod 160 = m1 mod…

  9. and (x > m1) then m1 := x else if (x mod 7 <>…

  10. and (x mod 160 <> m1 mod…

  11. and (x > m1) then begin m2 := m1; m1 := x…

  12. and (x mod 160 <> m1 mod…

  13. and (x > m2) then m2 := x; end;if (m71 =…

  14. then writeln(0, ' ', 0)else if (m72 =…

  15. and (m71 mod 160 = m1 mod…

  16. then writeln(0, ' ', 0)elsebegin if…

  17. then begin max1 := m71; max2 := m1; end; if…

  18. then begin max1 := m71; max2 := m2; end; if…

  19. <> (m1 mod 160))) then begin max1 := m72…

  20. then begin s := x + a[k][r]; x1 := x; end…

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

  22. and (x % 160 != m71 %…

  23. and (x > m72): m72 = x elif x % 7 != 0 and x…

  24. and (m71 % 160 == m1 % 160): print(0, 0)else…

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

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

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