AcWing 1236. 递增三元组
原题链接
中等
作者:
Scat
,
2024-03-24 15:30:11
,
所有人可见
,
阅读 2
n = int(input())
a = [0] + list(map(int, input().split()))
b = [0] + list(map(int, input().split()))
c = [0] + list(map(int, input().split()))
N = 10 ** 5 + 10
cnt_a = [0 for i in range(N)]
cnt_c = [0 for i in range(N)]
for i in range(1, n + 1):
cnt_a[a[i]] += 1
cnt_c[c[i]] += 1
for i in range(1, N):
cnt_a[i] += cnt_a[i - 1]
cnt_c[i] += cnt_c[i - 1]
res = 0
for i in range(1, n + 1):
#注意处理边界情况,若b[i]=0,cnt_a[b[i] - 1]会取到cnt_a[N - 1],此时出错
if b[i] == 0:
continue
res += cnt_a[b[i] - 1] * (cnt_c[N - 1] - cnt_c[b[i]])
print(res)
作者:Scat
链接:https://www.acwing.com/activity/content/code/content/8175449/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。