double solve() { u.read();v.read(); int k1,k2; k1=mid((u-v).angle()); k2=mid((v-u).angle()); double t1=(u-v)*(p[k1]-v); double t2=(u-v)*(p[k2]-v); if(t1*t2>-eps)return 0.0; double s1,s2; P a,b; s1=s2=0.0; a=calc(k1,k2,s1,s2); b=calc(k2,k1,s2,s1); s1+=a*b; s2+=b*a; return min(s1,s2)/2.0; }