版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liufengwei1/article/details/87980710
设期望为t,那么根据期望的定义,(sigma(xi)(xi>0)+sigma(-xi+t)(xi<0))/n=t
解一个方程,t=sum/(n-cnt)
#include<bits/stdc++.h>
#define maxl 110
#define eps 1e-8
using namespace std;
int n,cas;
int a[maxl];
long long ansfz,ansfm;
inline void prework()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
}
inline long long gcd(long long a,long long b)
{
return b==0?a:gcd(b,a%b);
}
inline void mainwork()
{
int cnt=0;long long sum=0;
for(int i=1;i<=n;i++)
if(a[i]>0)
sum+=a[i];
else
cnt++,sum+=-a[i];
if(cnt==n)
{
ansfm=0;
return;
}
ansfz=sum;
ansfm=n-cnt;
long long d=gcd(ansfz,ansfm);
ansfz/=d;ansfm/=d;
}
inline void print()
{
++cas;
printf("Case %d: ",cas);
if(ansfm==0)
puts("inf");
else
printf("%lld/%lld\n",ansfz,ansfm);
}
int main()
{
int t;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
prework();
mainwork();
print();
}
return 0;
}