题目链接:点击打开链接
题目大意:略。
解题思路:四舍五入到整数小技巧:
printf("%d",(int)(x+0.5)); // 比下面这种写法有时更加精确
printf("%.0f",double(x));
AC 代码
#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
for(int q=0;q<n;q++)
{
int a[n+10],k=0,c;
double rs,ans=0;
scanf("%d",&c); rs+=c;
for(int i=1;i<n;i++)
{
scanf("%d",&c);
if(c>=0&&c<=m)
{
a[k++]=c;
}
}
sort(a,a+k);
for(int i=1;i<k-1;i++) ans+=a[i];
printf("%d\n",int((ans/(k-2)+rs)/2+0.5));
}
}
return 0;
}