Решение задачи "Лучшие из лучших " с Acmp

Без пояснения   Просмотров: 12


В классе N учеников. По окончании года всем выставили итоговые оценки по M предметам. Требуется определить тройку лучших учащихся по среднему баллу итоговых оценок.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, m;
    string s;
    cin >> n >> m;
    vector<string> names(n);
    vector<int> scores(n);
    vector<vector<int > > a;
    for(int i = 0; i < n; ++i){
        getline(cin.ignore(), names[i]);
        vector<int> t(m + 1);
        int sum = 0;
        for(int j = 0; j < m; ++j){
            cin >> t[j];
            sum+=t[j];
        }
        scores[i] = sum;
        t[m] = sum;
        a.push_back(t);
    }
//    for(auto i: scores)
//        cout << i << " ";
//    cout << endl;
//    for(auto i: names)
//        cout << i << endl;
//     cout << endl;
//    for(auto i: a){
//        for(auto j: i)
//            cout << j << " ";
//        cout << endl;
//    }
    for(int i = 0; i < scores.size() - 1; ++i){
        for(int j = i + 1; j < scores.size(); ++j){
            if(scores[i] > scores[j]){
                swap(scores[i], scores[j]);
            }
        }
    }
    for(int i = 0; i < a.size(); ++i){
        if(a[i][m] == scores[scores.size() - 1] || a[i][m] == scores[scores.size() - 2] || a[i][m] == scores[scores.size() - 3]){
            cout << names.at(i) << " (";
            for(int j = 0; j < m - 1; ++j)
                cout << a[i][j] << " ";
            cout << a[i][m - 1];
            cout << ")" << endl;
        }
    }
    return 0;
}

         

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


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

Комментарии

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