比赛 2026初中综合小练习 评测结果 AAAAA
题目名称 求集合中最小的N个数 最终得分 100
用户昵称 awa 运行时间 0.223 s
代码语言 C++ 内存使用 6.77 MiB
提交时间 2026-04-14 19:29:13
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

int main(){
    freopen("minvalinset.in","r",stdin);
    freopen("minvalinset.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    priority_queue<long long, vector<long long>, greater<long long>> heap;
    heap.push(1);
    long long ans[1000005];
    int i=0;
    while(i<n){
        long long cur=heap.top();
        heap.pop();
        if(i>0 && cur==ans[i-1]){
            continue;
        }
        ans[i]=cur;
        i++;
        long long num1=2 * cur + 1;
        long long num2=3 * cur + 1;
        heap.push(num1);
        heap.push(num2);
    }
    for(int j=0;j<n;j++){
        cout<<ans[j]<<" ";
    }
    return 0;
}