Поделитесь своими знаниями, ответьте на вопрос:
На C++ Во многих видах спорта результат участника соревнований определяется по , выставляемым коллегией судей, следующим образом: из множества выставленных оценок убирают максимальную и минимальную оценку (по одной, если таковых несколько) и оставшиеся оценки затем суммируют. Напишите программу, автоматизирующую подсчёт участников по описанному правилу. Формат ввода В первой строке входного файла записано два числа в указанном порядке: N – количество судей в судейской коллегии (3 ≤ N ≤ 100) и K – кол-во участников соревнований (1 ≤ K ≤ 100 В последующих K строках записано по N натуральных чисел (разделённых пробелами), не превосходящих 100 – оценки каждого из участников соревнований. Формат вывода В выходной файл требуется вывести K чисел, каждое на отдельной строке – итоговая оценка каждого из участников (в порядке, соответствующем порядку участников во входном файле).
Код:
#include <fstream>#include <vector>#include <numeric>int main() { std::ifstream cin("input.txt"); std::ofstream cout("output.txt"); int N, K; cin >> N >> K; std::vector<int> buffer(N); for (int i = 0; i < K; ++i) { for (int j = 0; j < N; ++j) { cin >> buffer[j]; } // Зануляем найденные min и max *(std::min_element(buffer.begin(), buffer.end())) = 0; *(std::max_element(buffer.begin(), buffer.end())) = 0; // Суммируем cout << std::accumulate(buffer.begin(), buffer.end(), 0) << "\n"; } return 0;}