"""

https://atcoder.jp/contests/agc021/tasks/agc021_b
偏角ソートそしてimos法

"""

import math
N = int(input())

xy = []
for i in range(N):
    x,y = map(int,input().split())
    xy.append((x,y))

start = []
end = []
pi = math.pi
now = [0] * N

for i in range(N):
    for j in range(i):

        x,y = xy[i]
        X,Y = xy[j]

        #xが等しい時→角度は0とpiになる
        if x == X:
            if y > Y:
                start.append( (0,i) )
                end.append( ( pi , i) )
                start.append( ( pi,j) )
                end.append( (2 * pi , j) )
            else:
                start.append( (0,j) )
                end.append( ( pi , j) )
                start.append( ( pi,i) )
                end.append( (2 * pi , i) )
        elif y == Y: #yが等しい時→角度は1/2piと3/2pi
            if x > X:
                start.append( ( pi/2   ,j) )
                end.append(   ( 3*pi/2 ,j) )
                start.append( ( 3*pi/2 ,i) )
                end.append(   ( pi/2 ,i) )
                now[i] += 1
            else:
                start.append( ( pi/2   ,i) )
                end.append(   ( 3*pi/2 ,i) )
                start.append( ( 3*pi/2 ,j) )
                end.append(   ( pi/2 ,j) )
                now[j] += 1
        else: #一般の場合(面倒くさい)
            
            k = -1 / ((Y-y)/(X-x)) #二分線の傾き
            mx = (x+X)/2
            my = (y+Y)/2
            # y-my = k(x-mx) が方程式→ y=k(x-mx)+my
            #print (k)

            if k > 0:
                #上側にあればdeg～deg+pi
                deg = math.atan(k)
                if y > k*(x-mx)+my:
                    start.append( (deg   ,i) )
                    end.append  ( (deg+pi,i) )
                    start.append( (deg+pi  ,j))
                    end.append  ( (deg,j))
                    now[j] += 1
                else:
                    start.append( (deg   ,j) )
                    end.append  ( (deg+pi,j) )
                    start.append( (deg+pi  ,i))
                    end.append  ( (deg,i))
                    now[i] += 1
            else:
                #下側にあればdeg+pi～deg+2pi
                deg = math.atan(k)
                if y < k*(x-mx)+my:
                    start.append( (deg+pi,i) )
                    end.append  ( (deg+2*pi,i) )
                    start.append( (deg+2*pi,j))
                    end.append  ( (deg+pi,j))
                    now[j] += 1
                else:
                    start.append( (deg+pi,j) )
                    end.append  ( (deg+2*pi,j))
                    start.append( (deg+2*pi,i))
                    end.append  ( (deg+pi,i))
                    now[i] += 1
            

ans = [0] * N
start.sort()
end.sort()
si = 0
ei = 0
start.append((float("inf"),0))
end.append((float("inf"),0))

fmax = [None] * N
#print (start)
#print (end)
#print (now)

for i in range(N):
    if now[i] == N-1:
        fmax[i] = 0

for i in range(len(start)+len(end)-2):
    
    if start[si][0] < end[ei][0]:
        d,ind = start[si]
        si += 1
        now[ind] += 1
        if now[ind] == N-1:
            fmax[ind] = d
    else:
        d,ind = end[ei]
        ei += 1
        if now[ind] == N-1:
            #print (fmax)
            ans[ind] += (d-fmax[ind])/(2*pi)
        now[ind] -= 1

for i in range(N):
    if now[i] == N-1:
        ans[i] += 1 - fmax[i]/(2*pi)

for i in ans:
    print (i)


Measured memory_bytes: 76000