#include #include #define MAXN 16384 // musí být mocninou dvojky #define MAX (2*MAXN+1) static struct seg { double x, y; int a; } seg[MAX]; static void merge(int i) { struct seg *l = seg+2*i, *r = l+1; double a = 2*M_PI*l->a/360; seg[i].x = l->x + r->x*cos(a) - r->y*sin(a); seg[i].y = l->y + r->x*sin(a) + r->y*cos(a); seg[i].a = (l->a + r->a) % 360; } int main(void) { int i, j, k, n0, N; scanf("%d", &n0); for (N=1; N=1; i--) merge(i); while (scanf("%d%d", &j, &k) == 2) { j = N+j-1; seg[j].a = (180+k) % 360; while (j != 1) merge(j /= 2); printf("%.2f %.2f\n", seg[1].x, seg[1].y); } return 0; }