Задание 17. Информатика. ЕГЭ. Демо-2025

Просмотры: 148
Изменено: 12 октября 2024

В файле содержится последовательность натуральных чисел. Её элементы могут принимать целые значения от \(1\) до \(100~000\) включительно. Определите количество пар последовательности, в которых остаток от деления хотя бы одного из элементов на \(16\) равен минимальному элементу последовательности. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Файл с данными

Решение:

Python


nums = [int(x) for x in open('demo_2025_17.txt')]
mn = min(nums)
q = 0
mx_sum = 0
for x, y in zip(nums, nums[1:]):
    if x % 16 == mn or y % 16 == mn:
        q += 1
        mx_sum = max(mx_sum, x+y)

print(q, mx_sum)

C++


#include<iostream>
#include<fstream>
#include<vector>

using namespace std;

int32_t main() {
    ifstream in("demo_2025_17.txt");
    vector<int> nums;
    int q = 0, max_sum = 0, min_el = 1000*1000;

    while(!in.eof()) {
       int tmp;
       in >> tmp;
       nums.push_back(tmp);
       min_el = min(min_el, tmp);
    }

    for(int i = 0; i < nums.size() - 1; i++) {
       if (nums[i] % 16 == min_el || nums[i+1] % 16 == min_el) {
           q++;
           max_sum = max(max_sum, nums[i] + nums[i+1]);
       }
    }

    cout << q << " " << max_sum << '\n';
}

Ответ: \(1214 \,\, 176024\)