题目描述 Description
某天可怜的Oier不小心掉进了十维空间,待Oier醒来后发现自己竟然来到了小人国~~~~
Oier打听后发现这是小人国A,但是RP掉地的Oier不幸遇到了A国的士兵,想要进去A国必须帮士兵做一件事。
由于每一个士兵都有一个ID(可能相同),士兵要求Oier根据每个士兵的ID帮士兵排成单调递增的队伍(即ID小在前, ID大者在后)。
输入描述 Input Description
输入仅两行;
第一行输入N个士兵;
第二行输入士兵的ID a[1]…a[2]….a[N];
输出描述 Output Description
输出仅为一行,输出排序后士兵的ID;
样例输入 Sample Input
10
1 3 2 2 8 3 4 9 11 7
样例输出 Sample Output
1 2 2 3 3 4 7 8 9 11
数据范围及提示 Data Size & Hint
N<=1000;
a[i]<=40000;
数据均为整数。
奉上代码:
#include<bits/stdc++.h> #define N 100005
#define ll long long
#define RE register
#define max(a,b) (a>b?a:b) using namespace std; void read(int &x){
int flg=;x=;RE char ch=getchar();
if(ch=='-') flg=-;
for(;ch>''||ch<'';) ch=getchar();
for(;ch<=''&&ch>='';ch=getchar()) x=x*+ch-'';
x*=flg;
}
int n,a[N];
priority_queue<int,vector<int>,greater<int> >Q;
int main()
{
read(n);
for(int i=;i<=n;i++) read(a[i]),Q.push(a[i]);
for(int i=;i<=n;i++){
int q=Q.top();
printf("%d ",q);
Q.pop();
}
return ;
}
#include<bits/stdc++.h> #define N 100005
#define ll long long
#define RE register
#define max(a,b) (a>b?a:b) using namespace std; void read(int &x){
int flg=;x=;RE char ch=getchar();
if(ch=='-') flg=-;
for(;ch>''||ch<'';) ch=getchar();
for(;ch<=''&&ch>='';ch=getchar()) x=x*+ch-'';
x*=flg;
}
int n,a[N];
int main()
{
read(n);
for(int i=;i<=n;i++) read(a[i]);
sort(a+,a++n);
for(int i=;i<=n;i++) printf("%d ",a[i]);
return ;
}