import sys
from heapq import heappush,heappop,heapify
input=sys.stdin.readline
def solve():
n,m=map(int,input().split())
heap=[]
heap.extend([*map(lambda x:(-int(x),0),input().split())])
heap.extend([*map(lambda x:(-int(x),1),input().split())])
heapify(heap)
ans=0
while heap:
num,is_c=heappop(heap)
num=-num
if is_c:
m-=1
ans+=n*num
else:
n-=1
ans+=m*num
print(ans)
for _ in range(1):
solve()
观察数据范围n,m(1≤n,m≤1e5)可知不能真的用二维数组去模拟
要使所有元素之和是最大值,大的值不应被覆盖
大的涂完后,将对应的行或列减1即可,值增加数字*对应的行数或列数

京公网安备 11010502036488号