排序以后统计前一半的每个元素的一半值就行,水题。
#include<stdio.h>
#include<stdlib.h>
long i,k,ans;
long s[10001];
void sort(long l,long r)
{
long i,j,temp;
if (l>=r)
return;
i=l;j=r;temp=s[i];
while (i<j)
{
while (i<j && s[j]>temp)
j--;
if (i<j)
{
s[i]=s[j];
i++;
}
while (i<j && s[i]<temp)
i++;
if (i<j)
{
s[j]=s[i];
j--;
}
}
s[i]=temp;
sort(l,i-1);
sort(i+1,r);
}
int main()
{
scanf("%ld",&k);
for (i=1;i<=k;i++)
scanf("%ld",&s[i]);
sort(1,k);
k=k/2+1;
for (i=1;i<=k;i++)
ans+=s[i]/2+1;
printf("%ld",ans);
}
posted on 2011-07-05 22:38
梦转千寻 阅读(30)
评论(0) 编辑 收藏 引用