Решение задачи "Ученики " с Acmp

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


Однажды, неловкая секретарша перепутала личные дела учащихся. Теперь их снова необходимо упорядочить сначала по классам, а внутри класса по фамилиям.


Код

#include <bits/stdc++.h>

using namespace std;

int main()
{

    int n;
    cin >> n;
    vector<vector<string> > a;
    vector<string> t(5);
    for(int i = 0; i < 5; ++i){
        t[i] = "0";
    }
    for(int i = 0; i < n; ++i)
        a.push_back(t);

    for(int i = 0; i < n; ++i){
        cin >> a[i][2] >> a[i][3] >> a[i][0] >> a[i][4];
        string s = a[i][0];
        a[i][1] = s[s.size() - 1];
        s.pop_back();
        a[i][0] = s;
    }
	// данные расположены в матрице
    for(int i = 0; i < n; ++i){
        for(int j = i + 1; j < n; ++j){
            if(a[i][0].size() > a[j][0].size()){
                swap(a[i], a[j]);
            }
            else if(a[i][0] > a[j][0] && a[i][0].size() == a[j][0].size()){
                swap(a[i], a[j]);
            }
            else if(a[i][0] == a[j][0]){
                    if(a[i][1] > a[j][1])
                        swap(a[i], a[j]);
                    else if(a[i][1] == a[j][1])
                            if(a[i][2] > a[j][2])
                                swap(a[i], a[j]);
            }

        }
    }

    for(int i = 0; i < a.size(); ++i){
        for(int j = 0; j < a.at(i).size(); ++j)
            if(j == 0){
                cout << a[i][j] + a[i][j + 1] << " ";
                ++j;
            }
            else
                cout << a[i][j] << " ";
        cout << endl;
    }

    return 0;
}

         

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


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

Комментарии

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