n = int(input().strip())
matrix = []
# 读入数据
for _ in range(n):
row = list(map(lambda x: list(map(float, x.split(','))), input().strip().split()))
matrix.append(row)
# 初始化三角形模糊数的和
sum_fuzzy_number = [0, 0, 0]
# 计算所有三角形模糊数的和
for row in matrix:
for fuzzy_number in row:
# Add the current fuzzy number to the sum
for i in range(3):
sum_fuzzy_number[i] += fuzzy_number[i]
# 输出结果
# print(sum_fuzzy_number)
# 初始化行和矩阵
sum_rows = []
for row in matrix:
sum_row = [0, 0, 0]
for fuzzy_number in row:
for i in range(3):
sum_row[i] += fuzzy_number[i]
sum_rows.append(sum_row)
# print("------")
# for sum_row in sum_rows:
# print(sum_row)
# print("------")
# 初始化归一化和
normalized_sums = []
for sum_row in sum_rows:
normalized_sum = [sum_row[i] / sum_fuzzy_number[2 - i] for i in range(3)]
normalized_sums.append(normalized_sum)
# for normalized_sum in normalized_sums:
# print(normalized_sum)
# print("------")
# 建立可能性矩阵
possibility_matrix = []
for i in range(n):
possibility_row = []
for j in range(n):
a = normalized_sums[i]
b = normalized_sums[j]
possibility = 0.5 * max(1 - max((b[1] - a[0]) / (a[1] - a[0] + b[1] - b[0]), 0), 0) + 0.5 * max(1 - max((b[2] - a[1]) / (a[2] - a[1] + b[2] - b[1]), 0), 0)
possibility_row.append(possibility)
possibility_matrix.append(possibility_row)
# print(possibility_matrix)
# print("------")
# 计算模糊一致性矩阵
consistency_matrix = []
# 计算可能性矩阵的行和
possibility_row_sums = [sum(row) for row in possibility_matrix]
# print(possibility_row_sums)
# print("------")
for i in range(n):
rij = []
for j in range(n):
ri = possibility_row_sums[i]
rj = possibility_row_sums[j]
rij.append((ri - rj) / (2 * (n - 1)) + 0.5)
consistency_matrix.append(rij)
# print(consistency_matrix)
# print("------")
# 计算排序向量
v = [(sum(row) + n / 2 - 1)/ (n * (n - 1)) for row in consistency_matrix]
for i in range(n):
print(format(v[i] + 0.0000001, '.5f'), end=' ')