P1271 【深基9.例1】选举学生会

题目描述

学校正在选举学生会成员,有 𝑛(𝑛≤999)名候选人,每名候选人编号分别从 1到 𝑛,现在收集到了 𝑚(𝑚≤2000000)张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。

输入格式

输入 𝑛 和 𝑚 以及 𝑚 个选票上的数字。

输出格式

求出排序后的选票编号。

输入输出样例

输入 #1

5 10
2 5 2 2 5 2 2 2 1 2

输出 #1

1 2 2 2 2 2 2 2 5 5

思路分析

  1. 输入阶段:首先读取候选人总数 n 和选票数 m,然后读取 m 张选票上的候选人编号,并存储在数组 a 中。

  2. 排序阶段:使用 C++ 标准库中的 sort 函数对数组 a 进行排序。

  3. 输出阶段:遍历排序后的数组 a,输出每一张选票上的候选人编号。

示例代码

#include<bits/stdc++.h> // 包含所有标准库头文件,
using namespace std;  
  
int n, m, a[2000000]; // 声明候选人总数n,选票数m,以及存储选票的数组a  
  
int main() {  
    cin >> n >> m; // 读取候选人总数n和选票数m  
      
 
    for (int i = 0; i < m; i++) { 
        cin >> a[i]; // 读取每一张选票上的候选人编号,并存储在数组a中  
    }  
      
    sort(a, a + m); // 对数组a进行排序,注意排序的结束位置是a + m,而不是a + m + 1  
      
    for (int i = 0; i < m; i++) { // 修改循环条件为i < m,以正确遍历排序后的数组  
        cout << a[i] << " "; // 输出排序后的选票编号  
    }  
      
    return 0;  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值