#include <iostream>
#include <iostream>
#include <iomanip>
#include <vector>
#include <set>
#include <math.h>
#include <stdio.h>

#define PI (3.1415926535897932384626433832795)
#define PI2 (6.283185307179586476925286766559)

double cos2(int x1, int y1, int x2, int y2, int x3, int y3)
{
        double ax = x1 - x2;
        double ay = y1 - y2;
        double bx = x3 - x2;
        double by = y3 - y2;
        double u = (ax * bx + ay * by);
        double v = (ax * ax + ay * ay) * (bx * bx + by * by);
        return u / sqrt(v);
}

std::vector<double> agc021b(int N, const std::vector<int> & X,
        const std::vector<int> & Y)
{
        std::vector<double> r;
        if (N == 2) {
                r.push_back(0.5);
                r.push_back(0.5);
                return r;
        }

        std::vector<int> ois;
        std::set<int> ot;

        int left_i = 0;
        for (int i = 1; i < N; i++) {
                if (X[i] < X[left_i])
                        left_i = i;
        }

        int first_i = left_i;
        ois.push_back(first_i);
        ot.insert(first_i);
        int curr_i = first_i;
        int prev_x = X[curr_i];
        int prev_y = Y[curr_i] - 1;
        //std::cerr << "first_i: "<< first_i << " " << X[first_i] << " " << Y[first_i] << std::endl;
        for (;;) {
                int next_i = -1;
                for (int i = 0; i < N; i++) {
                        if (i == curr_i)
                                continue;
                        //if (ot.find(i) != ot.end())
                        //      continue;
                        if (next_i < 0) {
                                next_i = i;
                                continue;
                        }
                        if (cos2(prev_x, prev_y, X[curr_i], Y[curr_i], X[i], Y[i]) <
                                cos2(prev_x, prev_y, X[curr_i], Y[curr_i], X[next_i], Y[next_i]))
                        {
                                next_i = i;
                        }
                }
                //if (next_i == first_i)
                //      break;
                if (ot.find(next_i) != ot.end()) {
                        //std::cerr << "drop: " << next_i << std::endl;
                        break;
                }
                //std::cerr << "next_i: "<< next_i << " " << X[next_i] << " " << Y[next_i] << std::endl;
                prev_x = X[curr_i];
                prev_y = Y[curr_i];
                curr_i = next_i;
                ois.push_back(next_i);
                ot.insert(next_i);
        }
        ois.push_back(ois[0]);
        ois.push_back(ois[1]);

        r.resize(N);
        for (int i = 0; i < N; i++)
                r[i] = 0.0;

        for (int i = 1; i < (int)ois.size()-1; i++) {
                double c = cos2(X[ois[i-1]], Y[ois[i-1]], X[ois[i]], Y[ois[i]],
                        X[ois[i+1]], Y[ois[i+1]]);
                //std::cerr << i << " ";
                //std::cerr << ois[i] << " " << c << " " << acos(c) << std::endl;
                double a = (PI - acos(c)) / PI2;
                r[ois[i]] = a;
        }

        double s = 0.0;
        for (int i = 0; i < N; i++)
                s += r[i];

        //std::cerr << "sum: " << s << " (must be 1.0)" << std::endl;

        return r;
}

void test();

int main(int argc, char * argv[])
{
        int N;
        std::vector<int> X, Y;
                std::vector<double> r;

//      test();return 0;

        std::cin >> N;
                X.resize(N);
                Y.resize(N);
        for (int i = 0; i < N; i++) {
                std::cin >> X[i] >> Y[i];
        }

                r = agc021b(N, X, Y);
                for (int i = 0; i < N; i++) {
                        //std::cout << std::setw(20) << r[i] << std::endl;
                        printf("%22.20f\n", r[i]);
                }

        return 0;
}


Measured memory_bytes: 256