三元组计数 - 代码源竞赛平台

题目描述

给定一个长度为 nn 的整数序列 a1,a2,…,ana_1,a_2,\ldots,a_n,每个元素的值都在 11 到 55 之间。

你需要从中选出三个下标 i,j,ki,j,k,使它们同时满足:

  • 1≤i<j<k≤n1\le i<j<k\le n;
  • ai>ak>aja_i>a_k>a_j;
  • ai+aka_i+a_k 能被 aja_j 整除 (即 (ai+ak) mod aj=0(a_i + a_k) \bmod a_j = 0)。

请计算满足条件的下标三元组 (i,j,k)(i,j,k) 的数量。

输入格式

第一行包含一个整数 nn,表示序列的长度。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n,表示给定的序列。

输出格式

输出一个整数,表示满足条件的三元组数量。

样例

4
5 2 3 4
2
6
5 5 2 2 3 3
8

样例解释

对于样例 11,满足条件的下标三元组共有两个:

  • (1,2,3)(1,2,3):对应的元素为 (5,2,3)(5,2,3),有 5>3>25>3>2,且 5+3=85+3=8 能被 22 整除。
  • (1,3,4)(1,3,4):对应的元素为 (5,3,4)(5,3,4),有 5>4>35>4>3,且 5+4=95+4=9 能被 33 整除。

对于样例 22,ii 可以取 11 或 22,jj 可以取 33 或 44,kk 可以取 55 或 66。这些选择对应的元素均为 (5,2,3)(5,2,3),满足所有条件,因此答案为 2×2×2=82\times2\times2=8。

数据规模

本题各子任务单独计分。须通过某子任务包含的所有测试点,方可获得该子任务的分数。

子任务编号 分数 n≤n\le
11 4040 200200
22 6060 2×1052\times 10^5

对于 100%100\% 的数据,3≤n≤2×1053\le n\le2\times 10^5,1≤ai≤51\le a_i\le5。