记录编号 330626 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 中位数 最终得分 100
用户昵称 GravatarZwoi_只会打表抄代码的蒟蒻 是否通过 通过
代码语言 C 运行时间 3.222 s
提交时间 2016-10-26 19:11:53 内存使用 1.18 MiB
显示代码纯文本
#include <stdio.h>
#include <memory.h>
int f[250005],n1,n,i,j,y,p;
float o;
void swap(int x,int y)
{
	int t;
	t=f[x];
	f[x]=f[y];
	f[y]=t;
}
void sort(int x)
{
	int l,r,min;
	l=2*x;
	r=l+1;
	if(l<=n1&&f[l]<f[x])
		min=l;
	else min=x;
	if(r<=n1&&f[r]<f[min])
		min=r;
	if(min!=x)
	{
		swap(min,x);
		sort(min);
	}
}
int main()
{
    freopen("median.in","r",stdin);
	freopen("median.out","w",stdout);
	memset(f,0,sizeof(f));
	scanf("%d",&n);
	n1=n/2+1;
	for(i=1;i<=n1;i++)
		scanf("%d",f+i);
	for(i=n1/2;i>=1;i--)
		sort(i);
	for(i=n-n1;i>0;i--)
	{
		scanf("%d",&y);
		if(y>f[1])
		{
			f[1]=y;
			sort(1);
		}
	}
	if(f[2]<f[3])
		p=f[2];
	else p=f[3];
	if(n%2==0)
	{
		o=((float)(p+f[1]))/2;
		printf("%0.1f",o);
	}
	else 
    {
	   o=f[1];
	   printf("%0.01f",o);
	}
	return 0;
}