#include #include #include #include #include #ifndef M_PI #define M_PI (3.14159265358979324) #endif using namespace std; int main(void) { ifstream cin("polygon.in"); int n; bool blankline = false; while(cin >> n) { vector x(n), y(n); vector phi(n); for(int i = 0; i < n; i++) cin >> x[i] >> y[i]; for(int i = 0; i < n; i++) cin >> phi[i]; vector< vector< complex > > a(n, vector< complex >(n, 0)); vector< complex > b(n); for(int i = 0; i < n; i++) { int j = (i + 1) % n; complex e = polar(1.0, -phi[i] * M_PI / 180.0); a[i][i] = 1.0; a[i][j] = -e; b[i] = (1.0 - e) * complex(x[i], y[i]); } for(int i = 0; i < n; i++) { complex aii = a[i][i]; for(int j = 0; j < n; j++) a[i][j] /= aii; b[i] /= aii; for(int k = 0; k < n; k++) { if(k != i) { complex aki = a[k][i]; for(int j = 0; j < n; j++) a[k][j] -= aki * a[i][j]; b[k] -= aki * b[i]; } } } if(blankline) cout << endl; blankline = true; for(int i = 0; i < n; i++) { cout << setprecision(2) << fixed << real(b[i]) << " " << imag(b[i]) << endl; } } return 0; }