2*a1 = a0 + a2 - 2*c1
2*a2 = a1 + a3 - 2*c2
2*a3 = a2 + a4 -2*c3
...
2*an = an-1 + an+1 - 2*cn
将上述n个式子依次累加加 并且保留 第一个式子得:
2*a1 = a0 + a2 -2*c1
a1+a2=a0+a3-2*(c1+c2)
a1+a3=a0+a4-2*(c1+c2+c3)
...
a1+an=a0+an+1-2*(c1+c2+c3...+cn)
将上述 n+1个式子相加:
(n+1)*a1 =n*a1 +an+1 -2*(n*c1+(n-1)*c2+(n-2)*c3+...+cn))
#include<cstdio>
int main()
{
int t,n,i;
double a,b,c,s;
scanf("%d",&t);
while(t--)
{
s=0;
scanf("%d",&n);
scanf("%lf%lf",&a,&b);
for(i=1;i<=n;i++)
{
scanf("%lf",&c);
s+=(n-i+1)*c;
}
printf("%.2lf\n",(n*a+b-2*s)/(n+1));
if(t) printf("\n");
}
return 0;
}