//#pragma GCC optimize("Ofast") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma") //#pragma GCC optimize("unroll-loops") #include #define N 300 #define inf 2147483647 #define LL long long #define DB double using namespace std; int T,A[10],pw[10];char s[10];double f[N],a[N][N]; struct FastIO{ static const int S=1048576; char buf[S],*L,*R;int stk[20],Top;~FastIO(){clear();} inline char nc(){return L==R&&(R=(L=buf)+fread(buf,1,S,stdin),L==R)?EOF:*L++;}inline void clear(){fwrite(buf,1,Top,stdout);Top=0;} inline void pc(char ch){Top==S&&(clear(),0);buf[Top++]=ch;}inline void endl(){pc('\n');} FastIO& operator >> (char&ch){while(ch=nc(),ch==' '||ch=='\n');return *this;} templateFastIO& operator >> (T&ret){ ret=0;int f=1;char ch=nc();while(ch<'0'||ch>'9'){if(ch=='-')f=-f;ch=nc();} while(ch>='0'&&ch<='9'){ret=ret*10+ch-'0';ch=nc();}ret*=f;return *this; } FastIO& operator >> (char* s){int Len=0;char ch=nc();while(ch!='\n'){*(s+Len)=ch;Len++;ch=nc();}} templateFastIO& operator << (T x){ if(x<0){pc('-');x=-x;}do{stk[++stk[0]]=x%10;x/=10;}while(x); while(stk[0]) pc('0'+stk[stk[0]--]);return *this; } FastIO& operator << (char ch){pc(ch);return *this;} FastIO& operator << (string str){int Len=str.size()-1;for(stk[0]=0;Len>=0;Len--) stk[++stk[0]]=str[Len];while(stk[0]) pc(stk[stk[0]--]);return *this;} }fin,fout; int main(){ // freopen("data.in","r",stdin); // freopen("jxc.out","w",stdout); pw[0]=1;for(register int i=1;i<=8;i++) pw[i]=pw[i-1]<<1;int S=pw[8];for(register int i=0;i=0&&A[j]==A[k]) k--;k++;if(j-k+1>=3){pos=k,len=j-k+1;break;}j=k;} if(!len){a[i][i]=1.0;continue;}int x=0;for(register int j=7;~j;j--) if(j=pos+len) x<<=1,x+=A[j];int now=7-len,L=len,v=len*len;while(now>=0){ len=0;for(register int j=now;~j;j--) if((1<=0&&A[j]==A[k]) k--;k++;if(j-k+1>=3){pos=k,len=j-k+1;break;}j=k;} if(!len) break;x=0;for(register int j=now;~j;j--) if(j=pos+len) x<<=1,x+=A[j];v+=len*len,now-=len,L+=len; } // for(register int j=7;~j;j--) if((1<fabs(a[Max][i])) Max=j; for(register int j=0;j<=S;++j) swap(a[i][j],a[Max][j]);for(register int j=0;j>T;while(T--){scanf("%s",s+1);int res=0;for(register int i=1;i<=8;i++) res<<=1,res+=s[i]-'0';printf("%0.12lf\n",f[res]);} return 0; }