主要是定义结构体,再加上手动实现sort排序
#include <iostream>
#include <algorithm>
using namespace std;

struct score
{
    int time;    // 录入时间
    string name; // 姓名
    int score;   // 分数
};

int asce(score s1, score s2)
{
    if (s1.score == s2.score)
        return s1.time < s2.time;
    else
        return s1.score < s2.score;
}

int desc(score s1, score s2)
{
    if (s1.score == s2.score)
        return s1.time < s2.time;
    else
        return s1.score > s2.score;
}

int main()
{
    int T;
    while (cin >> T)
    {
        int type, time = 0; // 排序类型、录入时间
        score scores[T];    // 成绩序列
        cin >> type;        // 排序类型

        for (int i = 0; i < T; i++) // 录入成绩序列
        {
            scores[i].time = time++;
            cin >> scores[i].name >> scores[i].score;
        }

        if (type == 1) // 升序
            sort(scores, scores + T, asce);
        else // 降序
            sort(scores, scores + T, desc);

        for (auto item : scores)
            cout << item.name << " " << item.score << endl;
    }
}