#include #include #include #include #include #include #include #include #include using namespace std; void rot(double &x, double &y, double angle) { double x2 = x*cos(angle) - y*sin(angle); double y2 = x*sin(angle) + y*cos(angle); x=x2; y=y2; } double det(double a, double b, double c, double d) { return a*d - b*c; } void run() { int T, k1, k2; cin >> T >> k1 >> k2; if(T==0 && k1==0 && k2==0) exit(0); k1 = k1%T; k2 = k2%T; double x1,y1,x2,y2,x3,y3; cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3; rot(x2,y2, -double(k1)/double(T)*double(2*M_PI)); rot(x3,y3, -double(k1+k2)/double(T)*double(2*M_PI)); // printf("(%.2g,%.2g), (%.2g,%.2g), (%.2g,%.2g)\n", x1,y1, x2,y2, x3,y3); // first segment double xa = (x1+x2)*0.5, ya = (y1+y2)*0.5; double dxa = (y1-ya), dya = (xa-x1); // printf("(%.2g,%.2g) --> (%.2g,%.2g)\n", xa,ya,dxa,dya); // second segment double xb = (x2+x3)*0.5, yb = (y2+y3)*0.5; double dxb = (y3-yb), dyb = (xb-x3); // printf("(%.2g,%.2g) --> (%.2g,%.2g)\n", xb,yb,dxb,dyb); double A = dxa, B = -dxb, C = xb-xa; double D = dya, E = -dyb, F = yb-ya; double d = det(A,B,D,E); // if(d < 1e-7) cerr << "singular!\n"; double a = det(C,B,F,E)/d; double b = det(A,C,D,F)/d; double X = xa+a*dxa; double Y = ya+a*dya; // printf("(%.2g,%.2g)\n", X,Y); cout << (int)(0.5 + sqrt(X*X + Y*Y)) << endl; } int main() { while(1) run(); }