题目大意:将一个数正确插入一个有序的序列中。
解题思路:该题有多种写法,可以直接输入比较那个元素相邻进行正确输出,也可进行快速查找,但比较简便的写法是优先队列,只是注意最后一个数输出是加上“\n”,而不是空格,千万不要多输出一个空格,不然会PE的。
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2019
code:
#include <iostream>
#include <cstdio>
#include <queue>
#include <vector>
using namespace std;
int main()
{
int n,m,data;
priority_queue<int,vector<int>,greater<int> > q;
while(scanf("%d%d",&n,&m)!=EOF && (n||m)){
for(int i=0;i<n;i++){
cin>>data;
q.push(data);
}
q.push(m);
while(!q.empty() && q.size()>1){
cout<<q.top()<<' ';
q.pop();
}
cout<<q.top()<<endl;
q.pop();
}
return 0;
}