Задание 17. Информатика. ЕГЭ. Поляков-7485

Просмотры: 162
Изменено: 23 ноября 2024

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

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

Решение:

Python


v = [int(x) for x in open('17-404.txt')]
min_el = min(v)
q = 0
min_sum = 10**10
for x, y in zip(v, v[1:]):
    if x % 55 == min_el or y % 55 == min_el:
        q += 1
        min_sum = min(min_sum, x+y)
print(q, min_sum)

C++


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

using namespace std;

int32_t main() {
    vector<int> v;
    ifstream in("17-404.txt");
    int min_el = 1000000, min_sum = 1000000, q = 0;

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

    for(int i = 0; i < v.size() - 1; i++) {
        if (v[i] % 55 == min_el || v[i+1] % 55 == min_el) {
            q++;
            min_sum = min(min_sum, v[i] + v[i+1]);
        }
    }
    cout << q << " " << min_sum << '\n';
}

Ответ: \(201 \,\, 2942\)