ОЧЕНЬ СРОЧНО!!!! ** C++ Во многих видах спорта результат участника соревнований...

+577 голосов
4.2m просмотров

ОЧЕНЬ СРОЧНО!!!! На C++ Во многих видах спорта результат участника соревнований определяется по баллам, выставляемым коллегией судей, следующим образом: из множества выставленных оценок убирают максимальную и минимальную оценку (по одной, если таковых несколько) и оставшиеся оценки затем суммируют. Напишите программу, автоматизирующую подсчёт баллов участников по описанному правилу. Формат ввода В первой строке входного файла записано два числа в указанном порядке: N – количество судей в судейской коллегии (3 ≤ N ≤ 100) и K – кол-во участников соревнований (1 ≤ K ≤ 100). В последующих K строках записано по N натуральных чисел (разделённых пробелами), не превосходящих 100 – оценки каждого из участников соревнований. Формат вывода В выходной файл требуется вывести K чисел, каждое на отдельной строке – итоговая оценка каждого из участников (в порядке, соответствующем порядку участников во входном файле).


Информатика (13 баллов) | 4.2m просмотров
+97

за 5 баллов?

Дан 1 ответ
+92 голосов
Правильный ответ

Код:

  • #include
  • #include
  • #include
  • int main() {
  •    std::ifstream cin("input.txt");
  •    std::ofstream cout("output.txt");
  •    int N, K;
  •    cin >> N >> K;
  •    std::vector 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";</li>
  •    }
  •    return 0;
  • }
(7.0k баллов)