ALEXMATH

Информатика. ЕГЭ

Задания для подготовки

Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников

Перейти к заданиям

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

Просмотры: 6923
Изменено: 1 февраля 2025

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

Решение:

Python


v = [int(x) for x in open('17-409.txt')]
mx7 = max([x for x in v if abs(x) % 10 == 7 and 999 < abs(x) < 10000])
mxsum = -10**10
q = 0
for x, y, z in zip(v, v[1:], v[2:]):
    t = int(abs(x) % 10 == 7 and 999 < abs(x) < 10000)
    t += int(abs(y) % 10 == 7 and 999 < abs(y) < 10000)
    t += int(abs(z) % 10 == 7 and 999 < abs(z) < 10000)
    s = sum([x, y, z])
    if t > 1 and s > mx7:
        q += 1
        mxsum = max(mxsum, s)
print(q, mxsum)

C++


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

using namespace std;

int32_t main() {
    vector<int> v;
    ifstream in("17-409.txt");
    int tmp, mx7 = -1000 * 1000, q = 0, mxsum = -1000 * 1000;

    while (!in.eof())
    {
        in >> tmp;
        v.push_back(tmp);
        if (abs(tmp) % 10 == 7 && abs(tmp) > 999 && abs(tmp) < 10000)
            mx7 = max(mx7, tmp);
    }

    for (int i = 0; i < v.size() - 2; i++) {
        int x = int(abs(v[i]) % 10 == 7 && abs(v[i]) > 999 && abs(v[i]) < 10000);
        x += int(abs(v[i+1]) % 10 == 7 && abs(v[i+1]) > 999 && abs(v[i+1]) < 10000);
        x += int(abs(v[i+2]) % 10 == 7 && abs(v[i+2]) > 999 && abs(v[i+2]) < 10000);
        int s = v[i] + v[i+1] + v[i+2];
        if(x > 1 && s > mx7) {
            q++;
            mxsum = max(mxsum, s);
        }
    }
    
    cout << q << " " << mxsum << '\n';
}

Ответ: \(6 \,\, 84385\)

Видеоразбор

Обсуждение задания

Здесь пока нет ни одного комментария. Будьте первым!

kege1
kege2
kege3
Новый тренажёр-эмулятор
Станции КЕГЭ

Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене.

Новое видео

Методы решения задания 16 ЕГЭ по Информатике «Вычисление рекуррентных выражений»

Поддержать автора сайта!

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

Совершая донат, вы соглашаетесь с Условиями использования

Расписание пробников Статграда в 2026/27 учебном году