标签:heap
| input | output |
|---|---|
4 3 6 4 5 |
4.5 |
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
const int maxn=250000;
int a[maxn/2+10];
int main()
{
int n;double ans;
while(scanf("%d",&n)!=EOF)
{
int num=0,x;
for(int i=0;i<n/2+1;i++)
scanf("%d",&a[i]);
make_heap(a,a+n/2+1);
for(int i=n/2+1;i<n;i++)
{
scanf("%d",&x);
if(x<a[0])
{
pop_heap(a,a+n/2+1);
a[n/2]=x;
push_heap(a,a+n/2+1);
}
}
if(n%2)
{
ans=(double)a[0];
printf("%.1lf\n",ans);
}
else
{
ans=(double)a[0];
pop_heap(a,a+n/2+1);
ans+=(double)a[0];
printf("%.1lf\n",ans/2.0);
}
}
return 0;
}
标签:heap
原文地址:http://blog.csdn.net/qq_16255321/article/details/40264481