您的位置:首页 > 产品设计 > UI/UE

Ural 1306 Sequence Median

2013-10-16 16:40 302 查看
求中位数。又一水题- -!内存限制,开250000刚好超内存。所以开一半+1,后面的数插入后将最大的弹出。最后最大的一位或两位记为中间值。看了下优先队列。 priority_queue用法

#include <iostream>
#include <queue>
#include <cstdio>
using namespace std;
int main()
{
priority_queue<int> q;
int n;
scanf("%d",&n);
int x;
int i;
for(i= 0; i<=n/2; ++i )
{
scanf("%d",&x);
q.push(x);
}
for(;i<n;i++)
{
scanf("%d",&x);
q.push(x);
q.pop();
}
if(n%2==1)
printf("%.1f\n",(double)q.top());
else
{
double a;
a=q.top();
q.pop();
a+=q.top();
a/=2;
printf("%.1f\n",a);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: