酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

7952: 【C3】游戏积分 时间限制: 2 Sec 内存限制: 128 MB 提交: 0 解决: 45 [提交][状态][命题人:zhangyinwei] 题目描述 在某个奇幻游戏中,玩家击败怪物后会获得积分,这些积分分为奇数和偶数两种类型。奇数的积分代表魔法能量,需要按升序排列以进行某种仪式;偶数的积分代表物理能量,需要按降序排列以解锁宝箱。你作为游戏管理员现在需要处理这些积分记录,按照要求输出。 输入 第一行输入n (1<=m<=1000000) 第二行输入n个整数a (-1000000<=a<=1000000) 输出 按照要求排序后输出一行,包含排序后的n个整数,数与数之间以一个空格分开。 样例输入 5 1 2 3 4 5 样例输出 1 3 5 4 2 提示 先输出奇数再输出偶数 一定要用C++

```cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; vector<int> nums(n); for (int i = 0; i < n; ++i) { cin >> nums[i]; } vector<int> odds, evens; for (int num : nums) { if (num % 2 != 0) { odds.push_back(num); } else { evens.push_back(num); } } sort(odds.begin(), odds.end()); sort(evens.begin(), evens.end(), greater<int>()); for (int num : odds) { cout << num << " "; } for (int num : evens) { cout << num << " "; } return 0; } ``` 1. 使用两个vector分别存储奇数和偶数,避免在原数组上频繁操作 2. 对奇数使用默认升序排序,对偶数使用greater降序排序 3. 输出时先输出奇数再输出偶数,保证正确的输出顺序 [2025-04-12 17:09:06 | AI写代码神器 | 237点数解答]

相关提问