携程算法笔试(2019.9.4)第二道编程题AC

 

携程算法笔试(2019.9.4)第二道编程题AC_第1张图片

 

N = int(input())
gt, pre = [], []
for _ in range(N):
    temp = list(map(float, input().split()))
    gt.append(temp[0])
    pre.append(temp[-1])

positive, negitive = [], []
for idx, i in enumerate(gt):
    if i == 1.:
        positive.append(idx)
    else:
        negitive.append(idx)

total = len(positive) * len(negitive)
fenzi = 0
for i in positive:
    for j in negitive:
        if pre[i] > pre[j]:
            fenzi += 1.
        elif pre[i] == pre[j]:
            fenzi += 0.5

output = fenzi / total
print('%.2f' % output)

算法详解见 https://blog.csdn.net/qq_22238533/article/details/78666436

你可能感兴趣的:(算法工程师笔试机构)