【拼多多-寻梦】优先级数列。

2020-01-09  本文已影响0人  七月初一_3679

1、题目描述

读入一个数列和N值,返回优先级排序的N个数。满足:
(1)所有偶数优先级大于奇数。
(2)同为偶数或者奇数,数值大的优先级更高。
输入描述

每个测试输入的测试用例,包含一个用半角逗号(,)分开的自然数列和1个参数N,数列和参数N用半角分号隔开(;)。

输出描述

在一行内输出N个满足条件的自然数,用逗号隔开。

示例

输入:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14;10
输出:14,12,10,8,6,4,2,13,11,9

2、问题描述:

3、问题关键:

4、C++代码:

#include <bits/stdc++.h>
using namespace std;
int change(string str) {
    int sum = 0;
    for (int i = 0; i < str.size(); i ++) {
        sum = sum * 10 + str[i] - '0';
    }
    return sum;
}
int main() {
    int n, m = 0;
    char ch;
    set<int> a, b;
    while (cin >> n >> ch) {
        if (n % 2 == 0) a.insert(n);
        else b.insert(n);
        if (ch == ';') cin >> m;
        if (m) {
            auto it = a.rbegin();
            auto it1 = b.rbegin();
            while (-- m) {
                if (it != a.rend()) {
                    cout << *it << ',';
                    it ++;
                }
                else {
                    cout << *it1 << ',';
                    it1 ++;
                }
            }
            if (it != a.rend()) cout << *it << endl;
            else cout << *it1 << endl;
        }
    }
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读