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;
}
网友评论