#include <bits/stdc++.h>   using namespace std;   pair<double, double> get_vec_rotate(pair<double, double> nv, double fi) {     return make_pair(nv.first * cos(fi) - nv.second * sin(fi),                      nv.second * cos(fi) + nv.first * sin(fi));   }   pair<double, double> get_normal(pair<double, double> vec) {     double len = sqrt(vec.first * vec.first + vec.second * vec.second);     vec.first /= len;     vec.second /= len;     return vec;   }   pair<double, double> end_p(pair<double, double> start_p,                              pair<double, double> nv, double len) {     nv.first *= len;     nv.second *= len;     return make_pair(nv.first + start_p.first, nv.second + start_p.second);   }   double a, b, c, d;   pair<double, double> p, v, ToWrite;   pair<double, double> len_fi[7];   int main() {     cin >> p.first >> p.second >> v.first >> v.second >> a >> b >> c >> d;     v = get_normal(v);     len_fi[0].first = b;     len_fi[0].second = 0;     len_fi[1].first = a / 2;     len_fi[1].second = M_PI / 2;     len_fi[2].first = c / 2;     len_fi[2].second = M_PI / 2;     len_fi[3].first = sqrt(c * c + 4 * d * d) / 2;     len_fi[3].second = M_PI / 2 + atan(2 * d / c);     len_fi[4].first = sqrt(c * c + 4 * d * d) / 2;     len_fi[4].second = 3 * M_PI / 2 - atan(2 * d / c);     len_fi[5].first = c / 2;     len_fi[5].second = 3 * M_PI / 2;     len_fi[6].first = a / 2;     len_fi[6].second = 3 * M_PI / 2;     cout.precision(10);     for (int i = 0; i < 7; i++) {       ToWrite = end_p(p, get_vec_rotate(v, len_fi[i].second), len_fi[i].first);       cout << fixed << ToWrite.first <<     << ToWrite.second << endl;     }     return 0;   }   