{$q+,r+}

{Mass center heuristics}

uses
    sysutils, math, graph, types, graphics;
const
    max_n = 30;
    eps = 1e-5;
    noAngle = 1e100;
type
    tarr = array [1..max_n] of longint;
    tarr2 = array [1..max_n] of double;

var
    i, j, n: longint;
    x, y: array[1..max_n] of longint;
    a: array [1..max_n] of double;

function norm(a: extended): extended;
begin
    while a > pi + eps do begin
        a := a - 2 * pi;
    end;
    while a < -(pi + eps) do begin
        a := a + 2 * pi;
    end;
    norm := a;
end;

function norm2(a: extended): extended;
begin
    while a > 2 * pi + eps do begin
        a := a - 2 * pi;
    end;
    while a < -eps do begin
        a := a + 2 * pi;
    end;
    norm2 := a;
end;

function sortByAngle(n: longint; var v: tarr; var q: tarr2; cx, cy, a1, a2: double): boolean;
var
    f: boolean;
    t: longint;
    i, j: longint;
begin
    f := false;
    for i := 1 to n do begin
        if (abs(y[v[i]] - cy) > eps) or (abs(x[v[i]] - cx) > eps) then begin
            q[v[i]] := arctan2(y[v[i]] - cy, x[v[i]] - cx);
            while q[v[i]] < a1 - eps do begin
                q[v[i]] := q[v[i]] + 2 * pi;
            end;
            while q[v[i]] > a2 + eps do begin
                q[v[i]] := q[v[i]] - 2 * pi;
            end;
        end else begin
            f := true;
            q[v[i]] := 30 * pi;
        end;
    end;
    for i := 1 to n - 1 do begin
        for j := i + 1 to n do begin
            if q[v[i]] > q[v[j]] then begin
                t := v[i]; v[i] := v[j]; v[j] := t;
            end;
        end;
    end;
    sortByAngle := f;
end;

var
    v: tarr;
    q: tarr2;
    cx, cy: double;
    _a, ta: double;

    f: boolean;
begin

    read(n);
    cx := 0;
    cy := 0;
    for i := 1 to n do begin
        read(x[i], y[i]);
        cx := cx + x[i] / n;
        cy := cy + y[i] / n;
        v[i] := i;
        a[i] := noAngle;
    end;

    _a := 2 * pi / n;

    sortByAngle(n, v, q, cx, cy, -pi, +pi);
    for i := 1 to n do begin
        q[i] := norm2(q[i] - pi);
    end;

    randomize;
    for j := 1 to 10000 do begin
        f := true;
        ta := q[v[1]] - _a / 2 + _a * random;
        for i := 1 to n do begin
            a[v[i]] := norm2(ta + _a * (i - 1));
            f := f and (norm2(q[v[i]] - (a[v[i]] -_a / 2)) < _a + eps);
        end;
        if f then break;
    end;

    for i := 1 to n do begin
        writeln(a[i]:0:10);
    end;

    close(input);
    close(output);
end.