Электронная библиотека » Евгений Сидоркин » » онлайн чтение - страница 7


  • Текст добавлен: 2 февраля 2023, 00:06


Автор книги: Евгений Сидоркин


Жанр: Справочники


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 7 (всего у книги 8 страниц)

Шрифт:
- 100% +
Задача №25. Алгоритм обработки массивов

В задачах данного типа используются следующие алгоритмы, которые решаются с помощью языка программирования:

– Обмен местами элементов массива:

Производится аналогично обмену значениями переменных. Если нужно поменять местами n-й и k-й элементы массива, то n-й элемент сохраняется в буферную переменную, затем значение k-го элемента копируется в n-й, а значение буферной переменной копируется в k-й элемент. Или же в языке программирования Питон можно обойтись без третьей буферной переменной, например, a, b = b, a – таким образом, переменные поменялись местами.

– Поиск максимального (минимального) элемента массива:

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

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

– Перебор элементов массива:

Для одномерного массива запускается цикл по всем его элементам. Для двумерного массива – цикл в цикле по строкам и столбцам. Для n-мерного массива – n вложенных циклов.

– Вычисление суммы элементов массива:

Сначала переменной, выделенной под хранение суммы, присваивается значение 0. Затем, при последовательном переборе элементов массива, значение суммы складывается со значением текущего элемента массива и становится новым значением суммы.

– Вычисление произведения элементов массива:

Сначала переменной, выделенной под хранение произведения, присваивается значение 1. Затем, при последовательном переборе элементов массива, значение произведения умножается на значение текущего элемента массива и становится новым значением произведения.

– Вычисление среднего значения:

При вычислении среднего значения выполняется вычисление суммы, а затем сумма делится на количество элементов массива.


Пример 25.1

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [174457; 174505], числа, имеющие ровно два различных натуральных делителя, не считая единицы и самого числа. Для каждого найденного числа запишите эти два делителя в таблицу на экране с новой строки в порядке возрастания произведения этих двух делителей. Делители в строке таблицы также должны следовать в порядке возрастания.

Решение:

Решим задачу переборным алгоритмом.

 
for n in range (174457, 174505+1):
    divs = []
    for d in range (1, n + 1):
        if n % d == 0 and d != 1 and d != n: # определение делителя, кроме единицы и самого себя
            divs.append(d) # добавление делителя в список
    if len(divs) == 2: # если у числа 2 делителя, то выводим
        print (divs)
Ответ:
[3, 58153]
[7, 24923]
[59, 2957]
[13, 13421]
[149, 1171]
[5, 34897]
[211, 827]
[2, 87251]
 
 
Пример 25.2
 

Назовём нетривиальным делителем натурального числа его делитель, не равный единице и самому числу. Например, у числа 6 есть два нетривиальных делителя: 2 и 3. Найдите все натуральные числа, принадлежащие отрезку [123456789; 223456789] и имеющие ровно три нетривиальных делителя. Для каждого найденного числа запишите в ответе его наибольший нетривиальный делитель. Ответы расположите в порядке возрастания.

Решение:

Эта задача более сложная, т.к. если мы будем использовать обычный переборный алгоритм, то потребуется больше часа, что в рамках ограниченного экзамена очень долго. Поэтому придумаем способ побыстрее. Будем использовать функцию int (), которая возвращает целое число в десятичной системе счисления. Давайте рассмотрим на примере числа 36. Нам не нужно проверять все делители числа, а достаточно будет проверить делители до корня квадратного из 36. Почему, как вы думаете? Делители, которые идут до 6 – это 1,2,3,4,6. А остальные 5 получаются путем домножения 1*36=36, 2*18=36, 3*12=36, 4*9=36. Поэтому достаточно найти только первые 5. По условию задачи нам требуется найти 3 делителя – т.е. нечетное число. Число 36 имеет тоже нечетное число делителей. Можем заключить, что любое число, из которого извлекается корень квадратный, будет иметь нечетное количество делителей. По сути нам необходимо проверить, чтобы из числа извлекался корень квадратный. Как это сделать в Phyton? Сделать проверку условия if int (sqrt) == sqrt, где sqrt = i ** 0.5, например, sqrt=35**0.5=5.9, то if int (5.9) == 5.9, то if 5 неравно 5.9 – значит, мы число 35 не берем, а перебираем только корни квадратные sqrt. Как определить максимальный делитель числа 8? maxd = 8//2=4

k – количество делителей, d – делители, maxd – максимальный делитель.

 
k – количество делителей, d – делители, maxd – максимальный делитель.
k = 0
for i in range (123456789, 223456789+1):
    k = 0
    d = 2
    maxd = 0
    sqrt = i ** 0.5
    if int (sqrt) == sqrt: # определяем те числа, у которых извлекается корень квадратный
        while d < sqrt:
            if i % d == 0:
                if maxd ==0:#нахождение максимального делителя
                    maxd = i // d
                k += 2 # т.к. проверяем до корня квадратного, поэтому +2
            d +=1
        if d*d == i: #  6*6=36 Только у полных квадратов есть два одинаковых делителя, поэтому добавляем еще один делитель
            k +=1
        if k ==3: # если число имеет 3 делителя, то выводим результат
            print (i,k,maxd)
Ответ:
131079601 3 1225043
141158161 3 1295029
163047361 3 1442897
 

Задачи для самостоятельного решения

Задача 25.3

Найдите все натуральные числа, N, принадлежащие отрезку [200 000 000; 400 000 000], которые можно представить в виде N = 2m · 3n, где m – чётное число, n – нечётное число. В ответе запишите все найденные числа в порядке возрастания.


Задача 25.4

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [258274; 258297], числа, имеющие ровно 4 различных делителя. Выведите эти четыре делителя для каждого найденного числа в порядке возрастания.

Задача №26. Сортировки

Задачи данного типа можно решать программированием, а также через Excel. В них используется сортировка. Например, есть упорядоченный список a= [1, -45,3,2,100, -4]. Метод sort, который меняет состояние списка и расставляет элементы по возрастанию: a.sort (). Получим измененный список: [-45, -4, 1, 2, 3, 100]. Бывает, что необходимо сделать список по убыванию, то пишем a.sort (reverse=True).


Пример 26.1

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

Известно, какой объём занимает файл каждого пользователя.

По заданной информации об объёме файлов пользователей и свободном объёме на архивном диске определите максимальное число пользователей, чьи файлы можно сохранить в архиве, а также максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.

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

В первой строке входного файла находятся два числа: S – размер свободного места на диске (натуральное число, не превышающее 10 000) и N – количество пользователей (натуральное число, не превышающее 1000). В следующих N строках находятся значения объёмов файлов каждого пользователя (все числа натуральные, не превышающие 100), каждое в отдельной строке.

Запишите в ответе два числа: сначала наибольшее число пользователей, чьи файлы могут быть помещены в архив, затем максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.

Пример входного файла:

100 4

80

30

50

40

При таких исходных данных можно сохранить файлы максимум двух пользователей. Возможные объёмы этих двух файлов: 30 и 40, 30 и 50 или 40 и 50. Наибольший объём файла из перечисленных пар – 50, поэтому ответ для приведённого примера:

2 50

Решение:

Cначала решим данную задачу в Excel. Решение приведено по ссылке: https://yadi.sk/i/AQlIn1_UOnh3sg. На экзамене обычно данные находятся в текстовом файле, с расширением txt. Мы выделяем все данные, копируем их и вставляем в Excel. Далее первую строчку, в которой содержатся число пользователей и максимальный размер, вырезаем и вставляем в ячейки E1 и E2 – соответственно. После сортируем столбец А по возрастанию, предварительно выделив его и нажав на кнопку «Сортировка и фильтр». Далее выделяем ячейки в столбце А. Какое количество ячеек нужно выделить? Ответ: в максимальном количестве, чтобы сумма их не превысила 8200. Таких ячеек будет =СУММ (A1:A568) =8176. Далее из полученной суммы отнимаем самый последний максимальный элемент С4=C2-A568=8176—29=8174. Для нахождения максимального элемента, который нам нужно добавить, сделаем разность С6=E1-C4=8200—8174=53. Ищем в нашем столбце А – значение 53. Т.к. этого значения в столбце нет, то находим в столбце следующее за значением 53 в меньшую сторону. Это число 50.

Теперь решим данную задачу с помощью языка программирования.

 
f = open ('26.txt')
s , n = map (int, f.readline().split()) # считываем первую строчку  S – размер свободного, n – количество в пользователей
a = []# cписок, в котором храним данные из файла
for i in range (n):
    a.append(int(f.readline())) # обязательно символы преобразовываем в целочисленный тип int
a.sort() # сортировка списка по возрастанию
sum_final = []
for i in range (n):
    if sum(sum_final)+a[i]<s: # складываем всех пользователей, пока не превысим максимальный размер s
        sum_final.append(a[i])
    elif (sum(sum_final) – a[i-1] + a[i+1] < s) and (i >0):# если превысили размер s, то отнимаем последний и прибавляем другой
        del (sum_final [-1]) # удаляем последний
        sum_final.append(a[i])
    else:
        break
print(len(sum_final),sum_final[-1])
 

Ответ: 568 50.


Пример 26.2

Продавец предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:

– на каждый второй товар стоимостью больше 100 рублей предоставляется скидка 30%;

– общая стоимость покупки со скидкой округляется вверх до целого числа рублей;

– порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.

По известной стоимости каждого товара в покупке необходимо определить общую стоимость покупки с учётом скидки и стоимость самого дорогого товара, на который будет предоставлена скидка.

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

Первая строка входного файла содержит число N – общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число – стоимость товара в рублях.

В ответе запишите два целых числа: сначала общую стоимость покупки с учётом скидки, затем стоимость самого дорогого товара, на который будет предоставлена скидка.

Пример входного файла

6

125

100

490

215

144

320

В данном случае товар стоимостью 100 не участвует в определении скидки, остальные товары продавцу выгодно расположить в таком порядке цен: 490, 125, 215, 144, 320. Тогда скидка предоставляется на товары стоимостью 125 и 144. Стоимость этих двух товаров со скидкой составит 188,3 руб., после округления – 189 руб. Общая стоимость покупки составит:

100 +490 +215 +320 +189 = 1314 руб.

Самый дорогой товар, на который будет получена скидка, стоит 144 руб.

В ответе нужно записать числа 1314 и 144.

Решение:

Возьмем исходные товары из примера 6, 125, 100, 490, 215, 144. Выгодно расположить так: 490, 125, 215, 144, чтобы на минимальные товары была скидка в 30%, и скидка будет на товары стоимостью 125 и 144.

Краткий алгоритм:

– Читаем файл построчно;

– Если стоимость товара меньше 100, т.е. если x <=100, то копим эти товары в переменной sum1;

– Заведем массив, в котором будем хранить стоимость товаров больше 100. Далее сортируем массив: a= [125, 144, 215, 320, 490].

Как определить, что надо взять скидку на 125 и 144? Надо len (a) //2, т.е. берем элементы только до половины массива.

 
f = open ('26.txt')
a = []
sum1 = 0 # cумма товаров, стоимость которых меньше 100 р.
maxc = 0 # cамый дорогой товар
n = int (f.readline()) # считываем первую строку, чтобы дальше считывать числа, которые нужны в цикле
for i in f:
    x = int(i)
    if x <= 100:
        sum1 +=x
    else:
        a.append(x)#  если больше либо равно 100, то добавляем в список, чтобы потом скидку посчитать
a.sort()
for i in range (len(a)): # цикл для элементов больше либо равно 100
    if i < len(a) // 2:  #чтобы посчитать скидку на 125  и 144, то берем половину
        sum1 += a[i] * 0.70 #  подсчет скидки в 30%
        maxc = a[i]
    else:
        sum1 +=a[i] # суммирование без скидки
import math # для округления вверх
print(math.ceil(sum1),maxc)
 

Ответ: 1314 144


Задачи для самостоятельного решения

Задача 26.3

В текстовом файле записан набор натуральных чисел, не превышающих 109. (ссылка на файл находится здесь: https://yadi.sk/d/r0GGXHeZdeTtcQ)

Гарантируется, что все числа различны. Необходимо определить, сколько в наборе таких пар чисел, что числа в паре имеют разную чётность, а их сумма тоже присутствует в файле, и чему равна наибольшая из сумм таких пар.

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

Первая строка входного файла содержит целое число N – общее количество чисел в наборе. Каждая из следующих N строк содержит одно число.

В ответе запишите два целых числа: сначала количество пар, затем наибольшую сумму.

Пример входного файла

6

3

8

14

11

22

17

В данном случае есть две подходящие пары: 3 и 8 (сумма 11), 3 и 14 (сумма 17).

В ответе надо записать числа 2 и 17.


Задача 26.4

Магазин предоставляет оптовому покупателю скидку по следующим правилам:

– на каждый второй товар ценой больше 150 рублей предоставляется скидка 20%;

– общая цена покупки со скидкой округляется вверх до целого числа рублей;

– порядок товаров в списке определяет магазин и делает это так, чтобы общая сумма скидки была наименьшей.

Вам необходимо определить общую цену закупки с учётом скидки и цену самого дорогого товара, на который будет предоставлена скидка.

Входные данные. Первая строка входного файла (файл находится по ссылке: https://yadi.sk/d/OUgQN2HSBvJW_w) содержит число N – общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число – цену товара в рублях. В ответе запишите два целых числа: сначала общую цену покупки с учётом скидки, затем цену самого дорогого товара, на который предоставлена скидка.

Пример входного файла

7

225

160

380

95

192

310

60

В данном случае товары с ценой 60 и 95 не участвуют в определении скидки, остальные товары магазину выгодно расположить в таком порядке цен: 380, 160, 225, 192, 310. Скидка предоставляется на товары ценой 160 и 192. Суммарная цена этих двух товаров со скидкой составит 281,6 руб., после округления – 282 руб. Общая цена покупки составит: 60 +95 +282 +380 +225 +310 = 1352 руб. Самый дорогой товар, на который будет получена скидка, стоит 192 руб. В ответе нужно записать числа 1352 и 192.

Задача №27. Создание программ на числовые последовательности

Данную задачу тоже можно решить двумя способами: Excel и средствами программирования. За эту задачу, как и за две предыдущие, вы можете получить 2 первичных балла. По одному баллу за решение файла А и В.


Пример 27.1

Имеется набор данных, состоящий из пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 3 и при этом была максимально возможной. Гарантируется, что искомую сумму получить можно. Программа должна напечатать одно число – максимально возможную сумму, соответствующую условиям задачи.

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

Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 10 000. Пример организации исходных данных во входном файле:

6

1 3

5 12

6 9

5 4

3 3

1 1

Для указанных входных данных значением искомой суммы должно быть число 32.

В ответе укажите два числа: сначала значение искомой суммы для файла А, затем для файла B.

Решение:

Давайте посмотрим, как работает пример, который приведен в условии. Берется максимум из каждой пары: 3+12+9+5+3+1=33. 33 делится на 3, а по условию необходимо, чтобы не делилось и было максимальным. Для этого необходимо найти минимальную разницу между числами. Это будет 5—4=1. Т.е. 33—1=32. Ответом в примере будет 32. По сути задача сводится к поиску минимальной разницы. И еще важный момент: эта минимальная разница должна не делиться на 3.

 
f = open («27-A.txt»)
n = int (f.readline())
sum_final = 0
min_razn = 10001
for i in range (n):
    a, b = map (int, f.readline().split()) # cчитываем по 2 числа в строке и переводим в целочисленный тип
    sum_final += max(a,b) # нахождение максимума в паре и его накопление
    if abs(a-b) < min_razn and abs (a-b)%3 !=0: # поиск минимальной разницы, чтобы она не делилась на 3
        min_razn=abs(a-b) # нахождение минимальной разницы
if sum_final %3 ==0:
    sum_final -=min_razn # от макс. суммы отнимаем эту минимальную разницу
print(sum_final)
 

Ответ к примеру из условия: 32.


Теперь давайте решим эту же задачу в Excel. Файл с решением на файл 27-А содержится здесь: https://yadi.sk/i/i7iIKutwQfvf-g. Открываем текстовый файл 27-А: https://yadi.sk/d/abQRh2jOpuATHQ, выделяем все цифры. Нажимаем «Копировать». Далее открываем Excel, нажимаем «Вставка», далее «Использовать мастер импорта текста», выбираем формат данных «с разделителями», нажимаем кнопку «Далее», ставим флажок «Пробел» и нажимаем «Готово». После чего все данные аккуратно вставятся в 2 столбца. После чего запишем в ячейку D2=МАКС (A2:B2) и протянем ее вниз до ячейки D21. В ячейку запишем E2=МИН (A2:B2) и протянем ее до Е21. После чего просуммируем вводом в ячейку D23=СУММ (D2:D21) =127341. Как проверить, делится ли эта сумма на 3 без остатка? Нужно ввести в ячейку E23=ОСТАТ (D23;3) =0, значит, число делится на 3. А по условию нам необходимо, чтобы не делилось на 3, как это сделать? Из полученной суммы 127341 нужно вычесть минимальную разность, которая не делится на 3. Для этого в столбце «Разница» напишем в ячейке G2=D2-E2 и протянем вниз до G21. Далее в столбце «остаток от деления на 3» запишем в ячейке I2=ОСТАТ (G2;3) =1 и протянем до I21. Осталось только отсортировать по возрастанию, для этого выделяем всю таблицу, кроме первой строки, нажимаем «Сортировка», настраиваем сортировку и выбираем «Сортировать столбец G», сортировка «Значения» и нажимаем «Ок». Посмотрев на столбец G в ячейку G2=214, мы понимаем, что раз остаток от деления на 3 равен 1, то 214 при делении на 3 даёт остаток 1 и значит не делится на 3. 214 является минимальной разницей, а значит в ячейку D2 необходимо вписать минимальное число, а именно D2=5627. Итоговая сумма в результате поменяется на D23=127127, которая не делится нацело на 3.

Ответ: 127127.


Пример 27.2

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности. Необходимо узнать, сколько можно составить пар чисел таких, чтобы их сумма была четна и делилась на 5.

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

Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество чисел N (2 ≤ N ≤ 120000). В каждой из последующих N строк записано целое положительное число, не превышающее 100.

Программа должна вывести в первой строке одно число: количество пар, удовлетворяющих условию задачи.

Пример организации исходных данных во входном файле:

7

2

13

15

4

10

6

6

Для указанных входных данных значением искомой суммы должно быть число 2.

В ответе укажите два числа: сначала значение искомой суммы для файла А, затем для файла B.

Решение:

Файл А решается в «лобовую» простым перебором. Причем первый цикл по I задаем до предпоследнего (n-1), т.к. у последнего элемента спиcка а, будет обработан во втором цикле j. И второй цикл по j начинаем со второго элемента (i+1), т.к. первый элемент был проверен в первом цикле по i.

 
n = int(input())# количество строк в документе
r = 0
a = []
for i in range(n):
    a.append(int(input())) # считываем данные с консоли и добавляем их в список а
for i in range(n-1): # проверка всевозможных пар
    for j in range(i + 1, n):
        if (a[i] + a[j]) % 2 == 0 and (a[i] + a[j]) % 5 == 0:
            r += 1
print(r)
 

Файл В переборным вариантом решается больше часа, что неприемлемо в условиях ограниченного ЕГЭ. Поэтому решим методом остаточных сумм.

В общем виде формулировка метода остаточных сумм выглядит так: если сумма остатков чисел от деления на 10 равна 10, то число четно и делится на 5. Давайте рассмотрим на примере. Есть пара чисел 27 и 3, где 27%10=7 и 3%10=3, тогда сумма остатков, а именно 3+7=10 делится на 5, тогда и 30 делится на 5 без остатка. Число 150 следует рассмотреть отдельно. Например, есть пара чисел 10 и 140, которые в сумме, равной 150, делятся на 5. Остатки от деления на 10 этих чисел 10 и 140 равны нулю, т.е. 0+0=0. Тогда, если 10%10=0 и 140%10=0, то просто увеличим счетчик и будем считать эту пару.

Давайте рассмотрим подробней, как работает код. Например, возьмем числа из примера в задаче, нам подходит пара 4+6=10, которая четная и делится без остатка на 5. Когда программа дойдет до p=4, то count=count+r [10—4] =count+r [6] и после этого в r [4] = r [4] +1=1. Когда программа считает p=6, count=count+r [10—6] =count+r [4] =0+1=1 – одна пара подсчиталась, т.е. count=1.

Данные для проверки вы можете взять из примера, что в задаче, и ответ указан к этому же примеру, но вы можете составить свой. Решение, что ниже подойдет для файла 27-B.

 
f=open('27-B.txt')
n=int(f.readline()) # считываем количество чисел
count = 0
r = [0] *10
for i in range (n):
    x = int (f.readline())# считываем числа
    p  = x % 10
    if p != 0:
        count += r[10-p] # копим массив остатков
        r [p] +=1
    else: # случай 150=10+140, описанный перед программой
        count += r[0]
        r[0] +=1
print (count)
 

Ответ: 2 для данных из примера, но вы можете создать свой файл, подключить и проверить работу программы.


Задачи для самостоятельного решения

Задача 27.3

В текстовом файле (файл А по ссылке находится здесь: https://yadi.sk/d/f7jOR7tP3JjqnQ, файл B здесь: https://yadi.sk/d/exWQw5lomL7rnQ) записан набор пар натуральных чисел, не превышающих 10 000. Необходимо выбрать из набора некоторые пары так, чтобы первое число в каждой выбранной паре было нечётным, сумма больших чисел во всех выбранных парах была нечётной, а сумма меньших – чётной. Какую наибольшую сумму чисел во всех выбранных парах можно при этом получить?

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

Первая строка входного файла содержит целое число N – общее количество чисел в наборе. Каждая из следующих N строк содержит одно число.

Пример входного файла

4

5 2

8 15

7 14

11 9

В данном случае есть три подходящие пары: (5, 2), (7, 14) и (11, 9). Пара (8, 15) не подходит, так как в ней первое число чётное. Чтобы удовлетворить требования, надо взять пары (7, 14) и (11, 9). Сумма больших чисел в этом случае равна 25, сумма меньших равна 16. Общая сумма равна 41. В ответе надо указать число 41.

Вам даны два входных файла (A и B), каждый из которых имеет описанную выше структуру. В ответе укажите два числа: сначала значение искомой суммы для файла A, затем для файла B.

Задача 27.4

Имеется набор данных, состоящий из пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел НЕ оканчивалась на 6 и при этом была минимально возможной. Гарантируется, что искомую сумму получить можно. Программа должна напечатать одно число – минимально возможную сумму, соответствующую условиям задачи.

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

Даны два входных файла (файл А находится по ссылке: https://yadi.sk/d/lT4IqUzptuiZDA и файл B здесь: https://yadi.sk/d/Clh6A5ZxkU0ZJQ), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 10000.

Пример входного файла:

6

3 5

5 12

6 9

5 4

7 9

5 1

Для указанных входных данных значением искомой суммы должно быть число 27. В ответе укажите два числа: сначала значение искомой суммы для файла А, затем для файла B.


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации