使用如下方法:
a<b的放前面,a作为关键字升序。a=b中间。a>b放后面,b作为关键字降序
n=int(input())
a=[int(x)for x in input().split()]
b=[int(x)for x in input().split()]
def f(x):
if x[0]<x[1]:
return x[0]-1e10
if x[0]>x[1]:
return 1e10-x[1]
return x[0]
c=sorted(zip(a,b,range(1,n+1)),key=f)
a=b=0
for i in c:
a+=i[0]
if a>b:
b=a
b+=i[1]
print(b)
print(*(x[2]for x in c))
6号数据显示your sloution is bigger than your min time。下载了数据在本地运行,结果文本确实不同。但此题已启用SPJ,如果算出来总时间对的,结果应该就没问题啊。
后面的数据均显示第一行第一列的数字不同,说明算出来的总时间小于标准答案。算总时间的方法在题解中也有人用的,实在看不出问题了。