ALEXMATH

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

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

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

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

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

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

(А. Жуков) Имеется набор данных, состоящий из положительных целых чисел. Необходимо определить количество пар элементов \((a_i, \, a_j)\) этого набора, в которых \(1 \leqslant i < j \leqslant N\), сумма элементов нечётна, а произведение делится на \(13\).

Входные данные. Даны два входных файла (файл \(A\) и файл \(B\)), каждый из которых содержит в первой строке количество чисел \(N\) \((1 \leqslant N \leqslant 100000)\). Каждая из следующих \(N\) строк содержит одно натуральное число, не превышающее \(10~000\).

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

\(5\)
\(4\)
\(13\)
\(27\)
\(39\)
\(7\)

Для указанных входных данных количество подходящих пар должно быть равно \(2\). В приведённом наборе имеются две пары \((4, \, 13)\) и \((4, \, 39)\), сумма элементов которых нечётна, и произведение кратно \(13\).

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

Решение:

C++


#include<iostream>
#include<fstream>
#include<string>

using namespace std;

int32_t main() {
    string base = "";
    string fnames[] = {"27-A.txt", "27-B.txt"};

    for (string fn: fnames) {
        ifstream in(base + fn);
        int N, tmp, even = 0, even13 = 0, odd = 0, odd13 = 0, p = 0;
        in >> N;
        in >> tmp;

        if (tmp % 13) {
            if (tmp % 2) odd++;
            else even++;
        }
        else {
            if (tmp % 2) odd13++;
            else even13++;
        }

        for (int i = 1; i < N; i++) {
            in >> tmp;
            if (tmp % 13) {
                if (tmp % 2) {
                    p += even13;
                    odd++;
                }
                else {
                    p += odd13;
                    even++;
                }
            }
            else {
                if (tmp % 2) {
                    p += even + even13;
                    odd13++;
                }
                else {
                    p += odd + odd13;
                    even13++;
                }
            }
        }    

        cout << p << '\n';
    }
}

Ответ: \(19 \,\, 132286186\)

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

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

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

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

Новое видео

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

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

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

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

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