#include #include #include #include #include using namespace std; using ll = long long; #define rep(i,n) for(int i=0;i<(int)(n);i++) using mint = atcoder::modint998244353; namespace mp = boost::multiprecision; using Bint = mp::cpp_int; using ld = boost::rational; int main(){ int q; cin>>q; vector> vp(3); vector> vq(q); for(auto&[x,y]:vp) cin>>x>>y; for(auto&[x,y]:vq) cin>>x>>y; ld cx,cy,r2=-1; rep(i,3){ int x1,x2,y1,y2; x1=vp.at(1).first-vp.at(0).first; x2=vp.at(2).first-vp.at(0).first; y1=vp.at(1).second-vp.at(0).second; y2=vp.at(2).second-vp.at(0).second; if(x1*x2+y1*y2<=0){ cx=(vp.at(1).first+vp.at(2).first); cy=(vp.at(1).second+vp.at(2).second); cx/=2; cy/=2; r2=(vp.at(1).first-vp.at(2).first)*(vp.at(1).first-vp.at(2).first) +(vp.at(1).second-vp.at(2).second)*(vp.at(1).second-vp.at(2).second); r2/=4; break; } swap(vp.at(0),vp.at(1)); swap(vp.at(1),vp.at(2)); } if(r2<0){ ld k=0; k+=(vp.at(0).first-vp.at(2).first)*(vp.at(1).first-vp.at(2).first); k+=(vp.at(0).second-vp.at(2).second)*(vp.at(1).second-vp.at(2).second); ld dv=0; dv+=(vp.at(0).first-vp.at(2).first)*(vp.at(1).second-vp.at(2).second); dv-=(vp.at(0).second-vp.at(2).second)*(vp.at(1).first-vp.at(2).first); assert(abs(dv)>0); k/=dv; cx=(vp.at(0).first+vp.at(1).first)+k*(vp.at(0).second-vp.at(1).second); cx/=2; cy=(vp.at(0).second+vp.at(1).second)-k*(vp.at(0).first-vp.at(1).first); cy/=2; r2=(vp.at(0).first-cx)*(vp.at(0).first-cx)+(vp.at(0).second-cy)*(vp.at(0).second-cy); } for(auto[x,y]:vq){ ld d2=(x-cx)*(x-cx)+(y-cy)*(y-cy); if(d2<=r2) cout<<"Yes\n"; else cout<<"No\n"; } }