// 2009国内予選F 締まっていこう #include #include #include using namespace std; typedef complex P; const double EPS = 1e-8; const double INF = 1e12; double cross(P a, P b) { return imag(conj(a)*b); } double angle(P a, P b) { return arg(conj(a)*b); } P crossPoint(P lp, P lq, P mp, P mq){ double A = cross(lq-lp, mq-mp); double B = cross(lq-lp, lq-mp); return mp + B / A * (mq-mp); } bool inTriangle(P a, P b, P c, P p){ double A = cross(a-p,b-p); double B = cross(b-p,c-p); double C = cross(c-p,a-p); if(abs(A) < EPS || abs(B) < EPS || abs(C) < EPS) return false; if(A*B < EPS || B*C < EPS || C*A < EPS) return false; return true; } int main(){ int m, n, x, y; while(cin >> m >> n, m){ vector

vl, vh; for(int i=0;i> x >> y; vl.push_back(P(x,y)); } for(int i=0;i> x >> y; vh.push_back(P(x,y)); } vector

path; path.push_back(vl[0]); vector rot; rot.push_back(INF); P prev(vl[0]), cur(vl[1]); for(int i=2;i