n = int(input())

counts = []
mapper = dict()
total = 0
for i in range(n):
    c, w = input().split()
    mapper[w] = i
    c = int(c)
    counts += [c]
    total += c

dp = [[0]*n for _ in range(n)]

if n == 1:
    dp[0][0] = 1
elif n == 2:
    a0 = counts[0] / total
    dp[0][0] = a0
    dp[1][0] = 1-a0
    dp[0][1] = dp[1][1] = 1
else:
    for i in range(n):
        for j in range(i+1,n):
            for k in range(j+1,n):
                sub = counts[i] * counts[j] * counts[k]
                ijk = 1 / total / (total - counts[i]) / (total - counts[i] - counts[j])
                ikj = 1 / total / (total - counts[i]) / (total - counts[i] - counts[k])

                jik = 1 / total / (total - counts[j]) / (total - counts[j] - counts[i])
                jki = 1 / total / (total - counts[j]) / (total - counts[j] - counts[k])

                kij = 1 / total / (total - counts[k]) / (total - counts[k] - counts[i])
                kji = 1 / total / (total - counts[k]) / (total - counts[k] - counts[j])

                dp[i][0] += sub*(ijk + ikj)
                dp[i][1] += sub*(jik + kij)
                dp[i][2] += sub*(jki + kji)

                dp[j][0] += sub*(jik + jki)
                dp[j][1] += sub*(ijk + kji)
                dp[j][2] += sub*(ikj + kij)

                dp[k][0] += sub*(kij + kji)
                dp[k][1] += sub*(ikj + jki)
                dp[k][2] += sub*(ijk + jik)

                comb = sub*(ijk + ikj + jik + jki + kij + kji)

                ind=3
                for x in range(n):
                    if x!=i and x!=j and x!=k:
                        dp[x][ind] += comb
                        ind+=1
                        
    for i in range(n):
        for j in range(1,n):
            dp[i][j] += dp[i][j-1]

q = int(input())

for _ in range(q):
    w, p = input().split()
    p = int(p)
    print(f'{dp[mapper[w]][p-1]:.12f}')
