Решение задачи Состязания - 5 с Mccme

С пояснением   Просмотров: 53


В метании молота состязается n спортcменов. Каждый из них сделал m бросков. Победитель определяется по лучшему результату. Определите количество участников, а так же самих участников состязаний, которые разделили первое место, то есть определите количество строк в массиве, которые содержат значение, равное наибольшему.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{

    int n, m, k = 0, res = 0;
    cin >> n >> m;
    int a[n][m];
    vector<int> s;
    for(int i = 0; i < n; ++i){
        int sum = 0;
        for(int j = 0; j < m; ++j){
            cin >> a[i][j];
            res = max(a[i][j], res);
        }
    }
    for(int i = 0; i < n; ++i){
        for(int j = 0; j < m; ++j){
            if(a[i][j] == res){
                ++k;
                s.push_back(i);
                break;
            }
        }
    }
    cout << k << endl;
    sort(s.begin(), s.end());
    for(int i = 0; i < s.size(); ++i)
        cout << s[i] << " ";
    return 0;
}

         

Администратор Photo Автор: Администратор


Надо просто найти максимальный элемент и присвоить в какую нибудь переменную (например mx). Потом ищем в каждой строке такой элемент который бы был равен mx. И в некую переменную s будем хранить количество строк которые имеют число mx. Выводим mx. Теперь выводим номера тех строк которые имеют переменную mx. Не забудьте, что строки (спортсмены) нумеруются с 0.


Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться