#include <stdio.h>
void input(int *buffer, int *length);
void output(int *buffer, int length);
int sum_numbers(int *buffer, int length);
int find_numbers(int *buffer, int length, int number, int *numbers);
/*
Функция получает массив данных
через stdin.
Выдает в stdout особую сумму
и сформированный массив
специальных элементов
(выбранных с помощью найденной суммы):
это и будет частью ключа
*/
int main() {
int length;
int buffer[10]; // Максимальный размер входного массива
int sum;
int new_buffer[10]; // Массив для элементов, на которые делится сумма
int count;
input(buffer, &length);
sum = sum_numbers(buffer, length); // Рассчитываем сумму чётных элементов
// Если сумма равна 0 или нет чётных, выводим "n/a"
if (sum == 0) {
return 1;
}
count = find_numbers(buffer, length, sum, new_buffer); // Ищем элементы, на которые делится сумма
// Если нет элементов, выводим "n/a"
if (count == 0) {
return 1;
}
printf("%d\n", sum
); // Выводим сумму чётных элементов output(new_buffer, count); // Выводим отобранные элементы
return 0;
}
// Функция должна находить сумму четных элементов с 0-й позиции.
int sum_numbers(int *buffer, int length) {
int sum = 0;
for (int i = 0; i < length; i++) { // Исправлено начальное условие на 0
if (buffer[i] % 2 == 0) { // Проверяем на четность
sum += buffer[i];
}
}
return sum;
}
// Функция должна находить все элементы, на которые нацело делится переданное число и записывает их в выходной массив.
int find_numbers(int *buffer, int length, int number, int *numbers) {
int count = 0;
for (int i = 0; i < length; i++) {
// Если число не равно нулю и дельное на сумму, добавляем его в выходной массив
if (buffer[i] != 0 && number % buffer[i] == 0) {
numbers[count] = buffer[i]; // Записываем подходящее число
count++;
}
}
return count; // Возвращаем количество найденных элементов
}
// Функция получает массив данных через stdin.
void input(int *buffer, int *length) {
for (int i = 0; i < *length; i++) {
}
}
// Функция выводит элементы массива в stdout.
void output(int *buffer, int length) {
for (int i = 0; i < length; i++) {
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGlucHV0KGludCAqYnVmZmVyLCBpbnQgKmxlbmd0aCk7CnZvaWQgb3V0cHV0KGludCAqYnVmZmVyLCBpbnQgbGVuZ3RoKTsKaW50IHN1bV9udW1iZXJzKGludCAqYnVmZmVyLCBpbnQgbGVuZ3RoKTsKaW50IGZpbmRfbnVtYmVycyhpbnQgKmJ1ZmZlciwgaW50IGxlbmd0aCwgaW50IG51bWJlciwgaW50ICpudW1iZXJzKTsKCi8qCiAgICDQpNGD0L3QutGG0LjRjyDQv9C+0LvRg9GH0LDQtdGCINC80LDRgdGB0LjQsiDQtNCw0L3QvdGL0YUgCiAgICDRh9C10YDQtdC3IHN0ZGluLgogICAg0JLRi9C00LDQtdGCINCyIHN0ZG91dCDQvtGB0L7QsdGD0Y4g0YHRg9C80LzRgwogICAg0Lgg0YHRhNC+0YDQvNC40YDQvtCy0LDQvdC90YvQuSDQvNCw0YHRgdC40LIgCiAgICDRgdC/0LXRhtC40LDQu9GM0L3Ri9GFINGN0LvQtdC80LXQvdGC0L7QsgogICAgKNCy0YvQsdGA0LDQvdC90YvRhSDRgSDQv9C+0LzQvtGJ0YzRjiDQvdCw0LnQtNC10L3QvdC+0Lkg0YHRg9C80LzRiyk6CiAgICDRjdGC0L4g0Lgg0LHRg9C00LXRgiDRh9Cw0YHRgtGM0Y4g0LrQu9GO0YfQsAoqLwppbnQgbWFpbigpIHsKICAgIGludCBsZW5ndGg7CiAgICBpbnQgYnVmZmVyWzEwXTsgLy8g0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCDQstGF0L7QtNC90L7Qs9C+INC80LDRgdGB0LjQstCwCiAgICBpbnQgc3VtOwogICAgaW50IG5ld19idWZmZXJbMTBdOyAvLyDQnNCw0YHRgdC40LIg0LTQu9GPINGN0LvQtdC80LXQvdGC0L7Qsiwg0L3QsCDQutC+0YLQvtGA0YvQtSDQtNC10LvQuNGC0YHRjyDRgdGD0LzQvNCwCiAgICBpbnQgY291bnQ7CgogICAgaW5wdXQoYnVmZmVyLCAmbGVuZ3RoKTsKICAgIAogICAgc3VtID0gc3VtX251bWJlcnMoYnVmZmVyLCBsZW5ndGgpOyAvLyDQoNCw0YHRgdGH0LjRgtGL0LLQsNC10Lwg0YHRg9C80LzRgyDRh9GR0YLQvdGL0YUg0Y3Qu9C10LzQtdC90YLQvtCyCgogICAgLy8g0JXRgdC70Lgg0YHRg9C80LzQsCDRgNCw0LLQvdCwIDAg0LjQu9C4INC90LXRgiDRh9GR0YLQvdGL0YUsINCy0YvQstC+0LTQuNC8ICJuL2EiCiAgICBpZiAoc3VtID09IDApIHsKICAgICAgICBwcmludGYoIm4vYVxuIik7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgY291bnQgPSBmaW5kX251bWJlcnMoYnVmZmVyLCBsZW5ndGgsIHN1bSwgbmV3X2J1ZmZlcik7IC8vINCY0YnQtdC8INGN0LvQtdC80LXQvdGC0YssINC90LAg0LrQvtGC0L7RgNGL0LUg0LTQtdC70LjRgtGB0Y8g0YHRg9C80LzQsAoKICAgIC8vINCV0YHQu9C4INC90LXRgiDRjdC70LXQvNC10L3RgtC+0LIsINCy0YvQstC+0LTQuNC8ICJuL2EiCiAgICBpZiAoY291bnQgPT0gMCkgewogICAgICAgIHByaW50Zigibi9hXG4iKTsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICBwcmludGYoIiVkXG4iLCBzdW0pOyAvLyDQktGL0LLQvtC00LjQvCDRgdGD0LzQvNGDINGH0ZHRgtC90YvRhSDRjdC70LXQvNC10L3RgtC+0LIKICAgIG91dHB1dChuZXdfYnVmZmVyLCBjb3VudCk7IC8vINCS0YvQstC+0LTQuNC8INC+0YLQvtCx0YDQsNC90L3Ri9C1INGN0LvQtdC80LXQvdGC0YsKCiAgICByZXR1cm4gMDsKfQoKLy8g0KTRg9C90LrRhtC40Y8g0LTQvtC70LbQvdCwINC90LDRhdC+0LTQuNGC0Ywg0YHRg9C80LzRgyDRh9C10YLQvdGL0YUg0Y3Qu9C10LzQtdC90YLQvtCyINGBIDAt0Lkg0L/QvtC30LjRhtC40LguCmludCBzdW1fbnVtYmVycyhpbnQgKmJ1ZmZlciwgaW50IGxlbmd0aCkgewogICAgaW50IHN1bSA9IDA7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeyAvLyDQmNGB0L/RgNCw0LLQu9C10L3QviDQvdCw0YfQsNC70YzQvdC+0LUg0YPRgdC70L7QstC40LUg0L3QsCAwCiAgICAgICAgaWYgKGJ1ZmZlcltpXSAlIDIgPT0gMCkgeyAvLyDQn9GA0L7QstC10YDRj9C10Lwg0L3QsCDRh9C10YLQvdC+0YHRgtGMCiAgICAgICAgICAgIHN1bSArPSBidWZmZXJbaV07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBzdW07Cn0KCi8vINCk0YPQvdC60YbQuNGPINC00L7Qu9C20L3QsCDQvdCw0YXQvtC00LjRgtGMINCy0YHQtSDRjdC70LXQvNC10L3RgtGLLCDQvdCwINC60L7RgtC+0YDRi9C1INC90LDRhtC10LvQviDQtNC10LvQuNGC0YHRjyDQv9C10YDQtdC00LDQvdC90L7QtSDRh9C40YHQu9C+INC4INC30LDQv9C40YHRi9Cy0LDQtdGCINC40YUg0LIg0LLRi9GF0L7QtNC90L7QuSDQvNCw0YHRgdC40LIuCmludCBmaW5kX251bWJlcnMoaW50ICpidWZmZXIsIGludCBsZW5ndGgsIGludCBudW1iZXIsIGludCAqbnVtYmVycykgewogICAgaW50IGNvdW50ID0gMDsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgLy8g0JXRgdC70Lgg0YfQuNGB0LvQviDQvdC1INGA0LDQstC90L4g0L3Rg9C70Y4g0Lgg0LTQtdC70YzQvdC+0LUg0L3QsCDRgdGD0LzQvNGDLCDQtNC+0LHQsNCy0LvRj9C10Lwg0LXQs9C+INCyINCy0YvRhdC+0LTQvdC+0Lkg0LzQsNGB0YHQuNCyCiAgICAgICAgaWYgKGJ1ZmZlcltpXSAhPSAwICYmIG51bWJlciAlIGJ1ZmZlcltpXSA9PSAwKSB7CiAgICAgICAgICAgIG51bWJlcnNbY291bnRdID0gYnVmZmVyW2ldOyAvLyDQl9Cw0L/QuNGB0YvQstCw0LXQvCDQv9C+0LTRhdC+0LTRj9GJ0LXQtSDRh9C40YHQu9C+CiAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBjb3VudDsgLy8g0JLQvtC30LLRgNCw0YnQsNC10Lwg0LrQvtC70LjRh9C10YHRgtCy0L4g0L3QsNC50LTQtdC90L3Ri9GFINGN0LvQtdC80LXQvdGC0L7Qsgp9CgovLyDQpNGD0L3QutGG0LjRjyDQv9C+0LvRg9GH0LDQtdGCINC80LDRgdGB0LjQsiDQtNCw0L3QvdGL0YUg0YfQtdGA0LXQtyBzdGRpbi4Kdm9pZCBpbnB1dChpbnQgKmJ1ZmZlciwgaW50ICpsZW5ndGgpIHsKICAgIHNjYW5mKCIlZCIsIGxlbmd0aCk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8ICpsZW5ndGg7IGkrKykgewogICAgICAgIHNjYW5mKCIlZCIsICZidWZmZXJbaV0pOwogICAgfQp9CgovLyDQpNGD0L3QutGG0LjRjyDQstGL0LLQvtC00LjRgiDRjdC70LXQvNC10L3RgtGLINC80LDRgdGB0LjQstCwINCyIHN0ZG91dC4Kdm9pZCBvdXRwdXQoaW50ICpidWZmZXIsIGludCBsZW5ndGgpIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICBwcmludGYoIiVkICIsIGJ1ZmZlcltpXSk7CiAgICB9CiAgICBwcmludGYoIlxuIik7Cn0=