cat <<'X' long long bnum=-1,bden=1@ int ma=ba, mb=bb@ long long aa=(int)nn[ma], bb2=(int)nn[mb]@ long long b4=bb2*bb2*bb2*bb2@ long long den=aa*aa*b4@ long long p1=(long long)d[ma]*b4@ long long p2=(long long)d[mb]*d[mb]*aa*aa@ long long num@ if(p1 > p2) num=p1-p2@ else num=p2-p1@ bnum=num@ bden=den@ double T=best+1e-6@ if(T > 0) {} else T=1e-6@ printf("phase2 T %.17g exact %lld/%lld\n",T,bnum,bden)@ int j=0@ int i@ for(i=0@i!=M@++i){ while(j!=M && (A[i].v-T) > B[j].v) ++j@ int k=j@ while(k!=M && !(B[k].v > A[i].v+T)){ int ma2=A[i].id, mb2=B[k].id@ if(ma2!=mb2 && ((ma2&mb2)==mb2)){ long long aa2=(int)nn[ma2], bb3=(int)nn[mb2]@ long long b42=bb3*bb3*bb3*bb3@ long long den2=aa2*aa2*b42@ long long q1=(long long)d[ma2]*b42@ long long q2=(long long)d[mb2]*d[mb2]*aa2*aa2@ long long num2@ if(q1 > q2) num2=q1-q2@ else num2=q2-q1@ if(bnum==-1 || bnum*den2 > num2*bden){ bnum=num2@ bden=den2@ bb=mb2@ ba=ma2@ } else if(bnum*den2 == num2*bden){ if(lexless(mb2,bb)){ bb=mb2@ ba=ma2@ } } } ++k@ } } X