Контест Junior Лямбды и функциональные объекты обновлено
Конвейер фильтров из лямбд
Условие
Дан массив чисел и список фильтров. Число проходит конвейер, если удовлетворяет всем фильтрам. Выведите количество прошедших и их сумму.
Фильтры:
gt v: число большеv;lt v: меньшеv;mod m r: остаток от деления наmравенr(математический остаток, от 0 до m − 1, в том числе для отрицательных чисел);even: чётное;pow2: положительная степень двойки (1, 2, 4, ...).
Соберите фильтры в std::vector<std::function<bool(long long)>>, создавая лямбды с захватом параметров.
Ввод: n (1 ≤ n ≤ 5000), массив (|aᵢ| ≤ 10⁹), k (0 ≤ k ≤ 10), затем k фильтров.
Вывод: количество и сумма через пробел.
Пример 1
Ввод:
6
-7 -4 1 2 8 9
2
mod 3 2
lt 5
Вывод:
3 -9
Пример 2
Ввод:
3
1 2 3
0
Вывод:
3 6
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.