View Code of Problem 5

#include <iostream>
#include <algorithm>
#include "vector"

using namespace std;

struct basket {
    int m_apple;
    int m_pear;
    int m_id;
};

/**
 * kkmd66
 * @param basket1
 * @param basket2
 * @return
 */

bool mCompare(const basket &basket1, const basket &basket2) {
    if (basket1.m_apple != basket2.m_apple)
        return basket1.m_apple > basket2.m_apple;
    else if (basket1.m_pear != basket2.m_pear)
        return basket1.m_pear > basket2.m_pear;
    else
        return basket1.m_id < basket2.m_id;
}

/**
 * kkmd66
 * @return
 */

int main() {

    int t;
    cin >> t;
    while (t--) {
        int n, m;
        cin >> n >> m;

        //装入
        basket basket[n];
        for (int i = 0; i < n; ++i) {
            cin >> basket[i].m_apple >> basket[i].m_pear;
            basket[i].m_id = i + 1;
        }

        //排序
        sort(basket, basket + n, mCompare);

        //输出
        for (int i = 0; i < m; ++i) {
            if (i != m - 1)
                cout << basket[i].m_id << " ";
            else
                cout << basket[i].m_id << endl;
        }
    }

    return 0;
}

Double click to view unformatted code.


Back to problem 5